Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:47

0001 #ifndef SimG4CMS_HFFibre_h
0002 #define SimG4CMS_HFFibre_h 1
0003 ///////////////////////////////////////////////////////////////////////////////
0004 // File: HFFibre.h
0005 // Description: Calculates attenuation length
0006 ///////////////////////////////////////////////////////////////////////////////
0007 
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0010 #include "Geometry/HcalCommonData/interface/HcalDDDSimConstants.h"
0011 #include "CondFormats/GeometryObjects/interface/HcalSimulationParameters.h"
0012 
0013 #include "G4ThreeVector.hh"
0014 
0015 #include <vector>
0016 #include <string>
0017 #include <array>
0018 
0019 class HFFibre {
0020 public:
0021   //Constructor and Destructor
0022   HFFibre(const HcalDDDSimConstants* hcons, const HcalSimulationParameters* hps, edm::ParameterSet const& p);
0023 
0024   double attLength(double lambda) const;
0025   double tShift(const G4ThreeVector& point, int depth, int fromEndAbs = 0) const;
0026   double zShift(const G4ThreeVector& point, int depth, int fromEndAbs = 0) const;
0027 
0028   struct Params {
0029     Params() = default;
0030     Params(double iFractionOfSpeedOfLightInFibre,
0031            const HcalDDDSimConstants* hcons,
0032            const HcalSimulationParameters* hps);
0033     double fractionOfSpeedOfLightInFibre_;
0034     std::vector<double> gParHF_;
0035     std::vector<double> rTableHF_;
0036     std::vector<double> shortFibreLength_;
0037     std::vector<double> longFibreLength_;
0038     std::vector<double> attenuationLength_;
0039     std::array<double, 2> lambdaLimits_;
0040   };
0041 
0042   HFFibre(Params iP);
0043 
0044 private:
0045   double cFibre_;
0046   std::vector<double> gpar_, radius_;
0047   std::vector<double> shortFL_, longFL_;
0048   std::vector<double> attL_;
0049   int nBinR_, nBinAtt_;
0050   std::array<double, 2> lambLim_;
0051 };
0052 #endif