1 #ifndef BSEMCMCHITPRODUCTIONPROCESS_HH 2 #define BSEMCMCHITPRODUCTIONPROCESS_HH 9 #include "RtypesCore.h" 10 #include "TClonesArray.h" 13 #include "FairMultiLinkedData.h" 30 class TMemberInspector;
38 virtual Bool_t
InsideVolume(
const TVector3 &t_point)
const = 0;
47 BSEmcVolumeDisk(Double_t t_minR, Double_t t_maxR, Double_t t_minZ, Double_t t_maxZ) : fMinR(t_minR), fMaxR(t_maxR), fMinZ(t_minZ), fMaxZ(t_maxZ){};
52 if (t_point.Z() > fMinZ && t_point.Z() < fMaxZ) {
53 if (t_point.Perp() > fMinR && t_point.Perp() < fMaxR) {
62 Double_t fMinX{-1}, fMaxX{-1};
63 Double_t fMinY{-1}, fMaxY{-1};
64 Double_t fMinZ{-1}, fMaxZ{-1};
66 BSEmcVolumeBox(Double_t t_minX, Double_t t_maxX, Double_t t_minY, Double_t t_maxY, Double_t t_minZ, Double_t t_maxZ)
67 : fMinX(t_minX), fMaxX(t_maxX), fMinY(t_minY), fMaxY(t_maxY), fMinZ(t_minZ), fMaxZ(t_maxZ){};
72 if (t_point.Z() > fMinZ && t_point.Z() < fMaxZ) {
73 if (t_point.Y() > fMinY && t_point.Y() < fMaxY) {
74 if (t_point.X() > fMinX && t_point.X() < fMaxX) {
101 virtual void SetDetectorName(
const std::string &t_detectorname) ;
102 virtual void Process() ;
103 void SetHitParName(
const std::string &t_parName) { fHitParName = t_parName; }
108 virtual Double_t GetEnergy(
const BSEmcMCPoint *t_point)
const;
109 virtual Double_t GetTime(
const BSEmcMCPoint *t_point)
const;
110 virtual Bool_t GetEntering(
const BSEmcMCPoint *t_point)
const;
111 virtual Bool_t GetExiting(
const BSEmcMCPoint *t_point)
const;
112 virtual FairMultiLinkedData GetTracks(
const BSEmcMCPoint *t_point)
const;
113 virtual Int_t GetMCTrackID(
const BSEmcMCPoint *t_point)
const;
114 virtual Bool_t SkipPoint(
const BSEmcMCPoint *t_point)
const;
116 virtual void CreateHits(std::vector<BSEmcMCPoint *> t_points);
119 Int_t FindMCIndexIterative(
const BSEmcMCPoint *t_point, Int_t t_mcIndex);
123 virtual void StoreHit(Int_t t_detId, Double_t t_time, std::vector<Int_t> &t_mctrackIds,
const FairMultiLinkedData &t_entering,
const FairMultiLinkedData &t_exiting);
126 std::string fHitParName{
""};
127 std::string fPositionParName{
""};
131 Double_t fEnergyThreshold{-1};
132 Double_t fCutMotherParticle{-1};
133 Double_t fCutSameTrack{-1};
137 std::map<Int_t, Float_t> fTrackEnergy{};
138 std::map<Int_t, Float_t> fTrackTime{};
139 std::map<Int_t, std::vector<Int_t>> fTrackMcTruth{};
140 std::map<Int_t, std::vector<Int_t>> fPointMatch{};
141 std::map<Int_t, FairMultiLinkedData> fTrackEntering{};
142 std::map<Int_t, FairMultiLinkedData> fTrackExiting{};
143 std::map<Int_t, const BSEmcMCPoint *> fLastPointForTrack{};
144 std::map<Int_t, std::map<Int_t, Double_t>> fShower{};
Process to create BSEmcMCHits out of BSEmcMCPoints.
Bool_t InsideVolume(const TVector3 &t_point) const
virtual ~BSEmcVolumeBox()
void SetHitParName(const std::string &t_parName)
Bool_t InsideVolume(const TVector3 &t_point) const
void SetPositionParName(const std::string &t_parName)
BSEmcVolumeDisk(Double_t t_minR, Double_t t_maxR, Double_t t_minZ, Double_t t_maxZ)
DataStruct to pass addresses to data Container between BSEmcMCHitProducerTask and PndProcess<BSEmcMCH...
BSEmcVolumeBox(Double_t t_minX, Double_t t_maxX, Double_t t_minY, Double_t t_maxY, Double_t t_minZ, Double_t t_maxZ)
virtual ~BSEmcVolumeDisk()
virtual Bool_t InsideVolume(const TVector3 &t_point) const =0
Parameter for crystal positions.
represents a mc hit in an emc crystal
void SetVolume(BSEmcVolume *t_volume)
Interface to a datacontainer to be used in PandaROOT.
Base class for algo that require the cleansortmclist.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
represents the deposited energy of one emc crystal from simulation