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
HFCherenkov::lambda2
double lambda2
Definition: HFCherenkov.h:59
HFCherenkov::checkSurvive
bool checkSurvive
Definition: HFCherenkov.h:62
MessageLogger.h
HFCherenkov::computeNPEinPMT
int computeNPEinPMT(const G4ParticleDefinition *pDef, double pBeta, double u, double v, double w, double step_length)
Definition: HFCherenkov.cc:199
step
step
Definition: StallMonitor.cc:94
HFCherenkov::ref_index
double ref_index
Definition: HFCherenkov.h:58
findQualityFiles.v
v
Definition: findQualityFiles.py:179
HFCherenkov::getWLQEff
std::vector< double > getWLQEff()
Definition: HFCherenkov.cc:295
HFCherenkov::HFCherenkov
HFCherenkov(edm::ParameterSet const &p)
Definition: HFCherenkov.cc:18
HFCherenkov::computeHEMEff
double computeHEMEff(double wavelength)
Definition: HFCherenkov.cc:357
HFCherenkov::smearNPE
double smearNPE(G4int Npe)
Definition: HFCherenkov.cc:385
HFCherenkov::sinPsimax
double sinPsimax
Definition: HFCherenkov.h:61
HFCherenkov::wlqeff
std::vector< double > wlqeff
Definition: HFCherenkov.h:72
HFCherenkov::UseNewPMT
bool UseNewPMT
Definition: HFCherenkov.h:63
w
const double w
Definition: UKUtility.cc:23
HFCherenkov::getWL
std::vector< double > getWL()
Definition: HFCherenkov.cc:300
HFCherenkov::clearVectors
void clearVectors()
Definition: HFCherenkov.cc:399
HFCherenkov::wlini
std::vector< double > wlini
Definition: HFCherenkov.h:68
HFCherenkov::wltrap
std::vector< double > wltrap
Definition: HFCherenkov.h:69
edm::ParameterSet
Definition: ParameterSet.h:47
HFCherenkov::getMom
std::vector< double > getMom()
Definition: HFCherenkov.cc:305
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
HFCherenkov::wlhem
std::vector< double > wlhem
Definition: HFCherenkov.h:71
HFCherenkov::apertureTrap
double apertureTrap
Definition: HFCherenkov.h:60
HFCherenkov::getWLIni
std::vector< double > getWLIni()
Definition: HFCherenkov.cc:275
HFCherenkov::getWLAtten
std::vector< double > getWLAtten()
Definition: HFCherenkov.cc:285
HFCherenkov::aperture
double aperture
Definition: HFCherenkov.h:60
HFCherenkov::isApplicable
bool isApplicable(const G4ParticleDefinition *aParticleType)
Definition: HFCherenkov.cc:409
HFCherenkov::wlatten
std::vector< double > wlatten
Definition: HFCherenkov.h:70
HFCherenkov::gain
double gain
Definition: HFCherenkov.h:61
HFCherenkov
Definition: HFCherenkov.h:19
HFCherenkov::lambda1
double lambda1
Definition: HFCherenkov.h:59
HFCherenkov::computeNbOfPhotons
int computeNbOfPhotons(double pBeta, double step_length)
Definition: HFCherenkov.cc:310
HFCherenkov::getWLTrap
std::vector< double > getWLTrap()
Definition: HFCherenkov.cc:280
HFCherenkov::phMom
G4ThreeVector phMom
Definition: HFCherenkov.h:65
HFCherenkov::getWLHEM
std::vector< double > getWLHEM()
Definition: HFCherenkov.cc:290
HFCherenkov::computeNPE
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:42
HFCherenkov::computeNPhTrapped
int computeNPhTrapped(double pBeta, double u, double v, double w, double step_length, double zFiber, double Dose, int Npe_Dose)
HFCherenkov::computeQEff
double computeQEff(double wavelength)
Definition: HFCherenkov.cc:327
ParameterSet.h
HFCherenkov::~HFCherenkov
virtual ~HFCherenkov()
Definition: HFCherenkov.cc:40
HFCherenkov::fibreR
double fibreR
Definition: HFCherenkov.h:61
HFCherenkov::wl
std::vector< double > wl
Definition: HFCherenkov.h:66
HFCherenkov::aperturetrapped
double aperturetrapped
Definition: HFCherenkov.h:60
HFCherenkov::momZ
std::vector< double > momZ
Definition: HFCherenkov.h:67