/
EICG4dRICHSteppingAction.h
89 lines (77 loc) · 2.36 KB
/
EICG4dRICHSteppingAction.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#ifndef DRICHSTEPPINGACTION_H
#define DRICHSTEPPINGACTION_H
#include <g4main/PHG4SteppingAction.h>
#include <G4StepPoint.hh>
#include <G4String.hh>
#include <G4Track.hh>
class EICG4dRICHDetector;
class G4Step;
class G4VPhysicalVolume;
class PHCompositeNode;
class EICG4dRICHHit;
class PHG4HitContainer;
class PHParameters;
class EICG4dRICHSteppingAction : public PHG4SteppingAction
{
public:
//! constructor
EICG4dRICHSteppingAction(EICG4dRICHDetector *, const PHParameters *parameters);
//! destructor
virtual ~EICG4dRICHSteppingAction();
//! stepping action
virtual bool UserSteppingAction(const G4Step *, bool);
//! reimplemented from base class
virtual void SetInterfacePointers(PHCompositeNode *);
private:
//! method to initialize a new hit, resetting some things, such
// as energy deposition accumulators
void InitHit(const G4StepPoint *prePoint_, const G4Track *aTrack_,
bool resetAccumulators);
//! pointer to the detector
EICG4dRICHDetector *m_Detector;
const PHParameters *m_Params;
//! pointer to hit container
PHG4HitContainer *m_HitContainer;
EICG4dRICHHit *m_Hit;
PHG4HitContainer *m_SaveHitContainer;
G4VPhysicalVolume *m_SaveVolPre;
G4VPhysicalVolume *m_SaveVolPost;
int m_SaveTrackId;
int m_SavePreStepStatus;
int m_SavePostStepStatus;
int m_ActiveFlag;
double m_EdepSum;
double m_EionSum;
// hit type classifiers
int hitType;
enum hitTypes
{
hEntrance, /* vessel entrance */
hExit, /* vessel exit */
hPSST, /* photosensor hit */
hIgnore, /* none of the above */
nHitTypes
};
G4String hitTypeStr[nHitTypes];
// hit subtype classifiers
int hitSubtype;
enum hitSubtypes
{
/* entrance hits */
entPrimary, /* primary, thrown from generator */
entSecondary, /* secondary, byproduct of thrown particle */
entPostStep, /* incident particle from PostStepDoItVector */
/* exit hits */
exPrimary, /* primary track exit */
exSecondary, /* secondary track exit (not primary) */
/* photosensor hits */
psOptical, /* opticalphoton hit */
psGamma, /* non-optical photon hit */
psOther, /* non-photon hit */
/* unknown hit */
subtypeUnknown,
nHitSubtypes
};
G4String hitSubtypeStr[nHitSubtypes];
};
#endif // DRICHSTEPPINGACTION_H