CMS 3D CMS Logo

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 
22 #include "G4Step.hh"
23 #include "G4StepPoint.hh"
24 #include "G4Track.hh"
25 #include "G4VPhysicalVolume.hh"
26 
27 #include <string>
28 
29 class TrackingSlaveSD;
30 //AZ:
31 class FrameRotation;
32 class TrackInformation;
33 class SimTrackManager;
34 class TrackingSlaveSD;
35 class UpdatablePSimHit;
38 
39 
40 //-------------------------------------------------------------------
41 
43  public Observer<const BeginOfRun *>,
44  public Observer<const BeginOfEvent*>,
45  public Observer<const EndOfEvent*> {
46 
47 public:
48 
50  edm::ParameterSet const &, const SimTrackManager* );
51 
52  ~FP420SD() override;
53 
54  bool ProcessHits(G4Step *,G4TouchableHistory *) override;
55  uint32_t setDetUnitId(const G4Step*) override;
56 
57  void Initialize(G4HCofThisEvent * HCE) override;
58  void EndOfEvent(G4HCofThisEvent * eventHC) override;
59  void clear() override;
60  void DrawAll() override;
61  void PrintAll() override;
62 
63  virtual double getEnergyDeposit(G4Step* step);
64  void fillHits(edm::PSimHitContainer&, const std::string&) override;
65  void clearHits() override;
66 
67  private:
68  void update(const BeginOfRun *) override;
69  void update(const BeginOfEvent *) override;
70  void update(const ::EndOfEvent *) override;
71 
72  G4ThreeVector SetToLocal(const G4ThreeVector& global);
73  G4ThreeVector SetToLocalExit(const G4ThreeVector& globalPoint);
74  void GetStepInfo(G4Step* aStep);
75  G4bool HitExists();
76  void CreateNewHit();
77  void UpdateHit();
78  void StoreHit(FP420G4Hit*);
79  void ResetForNewPrimary();
80  void Summarize();
81 
82  private:
83 
84  //AZ:
87 
88  G4ThreeVector entrancePoint, exitPoint;
89  G4ThreeVector theEntryPoint ;
90  G4ThreeVector theExitPoint ;
91 
93 
94  G4int hcID;
97 
98  G4int tsID;
100  G4Track* theTrack;
101  G4VPhysicalVolume* currentPV;
102  // unsigned int unitID, previousUnitID;
104  G4int tSliceID;
105  unsigned int primaryID, primID ;
106 
107  G4double tSlice;
108 
109  G4StepPoint* preStepPoint;
110  G4StepPoint* postStepPoint;
111  float edeposit;
112 
113  G4ThreeVector hitPoint;
114  G4ThreeVector hitPointExit;
115  G4ThreeVector hitPointLocal;
116  G4ThreeVector hitPointLocalExit;
117  float Pabs;
118  float Tof;
119  float Eloss;
120  short ParticleType;
121 
123  float PhiAtEntry;
124 
125  int ParentId;
126  float Vx,Vy,Vz;
127  float X,Y,Z;
128 
129 
130  //
131  // Hist
132  //
133  int eventno;
134 
135  protected:
136 
138  G4int emPDG;
139  G4int epPDG;
140  G4int gammaPDG;
141 };
142 
143 #endif // FP420SD_h
144 
145 
146 
147 
int eventno
Definition: FP420SD.h:133
G4ThreeVector theExitPoint
Definition: FP420SD.h:90
G4int emPDG
Definition: FP420SD.h:138
G4ThreeVector SetToLocalExit(const G4ThreeVector &globalPoint)
Definition: FP420SD.cc:339
void DrawAll() override
Definition: FP420SD.cc:433
float ThetaAtEntry
Definition: FP420SD.h:122
virtual double getEnergyDeposit(G4Step *step)
Definition: FP420SD.cc:79
G4ThreeVector hitPointExit
Definition: FP420SD.h:114
float Pabs
Definition: FP420SD.h:117
TrackingSlaveSD * slave
Definition: FP420SD.h:85
G4StepPoint * preStepPoint
Definition: FP420SD.h:109
void ResetForNewPrimary()
Definition: FP420SD.cc:220
Compact representation of the geometrical detector hierarchy.
Definition: DDCompactView.h:83
G4int hcID
Definition: FP420SD.h:94
G4int tsID
Definition: FP420SD.h:98
unsigned int primaryID
Definition: FP420SD.h:105
float Eloss
Definition: FP420SD.h:119
unsigned int primID
Definition: FP420SD.h:105
G4ThreeVector exitPoint
Definition: FP420SD.h:88
float edeposit
Definition: FP420SD.h:111
void clearHits() override
Definition: FP420SD.cc:475
G4ThreeVector theEntryPoint
Definition: FP420SD.h:89
float edepositHAD
Definition: FP420SD.h:137
float Vz
Definition: FP420SD.h:126
void GetStepInfo(G4Step *aStep)
Definition: FP420SD.cc:122
void fillHits(edm::PSimHitContainer &, const std::string &) override
Definition: FP420SD.cc:451
G4int gammaPDG
Definition: FP420SD.h:140
FP420G4HitCollection * theHC
Definition: FP420SD.h:95
void CreateNewHit()
Definition: FP420SD.cc:241
G4Track * theTrack
Definition: FP420SD.h:100
void Summarize()
Definition: FP420SD.cc:425
G4int tSliceID
Definition: FP420SD.h:104
G4bool HitExists()
Definition: FP420SD.cc:174
void update(const BeginOfRun *) override
This routine will be called when the appropriate signal arrives.
Definition: FP420SD.cc:462
uint32_t setDetUnitId(const G4Step *) override
Definition: FP420SD.cc:169
G4THitsCollection< FP420G4Hit > FP420G4HitCollection
uint32_t previousUnitID
Definition: FP420SD.h:103
G4VPhysicalVolume * currentPV
Definition: FP420SD.h:101
void Initialize(G4HCofThisEvent *HCE) override
Definition: FP420SD.cc:83
FP420SD(const std::string &, const DDCompactView &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: FP420SD.cc:47
float Tof
Definition: FP420SD.h:118
void clear() override
Definition: FP420SD.cc:429
uint32_t unitID
Definition: FP420SD.h:103
float PhiAtEntry
Definition: FP420SD.h:123
float edepositEM
Definition: FP420SD.h:137
short ParticleType
Definition: FP420SD.h:120
G4ThreeVector hitPointLocalExit
Definition: FP420SD.h:116
FP420NumberingScheme * numberingScheme
Definition: FP420SD.h:86
G4double tSlice
Definition: FP420SD.h:107
bool ProcessHits(G4Step *, G4TouchableHistory *) override
Definition: FP420SD.cc:101
void PrintAll() override
Definition: FP420SD.cc:437
G4ThreeVector SetToLocal(const G4ThreeVector &global)
Definition: FP420SD.cc:331
float incidentEnergy
Definition: FP420SD.h:92
int ParentId
Definition: FP420SD.h:125
G4ThreeVector entrancePoint
Definition: FP420SD.h:88
float Z
Definition: FP420SD.h:127
float Vy
Definition: FP420SD.h:126
void UpdateHit()
Definition: FP420SD.cc:307
std::vector< PSimHit > PSimHitContainer
step
const SimTrackManager * theManager
Definition: FP420SD.h:96
~FP420SD() override
Definition: FP420SD.cc:74
G4int epPDG
Definition: FP420SD.h:139
G4StepPoint * postStepPoint
Definition: FP420SD.h:110
float X
Definition: FP420SD.h:127
FP420G4Hit * currentHit
Definition: FP420SD.h:99
G4ThreeVector hitPointLocal
Definition: FP420SD.h:115
G4ThreeVector hitPoint
Definition: FP420SD.h:113
float Y
Definition: FP420SD.h:127
void StoreHit(FP420G4Hit *)
Definition: FP420SD.cc:229
float Vx
Definition: FP420SD.h:126
void EndOfEvent(G4HCofThisEvent *eventHC) override
Definition: FP420SD.cc:347