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