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 "G4ThreeVector.hh"
14 #include "globals.hh"
15 
16 #include <vector>
17 
18 class HFCherenkov {
19 
20 public:
21 
23  virtual ~HFCherenkov();
24 
25  int computeNPE(G4ParticleDefinition* pDef,double pBeta,
26  double u, double v, double w,
27  double step_length, double zFiber,
28  double Dose, int Npe_Dose);
29 
30  int computeNPEinPMT(G4ParticleDefinition* pDef,double pBeta,
31  double u, double v, double w,
32  double step_length);
33 
34  int computeNPhTrapped(double pBeta, double u, double v,
35  double w, double step_length,
36  double zFiber, double Dose,
37  int Npe_Dose);
38  double smearNPE(G4int Npe);
39 
40  std::vector<double> getMom();
41  std::vector<double> getWL();
42  std::vector<double> getWLIni();
43  std::vector<double> getWLTrap();
44  std::vector<double> getWLAtten();
45  std::vector<double> getWLHEM();
46  std::vector<double> getWLQEff();
47  void clearVectors();
48 
49 private:
50 
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 
59  double ref_index;
60  double lambda1, lambda2;
62  double gain;
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
76 
double computeQEff(double wavelength)
Definition: HFCherenkov.cc:336
virtual ~HFCherenkov()
Definition: HFCherenkov.cc:42
HFCherenkov(edm::ParameterSet const &p)
Definition: HFCherenkov.cc:13
int computeNPE(G4ParticleDefinition *pDef, double pBeta, double u, double v, double w, double step_length, double zFiber, double Dose, int Npe_Dose)
Definition: HFCherenkov.cc:85
std::vector< double > wlqeff
Definition: HFCherenkov.h:72
void clearVectors()
Definition: HFCherenkov.cc:394
int computeNPEinPMT(G4ParticleDefinition *pDef, double pBeta, double u, double v, double w, double step_length)
Definition: HFCherenkov.cc:193
std::vector< double > wlini
Definition: HFCherenkov.h:68
double computeHEMEff(double wavelength)
Definition: HFCherenkov.cc:349
double smearNPE(G4int Npe)
Definition: HFCherenkov.cc:379
std::vector< double > getWL()
Definition: HFCherenkov.cc:306
std::vector< double > getWLQEff()
Definition: HFCherenkov.cc:301
std::vector< double > wltrap
Definition: HFCherenkov.h:69
double aperture
Definition: HFCherenkov.h:61
std::vector< double > wlhem
Definition: HFCherenkov.h:71
double apertureTrap
Definition: HFCherenkov.h:61
std::vector< double > getMom()
Definition: HFCherenkov.cc:311
G4ThreeVector phMom
Definition: HFCherenkov.h:65
std::vector< double > getWLIni()
Definition: HFCherenkov.cc:281
int computeNbOfPhotons(double pBeta, double step_length)
Definition: HFCherenkov.cc:316
std::vector< double > getWLTrap()
Definition: HFCherenkov.cc:286
std::vector< double > getWLAtten()
Definition: HFCherenkov.cc:291
bool isApplicable(const G4ParticleDefinition *aParticleType)
Definition: HFCherenkov.cc:405
std::vector< double > wlatten
Definition: HFCherenkov.h:70
double gain
Definition: HFCherenkov.h:62
double lambda1
Definition: HFCherenkov.h:60
double lambda2
Definition: HFCherenkov.h:60
bool checkSurvive
Definition: HFCherenkov.h:63
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)
Definition: HFCherenkov.cc:44
mathSSE::Vec4< T > v
double ref_index
Definition: HFCherenkov.h:59
std::vector< double > getWLHEM()
Definition: HFCherenkov.cc:296
std::vector< double > wl
Definition: HFCherenkov.h:66