CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
FP420SD.h
Go to the documentation of this file.
1 //
2 #ifndef FP420_FP420SD_h
3 #define FP420_FP420SD_h
4 //
5 
8 
12 
15 
17 
21 
24 
25 #include "G4Step.hh"
26 #include "G4StepPoint.hh"
27 #include "G4Track.hh"
28 #include "G4VPhysicalVolume.hh"
29 
30 #include <string>
31 
32 class TrackingSlaveSD;
33 //AZ:
34 class FrameRotation;
35 class TrackInformation;
36 class SimTrackManager;
37 class TrackingSlaveSD;
38 class UpdatablePSimHit;
41 
42 //-------------------------------------------------------------------
43 
45  public Observer<const BeginOfRun*>,
46  public Observer<const BeginOfEvent*>,
47  public Observer<const EndOfEvent*> {
48 public:
50 
51  ~FP420SD() override;
52 
53  bool ProcessHits(G4Step*, G4TouchableHistory*) override;
54  uint32_t setDetUnitId(const G4Step*) override;
55 
56  void Initialize(G4HCofThisEvent* HCE) override;
57  void EndOfEvent(G4HCofThisEvent* eventHC) override;
58  void clear() override;
59  void DrawAll() override;
60  void PrintAll() override;
61 
62  virtual double getEnergyDeposit(G4Step* step);
63  void fillHits(edm::PSimHitContainer&, const std::string&) override;
64  void clearHits() override;
65 
66 private:
67  void update(const BeginOfRun*) override;
68  void update(const BeginOfEvent*) override;
69  void update(const ::EndOfEvent*) override;
70 
71  G4ThreeVector SetToLocal(const G4ThreeVector& global);
72  G4ThreeVector SetToLocalExit(const G4ThreeVector& globalPoint);
73  void GetStepInfo(G4Step* aStep);
74  G4bool HitExists();
75  void CreateNewHit();
76  void UpdateHit();
77  void StoreHit(FP420G4Hit*);
78  void ResetForNewPrimary();
79  void Summarize();
80 
81 private:
82  //AZ:
85 
86  G4ThreeVector entrancePoint, exitPoint;
87  G4ThreeVector theEntryPoint;
88  G4ThreeVector theExitPoint;
89 
91 
92  G4int hcID;
95 
96  G4int tsID;
98  G4Track* theTrack;
99  G4VPhysicalVolume* currentPV;
100  // unsigned int unitID, previousUnitID;
102  G4int tSliceID;
103  unsigned int primaryID, primID;
104 
105  G4double tSlice;
106 
107  G4StepPoint* preStepPoint;
108  G4StepPoint* postStepPoint;
109  float edeposit;
110 
111  G4ThreeVector hitPoint;
112  G4ThreeVector hitPointExit;
113  G4ThreeVector hitPointLocal;
114  G4ThreeVector hitPointLocalExit;
115  float Pabs;
116  float Tof;
117  float Eloss;
119 
121  float PhiAtEntry;
122 
123  int ParentId;
124  float Vx, Vy, Vz;
125  float X, Y, Z;
126 
127  //
128  // Hist
129  //
130  int eventno;
131 
132 protected:
134  G4int emPDG;
135  G4int epPDG;
136  G4int gammaPDG;
137 };
138 
139 #endif // FP420SD_h
int eventno
Definition: FP420SD.h:130
G4ThreeVector theExitPoint
Definition: FP420SD.h:88
G4int emPDG
Definition: FP420SD.h:134
G4ThreeVector SetToLocalExit(const G4ThreeVector &globalPoint)
Definition: FP420SD.cc:320
void DrawAll() override
Definition: FP420SD.cc:404
float ThetaAtEntry
Definition: FP420SD.h:120
virtual double getEnergyDeposit(G4Step *step)
Definition: FP420SD.cc:87
G4ThreeVector hitPointExit
Definition: FP420SD.h:112
float Pabs
Definition: FP420SD.h:115
TrackingSlaveSD * slave
Definition: FP420SD.h:83
G4StepPoint * preStepPoint
Definition: FP420SD.h:107
void ResetForNewPrimary()
Definition: FP420SD.cc:217
G4int hcID
Definition: FP420SD.h:92
G4int tsID
Definition: FP420SD.h:96
unsigned int primaryID
Definition: FP420SD.h:103
float Eloss
Definition: FP420SD.h:117
unsigned int primID
Definition: FP420SD.h:103
G4ThreeVector exitPoint
Definition: FP420SD.h:86
float edeposit
Definition: FP420SD.h:109
void clearHits() override
Definition: FP420SD.cc:441
G4ThreeVector theEntryPoint
Definition: FP420SD.h:87
float edepositHAD
Definition: FP420SD.h:133
float Vz
Definition: FP420SD.h:124
void GetStepInfo(G4Step *aStep)
Definition: FP420SD.cc:126
void fillHits(edm::PSimHitContainer &, const std::string &) override
Definition: FP420SD.cc:419
G4int gammaPDG
Definition: FP420SD.h:136
FP420G4HitCollection * theHC
Definition: FP420SD.h:93
void CreateNewHit()
Definition: FP420SD.cc:233
G4Track * theTrack
Definition: FP420SD.h:98
void Summarize()
Definition: FP420SD.cc:400
G4int tSliceID
Definition: FP420SD.h:102
G4bool HitExists()
Definition: FP420SD.cc:175
void update(const BeginOfRun *) override
This routine will be called when the appropriate signal arrives.
Definition: FP420SD.cc:431
uint32_t setDetUnitId(const G4Step *) override
Definition: FP420SD.cc:171
G4THitsCollection< FP420G4Hit > FP420G4HitCollection
uint32_t previousUnitID
Definition: FP420SD.h:101
G4VPhysicalVolume * currentPV
Definition: FP420SD.h:99
void Initialize(G4HCofThisEvent *HCE) override
Definition: FP420SD.cc:89
float Tof
Definition: FP420SD.h:116
void clear() override
Definition: FP420SD.cc:402
uint32_t unitID
Definition: FP420SD.h:101
float PhiAtEntry
Definition: FP420SD.h:121
float edepositEM
Definition: FP420SD.h:133
short ParticleType
Definition: FP420SD.h:118
G4ThreeVector hitPointLocalExit
Definition: FP420SD.h:114
FP420NumberingScheme * numberingScheme
Definition: FP420SD.h:84
G4double tSlice
Definition: FP420SD.h:105
bool ProcessHits(G4Step *, G4TouchableHistory *) override
Definition: FP420SD.cc:106
void PrintAll() override
Definition: FP420SD.cc:406
FP420SD(const std::string &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: FP420SD.cc:46
G4ThreeVector SetToLocal(const G4ThreeVector &global)
Definition: FP420SD.cc:314
float incidentEnergy
Definition: FP420SD.h:90
int ParentId
Definition: FP420SD.h:123
G4ThreeVector entrancePoint
Definition: FP420SD.h:86
float Z
Definition: FP420SD.h:125
float Vy
Definition: FP420SD.h:124
void UpdateHit()
Definition: FP420SD.cc:293
std::vector< PSimHit > PSimHitContainer
step
Definition: StallMonitor.cc:94
const SimTrackManager * theManager
Definition: FP420SD.h:94
~FP420SD() override
Definition: FP420SD.cc:82
G4int epPDG
Definition: FP420SD.h:135
G4StepPoint * postStepPoint
Definition: FP420SD.h:108
float X
Definition: FP420SD.h:125
FP420G4Hit * currentHit
Definition: FP420SD.h:97
G4ThreeVector hitPointLocal
Definition: FP420SD.h:113
G4ThreeVector hitPoint
Definition: FP420SD.h:111
float Y
Definition: FP420SD.h:125
void StoreHit(FP420G4Hit *)
Definition: FP420SD.cc:223
float Vx
Definition: FP420SD.h:124
void EndOfEvent(G4HCofThisEvent *eventHC) override
Definition: FP420SD.cc:326