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 
42  public Observer<const BeginOfRun*>,
43  public Observer<const BeginOfEvent*>,
44  public Observer<const EndOfEvent*> {
45 public:
46  FP420SD(const std::string&,
47  const edm::EventSetup&,
49  edm::ParameterSet const&,
50  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  //AZ:
86 
87  G4ThreeVector entrancePoint, exitPoint;
88  G4ThreeVector theEntryPoint;
89  G4ThreeVector theExitPoint;
90 
92 
93  G4int hcID;
96 
97  G4int tsID;
99  G4Track* theTrack;
100  G4VPhysicalVolume* currentPV;
101  // unsigned int unitID, previousUnitID;
103  G4int tSliceID;
104  unsigned int primaryID, primID;
105 
106  G4double tSlice;
107 
108  G4StepPoint* preStepPoint;
109  G4StepPoint* postStepPoint;
110  float edeposit;
111 
112  G4ThreeVector hitPoint;
113  G4ThreeVector hitPointExit;
114  G4ThreeVector hitPointLocal;
115  G4ThreeVector hitPointLocalExit;
116  float Pabs;
117  float Tof;
118  float Eloss;
120 
122  float PhiAtEntry;
123 
124  int ParentId;
125  float Vx, Vy, Vz;
126  float X, Y, Z;
127 
128  //
129  // Hist
130  //
131  int eventno;
132 
133 protected:
135  G4int emPDG;
136  G4int epPDG;
137  G4int gammaPDG;
138 };
139 
140 #endif // FP420SD_h
FP420SD::PhiAtEntry
float PhiAtEntry
Definition: FP420SD.h:122
FP420SD::hitPointLocalExit
G4ThreeVector hitPointLocalExit
Definition: FP420SD.h:115
FP420SD::DrawAll
void DrawAll() override
Definition: FP420SD.cc:405
SimTrackManager
Definition: SimTrackManager.h:35
FP420SD::primaryID
unsigned int primaryID
Definition: FP420SD.h:104
FP420SD::X
float X
Definition: FP420SD.h:126
Observer
Definition: Observer.h:23
FP420SD::Y
float Y
Definition: FP420SD.h:126
BeginOfJob.h
FP420G4HitCollection.h
step
step
Definition: StallMonitor.cc:94
FP420SD::Vy
float Vy
Definition: FP420SD.h:125
SensitiveTkDetector
Definition: SensitiveTkDetector.h:8
FP420G4HitCollection
G4THitsCollection< FP420G4Hit > FP420G4HitCollection
Definition: FP420G4HitCollection.h:14
FP420SD::theEntryPoint
G4ThreeVector theEntryPoint
Definition: FP420SD.h:88
FP420SD::Tof
float Tof
Definition: FP420SD.h:117
FP420SD::postStepPoint
G4StepPoint * postStepPoint
Definition: FP420SD.h:109
FP420SD::tsID
G4int tsID
Definition: FP420SD.h:97
FP420NumberingScheme.h
FP420SD::currentHit
FP420G4Hit * currentHit
Definition: FP420SD.h:98
FP420SD::hitPointExit
G4ThreeVector hitPointExit
Definition: FP420SD.h:113
FP420SD::hitPoint
G4ThreeVector hitPoint
Definition: FP420SD.h:112
EndOfEvent.h
FP420SD::Summarize
void Summarize()
Definition: FP420SD.cc:401
FP420SD::hitPointLocal
G4ThreeVector hitPointLocal
Definition: FP420SD.h:114
FP420SD::Eloss
float Eloss
Definition: FP420SD.h:118
FP420SD::HitExists
G4bool HitExists()
Definition: FP420SD.cc:176
FP420SD::PrintAll
void PrintAll() override
Definition: FP420SD.cc:407
G4ProcessTypeEnumerator
Definition: G4ProcessTypeEnumerator.h:6
FP420SD::edeposit
float edeposit
Definition: FP420SD.h:110
Observer.h
SensitiveTkDetector.h
BeginOfTrack.h
FP420SD::slave
TrackingSlaveSD * slave
Definition: FP420SD.h:84
FrameRotation
Definition: FrameRotation.h:8
BeginOfRun.h
FP420SD::GetStepInfo
void GetStepInfo(G4Step *aStep)
Definition: FP420SD.cc:127
G4TrackToParticleID
Definition: G4TrackToParticleID.h:6
FP420SD::FP420SD
FP420SD(const std::string &, const edm::EventSetup &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: FP420SD.cc:46
FP420SD::getEnergyDeposit
virtual double getEnergyDeposit(G4Step *step)
Definition: FP420SD.cc:88
FP420SD::primID
unsigned int primID
Definition: FP420SD.h:104
FP420SD::update
void update(const BeginOfRun *) override
This routine will be called when the appropriate signal arrives.
Definition: FP420SD.cc:432
SensitiveDetectorCatalog
Definition: SensitiveDetectorCatalog.h:10
FP420SD::numberingScheme
FP420NumberingScheme * numberingScheme
Definition: FP420SD.h:85
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FP420SD::entrancePoint
G4ThreeVector entrancePoint
Definition: FP420SD.h:87
FP420SD::currentPV
G4VPhysicalVolume * currentPV
Definition: FP420SD.h:100
edm::ParameterSet
Definition: ParameterSet.h:36
FP420SD::ResetForNewPrimary
void ResetForNewPrimary()
Definition: FP420SD.cc:218
FP420SD::theHC
FP420G4HitCollection * theHC
Definition: FP420SD.h:94
FP420SD::theTrack
G4Track * theTrack
Definition: FP420SD.h:99
FP420SD::fillHits
void fillHits(edm::PSimHitContainer &, const std::string &) override
Definition: FP420SD.cc:420
UpdatablePSimHit
Definition: UpdatablePSimHit.h:12
FP420SD::Initialize
void Initialize(G4HCofThisEvent *HCE) override
Definition: FP420SD.cc:90
BeginOfEvent.h
TrackInformation
Definition: TrackInformation.h:8
FP420SD::~FP420SD
~FP420SD() override
Definition: FP420SD.cc:83
FP420SD::epPDG
G4int epPDG
Definition: FP420SD.h:136
TrackingSlaveSD
Definition: TrackingSlaveSD.h:11
FP420SD::exitPoint
G4ThreeVector exitPoint
Definition: FP420SD.h:87
BeginOfEvent
Definition: BeginOfEvent.h:6
BeginOfRun
Definition: BeginOfRun.h:6
FP420SD::tSlice
G4double tSlice
Definition: FP420SD.h:106
edm::EventSetup
Definition: EventSetup.h:57
FP420SD::ParticleType
short ParticleType
Definition: FP420SD.h:119
FP420SD::StoreHit
void StoreHit(FP420G4Hit *)
Definition: FP420SD.cc:224
FP420SD::SetToLocal
G4ThreeVector SetToLocal(const G4ThreeVector &global)
Definition: FP420SD.cc:315
FP420SD::clearHits
void clearHits() override
Definition: FP420SD.cc:442
FP420SD::edepositHAD
float edepositHAD
Definition: FP420SD.h:134
FP420SD::EndOfEvent
void EndOfEvent(G4HCofThisEvent *eventHC) override
Definition: FP420SD.cc:327
FP420SD::incidentEnergy
float incidentEnergy
Definition: FP420SD.h:91
FP420SD::Vz
float Vz
Definition: FP420SD.h:125
FP420G4Hit
Definition: FP420G4Hit.h:18
FP420SD::gammaPDG
G4int gammaPDG
Definition: FP420SD.h:137
FP420SD::clear
void clear() override
Definition: FP420SD.cc:403
FP420SD::preStepPoint
G4StepPoint * preStepPoint
Definition: FP420SD.h:108
FP420SD::emPDG
G4int emPDG
Definition: FP420SD.h:135
FP420SD::CreateNewHit
void CreateNewHit()
Definition: FP420SD.cc:234
FP420SD::unitID
uint32_t unitID
Definition: FP420SD.h:102
LocalPoint.h
FP420SD::theManager
const SimTrackManager * theManager
Definition: FP420SD.h:95
FP420SD::SetToLocalExit
G4ThreeVector SetToLocalExit(const G4ThreeVector &globalPoint)
Definition: FP420SD.cc:321
FP420SD::tSliceID
G4int tSliceID
Definition: FP420SD.h:103
FP420SD::ProcessHits
bool ProcessHits(G4Step *, G4TouchableHistory *) override
Definition: FP420SD.cc:107
FP420SD::hcID
G4int hcID
Definition: FP420SD.h:93
FP420SD::ThetaAtEntry
float ThetaAtEntry
Definition: FP420SD.h:121
FP420G4Hit.h
FP420SD::ParentId
int ParentId
Definition: FP420SD.h:124
edm::PSimHitContainer
std::vector< PSimHit > PSimHitContainer
Definition: PSimHitContainer.h:11
FP420SD
Definition: FP420SD.h:41
FP420SD::previousUnitID
uint32_t previousUnitID
Definition: FP420SD.h:102
FP420SD::Vx
float Vx
Definition: FP420SD.h:125
FP420SD::setDetUnitId
uint32_t setDetUnitId(const G4Step *) override
Definition: FP420SD.cc:172
FP420SD::eventno
int eventno
Definition: FP420SD.h:131
FP420SD::Pabs
float Pabs
Definition: FP420SD.h:116
FP420SD::Z
float Z
Definition: FP420SD.h:126
FP420NumberingScheme
Definition: FP420NumberingScheme.h:15
FP420SD::theExitPoint
G4ThreeVector theExitPoint
Definition: FP420SD.h:89
FP420SD::UpdateHit
void UpdateHit()
Definition: FP420SD.cc:294
FP420SD::edepositEM
float edepositEM
Definition: FP420SD.h:134