17 #ifndef PNDEMCHITPRODUCER_H 18 #define PNDEMCHITPRODUCER_H 34 #include "TClonesArray.h" 63 PndEmcVolumeDisk(
double minR,
double maxR,
double minZ,
double maxZ) : fMinR(minR), fMaxR(maxR), fMinZ(minZ), fMaxZ(maxZ){};
66 if (point.Z() > fMinZ && point.Z() < fMaxZ) {
67 if (point.Perp() > fMinR && point.Perp() < fMaxR) {
80 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){};
83 if (point.Z() > fMinZ && point.Z() < fMaxZ)
84 if (point.Y() > fMinY && point.Y() < fMaxY)
85 if (point.X() > fMinX && point.X() < fMaxX)
94 typedef std::map<Int_t, Float_t>
mapper;
105 virtual InitStatus Init();
108 virtual void Exec(Option_t *opt);
110 PndEmcHit *AddHit(Int_t trackID, Int_t detID, Float_t energy, Float_t time, std::vector<Int_t> &mctruth, FairMultiLinkedData entering, FairMultiLinkedData exiting,
111 std::set<Int_t> &clusterIDs);
117 void SetStorageOfData(Bool_t val);
126 int FindMCIndexIterative(
PndEmcPoint *point,
int mcIndex);
129 Int_t fUse_nonuniformity;
130 TString fNonuniformityFile;
132 TClonesArray *fPointArray;
133 TClonesArray *fMCTrackArray;
136 TClonesArray *fHitArray;
139 TObjArray *fVolumeArray;
143 Float_t fEnergyThreshold;
157 virtual void SetParContainers();
161 void cleansortmclist(std::vector<Int_t> &newlist, TClonesArray *mcTrackArray);
168 map<Int_t, Float_t> fTrackEnergy;
169 map<Int_t, Float_t> fTrackTime;
170 map<Int_t, std::vector<Int_t>> fTrackMcTruth;
171 map<Int_t, std::vector<Int_t>> fPointMatch;
172 map<Int_t, FairMultiLinkedData> fTrackEntering;
173 map<Int_t, FairMultiLinkedData> fTrackExiting;
174 map<Int_t, std::set<Int_t>> fClusterIDs;
175 map<Int_t, PndEmcPoint *> fLastPointForTrack;
176 map<Int_t, std::map<Int_t, Double_t>> fShower;
177 std::vector<PndEmcVolume *> fEmcVolumes;
178 double fCutSameTrack;
179 double fCutMotherParticle;
180 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)