5 #ifndef PNDEMCHITPRODUCER_H 6 #define PNDEMCHITPRODUCER_H 22 #include "TClonesArray.h" 51 PndEmcVolumeDisk(
double minR,
double maxR,
double minZ,
double maxZ) : fMinR(minR), fMaxR(maxR), fMinZ(minZ), fMaxZ(maxZ){};
54 if (point.Z() > fMinZ && point.Z() < fMaxZ) {
55 if (point.Perp() > fMinR && point.Perp() < fMaxR) {
68 PndEmcVolumeBox(
double minX,
double maxX,
double minY,
double maxY,
double minZ,
double maxZ) : fMinX(minX), fMaxX(maxX), fMinY(minY), fMaxY(maxY), fMinZ(minZ), fMaxZ(maxZ){};
71 if (point.Z() > fMinZ && point.Z() < fMaxZ)
72 if (point.Y() > fMinY && point.Y() < fMaxY)
73 if (point.X() > fMinX && point.X() < fMaxX)
82 typedef std::map<Int_t, Float_t>
mapper;
93 virtual InitStatus Init();
96 virtual void Exec(Option_t *opt);
98 PndEmcHit *AddHit(Int_t trackID, Int_t detID, Float_t energy, Float_t time, std::vector<Int_t> &mctruth, FairMultiLinkedData entering, FairMultiLinkedData exiting,
99 std::set<Int_t> &clusterIDs);
105 void SetStorageOfData(Bool_t val);
114 int FindMCIndexIterative(
PndEmcPoint *point,
int mcIndex);
117 Int_t fUse_nonuniformity;
118 TString fNonuniformityFile;
120 TClonesArray *fPointArray;
121 TClonesArray *fMCTrackArray;
124 TClonesArray *fHitArray;
127 TObjArray *fVolumeArray;
131 Float_t fEnergyThreshold;
145 virtual void SetParContainers();
149 void cleansortmclist(std::vector<Int_t> &newlist, TClonesArray *mcTrackArray);
156 map<Int_t, Float_t> fTrackEnergy;
157 map<Int_t, Float_t> fTrackTime;
158 map<Int_t, std::vector<Int_t>> fTrackMcTruth;
159 map<Int_t, std::vector<Int_t>> fPointMatch;
160 map<Int_t, FairMultiLinkedData> fTrackEntering;
161 map<Int_t, FairMultiLinkedData> fTrackExiting;
162 map<Int_t, std::set<Int_t>> fClusterIDs;
163 map<Int_t, PndEmcPoint *> fLastPointForTrack;
164 map<Int_t, std::map<Int_t, Double_t>> fShower;
165 std::vector<PndEmcVolume *> fEmcVolumes;
166 double fCutSameTrack;
167 double fCutMotherParticle;
168 double fCutMotherParticleShashlyk;
represents a mc hit in an emc crystal
void SetNonuniformityFile(const char *filename)
PndEmcVolumeDisk(double minR, double maxR, double minZ, double maxZ)
creates PndEmcHits from PndEmcPoints
parameter set of Emc digitisation
PndEmcVolumeBox(double minX, double maxX, double minY, double maxY, double minZ, double maxZ)
represents the deposited energy of one emc crystal from simulation
virtual bool InsideVolume(TVector3 point)=0
bool InsideVolume(TVector3 point)
bool InsideVolume(TVector3 point)
std::map< Int_t, Float_t > mapper
void SetDayOne(bool d=true)