CMS 3D CMS Logo

ZdcSD.h
Go to the documentation of this file.
1 #ifndef SimG4CMSForwardZdcSD_h
2 #define SimG4CMSForwardZdcSD_h
3 // File: ZdcSD.h
5 // Date: 02.04
6 // Description: Stores hits of Zdc in appropriate container
7 //
14 
15 class ZdcSD : public CaloSD {
16 public:
18 
19  ~ZdcSD() override = default;
20  bool ProcessHits(G4Step *step, G4TouchableHistory *tHistory) override;
21  uint32_t setDetUnitId(const G4Step *step) override;
22 
23 protected:
24  double getEnergyDeposit(const G4Step *) override;
25  bool getFromLibrary(const G4Step *) override;
26  void initRun() override;
27 
28  double calculateCherenkovDeposit(const G4Step *);
29  double calculateMeanNumberOfPhotons(double, double, double);
30  double photonEnergyDist(double, double, double);
31  double generatePhotonEnergy(double, double, double);
32  double pmtEfficiency(double);
33  double convertEnergyToWavelength(double);
34 
35  double calculateN2InvIntegral(double);
36  double evaluateFunction(const std::vector<double> &, const std::vector<double> &, double);
37  double linearInterpolation(double, double, double, double, double);
38 
39  int setTrackID(const G4Step *step) override;
40 
41 private:
42  int verbosity;
44  double thFibDir;
46  std::unique_ptr<ZdcShowerLibrary> showerLibrary;
47  std::unique_ptr<ZdcNumberingScheme> numberingScheme;
48 
49  std::vector<ZdcShowerLibrary::Hit> hits;
50 };
51 
52 #endif // ZdcSD_h
double convertEnergyToWavelength(double)
Definition: ZdcSD.cc:575
double thFibDir
Definition: ZdcSD.h:44
std::unique_ptr< ZdcNumberingScheme > numberingScheme
Definition: ZdcSD.h:47
double calculateN2InvIntegral(double)
Definition: ZdcSD.cc:502
Definition: CaloSD.h:40
int verbosity
Definition: ZdcSD.h:42
std::vector< ZdcShowerLibrary::Hit > hits
Definition: ZdcSD.h:49
bool useShowerHits
Definition: ZdcSD.h:43
double calculateCherenkovDeposit(const G4Step *)
Definition: ZdcSD.cc:360
double evaluateFunction(const std::vector< double > &, const std::vector< double > &, double)
Definition: ZdcSD.cc:547
double calculateMeanNumberOfPhotons(double, double, double)
Definition: ZdcSD.cc:468
double generatePhotonEnergy(double, double, double)
Definition: ZdcSD.cc:489
~ZdcSD() override=default
int setTrackID(const G4Step *step) override
Definition: ZdcSD.cc:583
bool ProcessHits(G4Step *step, G4TouchableHistory *tHistory) override
Definition: ZdcSD.cc:76
ZdcSD(const std::string &, const SensitiveDetectorCatalog &, edm::ParameterSet const &, const SimTrackManager *)
Definition: ZdcSD.cc:34
void initRun() override
Definition: ZdcSD.cc:68
double pmtEfficiency(double)
Definition: ZdcSD.cc:517
std::unique_ptr< ZdcShowerLibrary > showerLibrary
Definition: ZdcSD.h:46
double zdcHitEnergyCut
Definition: ZdcSD.h:45
double photonEnergyDist(double, double, double)
Definition: ZdcSD.cc:474
step
Definition: StallMonitor.cc:83
double linearInterpolation(double, double, double, double, double)
Definition: ZdcSD.cc:567
bool getFromLibrary(const G4Step *) override
Definition: ZdcSD.cc:124
Definition: ZdcSD.h:15
uint32_t setDetUnitId(const G4Step *step) override
Definition: ZdcSD.cc:579
bool useShowerLibrary
Definition: ZdcSD.h:43
double getEnergyDeposit(const G4Step *) override
Definition: ZdcSD.cc:178