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 
21 public:
22 
24  virtual ~HFCherenkov();
25 
26  int computeNPE(const G4Step* step, const G4ParticleDefinition* pDef,
27  double pBeta, double u, double v, double w,
28  double step_length, double zFiber,
29  double Dose, int Npe_Dose);
30 
31  int computeNPEinPMT(const G4ParticleDefinition* pDef,double pBeta,
32  double u, double v, double w,
33  double step_length);
34 
35  int computeNPhTrapped(double pBeta, double u, double v,
36  double w, double step_length,
37  double zFiber, double Dose,
38  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 
52  bool isApplicable(const G4ParticleDefinition* aParticleType);
53  // Returns true -> 'is applicable', for all charged particles.
54  int computeNbOfPhotons(double pBeta, double step_length);
55  double computeQEff(double wavelength);
56  double computeHEMEff(double wavelength);
57 
58 private:
59 
60  double ref_index;
61  double lambda1, lambda2;
63  double gain, fibreR, sinPsimax;
65  bool UseNewPMT;
66 
67  G4ThreeVector phMom;
68  std::vector<double> wl;
69  std::vector<double> momZ;
70  std::vector<double> wlini;
71  std::vector<double> wltrap;
72  std::vector<double> wlatten;
73  std::vector<double> wlhem;
74  std::vector<double> wlqeff;
75 };
76 
77 #endif
78 
double computeQEff(double wavelength)
Definition: HFCherenkov.cc:366
virtual ~HFCherenkov()
Definition: HFCherenkov.cc:44
double fibreR
Definition: HFCherenkov.h:63
const double w
Definition: UKUtility.cc:23
double aperturetrapped
Definition: HFCherenkov.h:62
HFCherenkov(edm::ParameterSet const &p)
Definition: HFCherenkov.cc:18
std::vector< double > wlqeff
Definition: HFCherenkov.h:74
void clearVectors()
Definition: HFCherenkov.cc:446
bool UseNewPMT
Definition: HFCherenkov.h:65
std::vector< double > wlini
Definition: HFCherenkov.h:70
double computeHEMEff(double wavelength)
Definition: HFCherenkov.cc:401
double smearNPE(G4int Npe)
Definition: HFCherenkov.cc:431
double sinPsimax
Definition: HFCherenkov.h:63
std::vector< double > getWL()
Definition: HFCherenkov.cc:336
std::vector< double > getWLQEff()
Definition: HFCherenkov.cc:331
std::vector< double > wltrap
Definition: HFCherenkov.h:71
double aperture
Definition: HFCherenkov.h:62
std::vector< double > wlhem
Definition: HFCherenkov.h:73
double apertureTrap
Definition: HFCherenkov.h:62
std::vector< double > getMom()
Definition: HFCherenkov.cc:341
G4ThreeVector phMom
Definition: HFCherenkov.h:67
std::vector< double > getWLIni()
Definition: HFCherenkov.cc:311
int computeNbOfPhotons(double pBeta, double step_length)
Definition: HFCherenkov.cc:346
std::vector< double > getWLTrap()
Definition: HFCherenkov.cc:316
std::vector< double > getWLAtten()
Definition: HFCherenkov.cc:321
bool isApplicable(const G4ParticleDefinition *aParticleType)
Definition: HFCherenkov.cc:457
std::vector< double > wlatten
Definition: HFCherenkov.h:72
double gain
Definition: HFCherenkov.h:63
step
double lambda1
Definition: HFCherenkov.h:61
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:82
double lambda2
Definition: HFCherenkov.h:61
bool checkSurvive
Definition: HFCherenkov.h:64
std::vector< double > momZ
Definition: HFCherenkov.h:69
int computeNPhTrapped(double pBeta, double u, double v, double w, double step_length, double zFiber, double Dose, int Npe_Dose)
Definition: HFCherenkov.cc:46
int computeNPEinPMT(const G4ParticleDefinition *pDef, double pBeta, double u, double v, double w, double step_length)
Definition: HFCherenkov.cc:229
double ref_index
Definition: HFCherenkov.h:60
std::vector< double > getWLHEM()
Definition: HFCherenkov.cc:326
std::vector< double > wl
Definition: HFCherenkov.h:68