EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EICG4dRICHSteppingAction.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EICG4dRICHSteppingAction.h
1 #ifndef DRICHSTEPPINGACTION_H
2 #define DRICHSTEPPINGACTION_H
3 
5 #include <G4StepPoint.hh>
6 #include <G4String.hh>
7 #include <G4Track.hh>
8 
10 
11 class G4Step;
12 class G4VPhysicalVolume;
13 class PHCompositeNode;
14 class EICG4dRICHHit;
15 class PHG4HitContainer;
16 class PHParameters;
17 
19 {
20  public:
23 
25  virtual ~EICG4dRICHSteppingAction();
26 
28  virtual bool UserSteppingAction(const G4Step *, bool);
29 
31  virtual void SetInterfacePointers(PHCompositeNode *);
32 
33  private:
35  // as energy deposition accumulators
36  void InitHit(const G4StepPoint *prePoint_, const G4Track *aTrack_,
37  bool resetAccumulators);
38 
46  G4VPhysicalVolume *m_SaveVolPre;
47  G4VPhysicalVolume *m_SaveVolPost;
48 
53  double m_EdepSum;
54  double m_EionSum;
55 
56  // hit type classifiers
57  int hitType;
58  enum hitTypes
59  {
60  hEntrance, /* vessel entrance */
61  hExit, /* vessel exit */
62  hPSST, /* photosensor hit */
63  hIgnore, /* none of the above */
65  };
66  G4String hitTypeStr[nHitTypes];
67  // hit subtype classifiers
70  {
71  /* entrance hits */
72  entPrimary, /* primary, thrown from generator */
73  entSecondary, /* secondary, byproduct of thrown particle */
74  entPostStep, /* incident particle from PostStepDoItVector */
75  /* exit hits */
76  exPrimary, /* primary track exit */
77  exSecondary, /* secondary track exit (not primary) */
78  /* photosensor hits */
79  psOptical, /* opticalphoton hit */
80  psGamma, /* non-optical photon hit */
81  psOther, /* non-photon hit */
82  /* unknown hit */
85  };
87 };
88 
89 #endif // DRICHSTEPPINGACTION_H