CMS 3D CMS Logo

HFCherenkov.h
Go to the documentation of this file.
1 #ifndef SimG4CMS_HFCherenkov_h
2 #define SimG4CMS_HFCherenkov_h 1
3 // File: HFCherenkov.h
5 // Description: Generate Cherenkov photons for HF
7 
10 
11 #include "G4DynamicParticle.hh"
12 #include "G4ParticleDefinition.hh"
13 #include "G4Step.hh"
14 #include "G4ThreeVector.hh"
15 #include "globals.hh"
16 
17 #include <vector>
18 
19 class HFCherenkov {
20 public:
22  virtual ~HFCherenkov();
23 
24  int computeNPE(const G4Step* step,
25  const G4ParticleDefinition* pDef,
26  double pBeta,
27  double u,
28  double v,
29  double w,
30  double step_length,
31  double zFiber,
32  double Dose,
33  int Npe_Dose);
34 
35  int computeNPEinPMT(const G4ParticleDefinition* pDef, double pBeta, double u, double v, double w, double step_length);
36 
38  double pBeta, double u, double v, double w, double step_length, double zFiber, double Dose, int Npe_Dose);
39  double smearNPE(G4int Npe);
40 
41  std::vector<double> getMom();
42  std::vector<double> getWL();
43  std::vector<double> getWLIni();
44  std::vector<double> getWLTrap();
45  std::vector<double> getWLAtten();
46  std::vector<double> getWLHEM();
47  std::vector<double> getWLQEff();
48  void clearVectors();
49 
50 private:
51  bool isApplicable(const G4ParticleDefinition* aParticleType);
52  // Returns true -> 'is applicable', for all charged particles.
53  int computeNbOfPhotons(double pBeta, double step_length);
54  double computeQEff(double wavelength);
55  double computeHEMEff(double wavelength);
56 
57 private:
58  double ref_index;
59  double lambda1, lambda2;
61  double gain, fibreR, sinPsimax;
63  bool UseNewPMT;
64 
65  G4ThreeVector phMom;
66  std::vector<double> wl;
67  std::vector<double> momZ;
68  std::vector<double> wlini;
69  std::vector<double> wltrap;
70  std::vector<double> wlatten;
71  std::vector<double> wlhem;
72  std::vector<double> wlqeff;
73 };
74 
75 #endif
double computeQEff(double wavelength)
Definition: HFCherenkov.cc:328
virtual ~HFCherenkov()
Definition: HFCherenkov.cc:41
double fibreR
Definition: HFCherenkov.h:61
double aperturetrapped
Definition: HFCherenkov.h:60
T w() const
HFCherenkov(edm::ParameterSet const &p)
Definition: HFCherenkov.cc:19
std::vector< double > wlqeff
Definition: HFCherenkov.h:72
void clearVectors()
Definition: HFCherenkov.cc:400
bool UseNewPMT
Definition: HFCherenkov.h:63
std::vector< double > wlini
Definition: HFCherenkov.h:68
double computeHEMEff(double wavelength)
Definition: HFCherenkov.cc:358
double smearNPE(G4int Npe)
Definition: HFCherenkov.cc:386
double sinPsimax
Definition: HFCherenkov.h:61
std::vector< double > getWL()
Definition: HFCherenkov.cc:301
std::vector< double > getWLQEff()
Definition: HFCherenkov.cc:296
std::vector< double > wltrap
Definition: HFCherenkov.h:69
double aperture
Definition: HFCherenkov.h:60
std::vector< double > wlhem
Definition: HFCherenkov.h:71
double apertureTrap
Definition: HFCherenkov.h:60
std::vector< double > getMom()
Definition: HFCherenkov.cc:306
G4ThreeVector phMom
Definition: HFCherenkov.h:65
std::vector< double > getWLIni()
Definition: HFCherenkov.cc:276
int computeNbOfPhotons(double pBeta, double step_length)
Definition: HFCherenkov.cc:311
std::vector< double > getWLTrap()
Definition: HFCherenkov.cc:281
std::vector< double > getWLAtten()
Definition: HFCherenkov.cc:286
bool isApplicable(const G4ParticleDefinition *aParticleType)
Definition: HFCherenkov.cc:410
std::vector< double > wlatten
Definition: HFCherenkov.h:70
double gain
Definition: HFCherenkov.h:61
step
Definition: StallMonitor.cc:83
double lambda1
Definition: HFCherenkov.h:59
int computeNPE(const G4Step *step, const G4ParticleDefinition *pDef, double pBeta, double u, double v, double w, double step_length, double zFiber, double Dose, int Npe_Dose)
Definition: HFCherenkov.cc:43
double lambda2
Definition: HFCherenkov.h:59
bool checkSurvive
Definition: HFCherenkov.h:62
std::vector< double > momZ
Definition: HFCherenkov.h:67
int computeNPhTrapped(double pBeta, double u, double v, double w, double step_length, double zFiber, double Dose, int Npe_Dose)
int computeNPEinPMT(const G4ParticleDefinition *pDef, double pBeta, double u, double v, double w, double step_length)
Definition: HFCherenkov.cc:200
double ref_index
Definition: HFCherenkov.h:58
std::vector< double > getWLHEM()
Definition: HFCherenkov.cc:291
std::vector< double > wl
Definition: HFCherenkov.h:66