File indexing completed on 2026-05-04 08:07:40
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 #ifndef RE05StackingAction_H
0030 #define RE05StackingAction_H 1
0031
0032 #include "G4ThreeVector.hh"
0033 #include "G4UserStackingAction.hh"
0034 #include "globals.hh"
0035
0036 class G4Track;
0037
0038 #include "RE05MuonHit.hh"
0039 #include "RE05TrackerHit.hh"
0040 class RE05StackingActionMessenger;
0041
0042 class RE05StackingAction : public G4UserStackingAction
0043 {
0044 public:
0045 RE05StackingAction();
0046 virtual ~RE05StackingAction();
0047
0048 public:
0049 virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack);
0050 virtual void NewStage();
0051 virtual void PrepareNewEvent();
0052
0053 private:
0054 G4bool InsideRoI(const G4Track* aTrack, G4double ang);
0055 G4VHitsCollection* GetCollection(G4String colName);
0056
0057 RE05TrackerHitsCollection* fTrkHits;
0058 RE05MuonHitsCollection* fMuonHits;
0059 RE05StackingActionMessenger* fMessenger;
0060
0061 G4int fStage;
0062 G4int fReqMuon;
0063 G4int fReqIsoMuon;
0064 G4int fReqIso;
0065 G4double fAngRoI;
0066
0067 public:
0068 inline void SetNRequestMuon(G4int val) { fReqMuon = val; }
0069 inline G4int GetNRequestMuon() const { return fReqMuon; }
0070 inline void SetNRequestIsoMuon(G4int val) { fReqIsoMuon = val; }
0071 inline G4int GetNRequestIsoMuon() const { return fReqIsoMuon; }
0072 inline void SetNIsolation(G4int val) { fReqIso = val; }
0073 inline G4int GetNIsolation() const { return fReqIso; }
0074 inline void SetRoIAngle(G4double val) { fAngRoI = val; }
0075 inline G4double GetRoIAngle() const { return fAngRoI; }
0076 };
0077
0078 #endif