File indexing completed on 2025-02-23 09:22:44
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031 #ifndef RE05StackingAction_H
0032 #define RE05StackingAction_H 1
0033
0034 #include "G4ThreeVector.hh"
0035 #include "G4UserStackingAction.hh"
0036 #include "globals.hh"
0037
0038 class G4Track;
0039
0040 #include "RE05MuonHit.hh"
0041 #include "RE05TrackerHit.hh"
0042 class RE05StackingActionMessenger;
0043
0044 class RE05StackingAction : public G4UserStackingAction
0045 {
0046 public:
0047 RE05StackingAction();
0048 virtual ~RE05StackingAction();
0049
0050 public:
0051 virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
0052 virtual void NewStage();
0053 virtual void PrepareNewEvent();
0054
0055 private:
0056 G4bool InsideRoI(const G4Track* aTrack, G4double ang);
0057 G4VHitsCollection* GetCollection(G4String colName);
0058
0059 RE05TrackerHitsCollection* fTrkHits;
0060 RE05MuonHitsCollection* fMuonHits;
0061 RE05StackingActionMessenger* fMessenger;
0062
0063 G4int fStage;
0064 G4int fReqMuon;
0065 G4int fReqIsoMuon;
0066 G4int fReqIso;
0067 G4double fAngRoI;
0068
0069 public:
0070 inline void SetNRequestMuon(G4int val) { fReqMuon = val; }
0071 inline G4int GetNRequestMuon() const { return fReqMuon; }
0072 inline void SetNRequestIsoMuon(G4int val) { fReqIsoMuon = val; }
0073 inline G4int GetNRequestIsoMuon() const { return fReqIsoMuon; }
0074 inline void SetNIsolation(G4int val) { fReqIso = val; }
0075 inline G4int GetNIsolation() const { return fReqIso; }
0076 inline void SetRoIAngle(G4double val) { fAngRoI = val; }
0077 inline G4double GetRoIAngle() const { return fAngRoI; }
0078 };
0079
0080 #endif