CMS 3D CMS Logo

HFFibre.h
Go to the documentation of this file.
1 #ifndef SimG4CMS_HFFibre_h
2 #define SimG4CMS_HFFibre_h 1
3 // File: HFFibre.h
5 // Description: Calculates attenuation length
7 
12 
13 #include "G4ThreeVector.hh"
14 
15 #include <vector>
16 #include <string>
17 #include <array>
18 
19 class HFFibre {
20 public:
21  //Constructor and Destructor
23 
24  double attLength(double lambda) const;
25  double tShift(const G4ThreeVector& point, int depth, int fromEndAbs = 0) const;
26  double zShift(const G4ThreeVector& point, int depth, int fromEndAbs = 0) const;
27 
28  struct Params {
29  Params() = default;
30  Params(double iFractionOfSpeedOfLightInFibre,
31  const HcalDDDSimConstants* hcons,
32  const HcalSimulationParameters* hps);
34  std::vector<double> gParHF_;
35  std::vector<double> rTableHF_;
36  std::vector<double> shortFibreLength_;
37  std::vector<double> longFibreLength_;
38  std::vector<double> attenuationLength_;
39  std::array<double, 2> lambdaLimits_;
40  };
41 
42  HFFibre(Params iP);
43 
44 private:
45  double cFibre_;
46  std::vector<double> gpar_, radius_;
47  std::vector<double> shortFL_, longFL_;
48  std::vector<double> attL_;
50  std::array<double, 2> lambLim_;
51 };
52 #endif
std::vector< double > radius_
Definition: HFFibre.h:46
std::vector< double > shortFL_
Definition: HFFibre.h:47
double zShift(const G4ThreeVector &point, int depth, int fromEndAbs=0) const
Definition: HFFibre.cc:125
std::vector< double > gParHF_
Definition: HFFibre.h:34
std::vector< double > longFibreLength_
Definition: HFFibre.h:37
std::vector< double > longFL_
Definition: HFFibre.h:47
double fractionOfSpeedOfLightInFibre_
Definition: HFFibre.h:33
std::array< double, 2 > lambdaLimits_
Definition: HFFibre.h:39
Params()=default
int nBinR_
Definition: HFFibre.h:49
HFFibre(const HcalDDDSimConstants *hcons, const HcalSimulationParameters *hps, edm::ParameterSet const &p)
Definition: HFFibre.cc:26
std::vector< double > gpar_
Definition: HFFibre.h:46
double tShift(const G4ThreeVector &point, int depth, int fromEndAbs=0) const
Definition: HFFibre.cc:114
std::vector< double > rTableHF_
Definition: HFFibre.h:35
double cFibre_
Definition: HFFibre.h:45
std::vector< double > attenuationLength_
Definition: HFFibre.h:38
int nBinAtt_
Definition: HFFibre.h:49
std::vector< double > attL_
Definition: HFFibre.h:48
std::array< double, 2 > lambLim_
Definition: HFFibre.h:50
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
std::vector< double > shortFibreLength_
Definition: HFFibre.h:36
double attLength(double lambda) const
Definition: HFFibre.cc:98