SND@LHC Software
Loading...
Searching...
No Matches
ecalCellMC.h
Go to the documentation of this file.
1
7#ifndef ECALCELLMC_H
8#define ECALCELLMC_H
9
10/* $Id: ecalCellMC.h,v 1.9 2012/01/18 18:15:23 prokudin Exp $ */
11
12#include "ecalCell.h"
13
14#include <list>
15#include <map>
16#include <algorithm>
17
18class ecalCellMC : public ecalCell
19{
20public:
21 ecalCellMC(Int_t cellnumber, Float_t x1=0, Float_t y1=0, Float_t x2=0, Float_t y2=0, Char_t type=0, Float_t energy=0);
22
23 Float_t GetTrackEnergy(Int_t num) const;
24 Float_t GetTrackTime(Int_t num) const;
25
27 void ResetEnergy();
28
29 inline void SetTrackEnergy(Int_t num, Float_t energy, Float_t time=-1111)
30 {fTrackEnergy[num]=energy; fTrackTime[num]=time; }
31 inline void AddTrackEnergy(Int_t num, Float_t energy, Float_t time=-1111)
32 {
33 fTrackEnergy[num]+=energy;
34 if (time==-1111) return;
35 std::map<Int_t, Float_t>::const_iterator p=fTrackTime.find(num);
36 if (p==fTrackTime.end()) fTrackTime[num]=time;
37 else
38 if (fTrackTime[num]>time) fTrackTime[num]=time;
39 }
40 // same for tracks
41 Float_t GetTrackClusterEnergy(Int_t num);
42
43 // For python users
44 Int_t TrackEnergySize() const {return fTrackEnergy.size();}
45 Int_t TrackTimeSize() const {return fTrackEnergy.size();}
46 // Don't use slow methods except in emergency!!!
47 void GetTrackEnergySlow(Int_t n, Int_t& trackid, Double_t& energy_dep);
48 void GetTrackTimeSlow(Int_t n, Int_t& trackid, Float_t& time);
49
50 inline std::map<Int_t, Float_t>::const_iterator GetTrackEnergyBegin() const
51 {return fTrackEnergy.begin();}
52 inline std::map<Int_t, Float_t>::const_iterator GetTrackEnergyEnd() const
53 {return fTrackEnergy.end();}
54
55 inline std::map<Int_t, Float_t>::const_iterator GetTrackTimeBegin() const
56 {return fTrackTime.begin();}
57 inline std::map<Int_t, Float_t>::const_iterator GetTrackTimeEnd() const
58 {return fTrackTime.end();}
59
60private:
62 std::map<Int_t, Float_t> fTrackEnergy;
63
65 std::map<Int_t, Float_t> fTrackTime;
66
68};
69
70
71#endif
Float_t GetTrackEnergy(Int_t num) const
Int_t TrackEnergySize() const
Definition ecalCellMC.h:44
Float_t GetTrackTime(Int_t num) const
std::map< Int_t, Float_t >::const_iterator GetTrackTimeEnd() const
Definition ecalCellMC.h:57
std::map< Int_t, Float_t > fTrackTime
Definition ecalCellMC.h:65
std::map< Int_t, Float_t >::const_iterator GetTrackEnergyBegin() const
Definition ecalCellMC.h:50
void SetTrackEnergy(Int_t num, Float_t energy, Float_t time=-1111)
Definition ecalCellMC.h:29
void ResetEnergy()
Int_t TrackTimeSize() const
Definition ecalCellMC.h:45
std::map< Int_t, Float_t >::const_iterator GetTrackEnergyEnd() const
Definition ecalCellMC.h:52
Float_t GetTrackClusterEnergy(Int_t num)
void GetTrackTimeSlow(Int_t n, Int_t &trackid, Float_t &time)
void GetTrackEnergySlow(Int_t n, Int_t &trackid, Double_t &energy_dep)
void AddTrackEnergy(Int_t num, Float_t energy, Float_t time=-1111)
Definition ecalCellMC.h:31
std::map< Int_t, Float_t > fTrackEnergy
Definition ecalCellMC.h:62
ClassDef(ecalCellMC, 1)
std::map< Int_t, Float_t >::const_iterator GetTrackTimeBegin() const
Definition ecalCellMC.h:55