CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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(G4Step* step, 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(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:367
virtual ~HFCherenkov()
Definition: HFCherenkov.cc:44
double fibreR
Definition: HFCherenkov.h:63
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:447
int computeNPEinPMT(G4ParticleDefinition *pDef, double pBeta, double u, double v, double w, double step_length)
Definition: HFCherenkov.cc:229
bool UseNewPMT
Definition: HFCherenkov.h:65
std::vector< double > wlini
Definition: HFCherenkov.h:70
double computeHEMEff(double wavelength)
Definition: HFCherenkov.cc:402
double smearNPE(G4int Npe)
Definition: HFCherenkov.cc:432
double sinPsimax
Definition: HFCherenkov.h:63
std::vector< double > getWL()
Definition: HFCherenkov.cc:337
std::vector< double > getWLQEff()
Definition: HFCherenkov.cc:332
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:342
G4ThreeVector phMom
Definition: HFCherenkov.h:67
std::vector< double > getWLIni()
Definition: HFCherenkov.cc:312
int computeNbOfPhotons(double pBeta, double step_length)
Definition: HFCherenkov.cc:347
std::vector< double > getWLTrap()
Definition: HFCherenkov.cc:317
std::vector< double > getWLAtten()
Definition: HFCherenkov.cc:322
bool isApplicable(const G4ParticleDefinition *aParticleType)
Definition: HFCherenkov.cc:458
std::vector< double > wlatten
Definition: HFCherenkov.h:72
double gain
Definition: HFCherenkov.h:63
T w() const
double lambda1
Definition: HFCherenkov.h:61
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
double ref_index
Definition: HFCherenkov.h:60
int computeNPE(G4Step *step, G4ParticleDefinition *pDef, double pBeta, double u, double v, double w, double step_length, double zFiber, double Dose, int Npe_Dose)
Definition: HFCherenkov.cc:82
std::vector< double > getWLHEM()
Definition: HFCherenkov.cc:327
std::vector< double > wl
Definition: HFCherenkov.h:68