CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/SimG4CMS/Calo/interface/HFFibre.h

Go to the documentation of this file.
00001 #ifndef SimG4CMS_HFFibre_h
00002 #define SimG4CMS_HFFibre_h 1
00003 
00004 // File: HFFibre.h
00005 // Description: Calculates attenuation length
00007 
00008 #include "DetectorDescription/Core/interface/DDsvalues.h"
00009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00010 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00011 
00012 #include "G4ThreeVector.hh"
00013 
00014 #include <vector>
00015 #include <string>
00016 
00017 class DDCompactView;    
00018 
00019 class HFFibre {
00020   
00021 public:
00022   
00023   //Constructor and Destructor
00024   HFFibre(std::string & name, const DDCompactView & cpv,
00025           edm::ParameterSet const & p);
00026   ~HFFibre();
00027 
00028   double              attLength(double lambda);
00029   double              tShift(G4ThreeVector point, int depth, 
00030                              int fromEndAbs=0);
00031   double              zShift(G4ThreeVector point, int depth, 
00032                              int fromEndAbs=0);
00033 
00034 protected:
00035 
00036   std::vector<double> getDDDArray(const std::string&, 
00037                                   const DDsvalues_type&, int&);
00038 
00039 private:
00040 
00041   double                      cFibre;
00042   std::vector<double>         gpar, radius;
00043   std::vector<double>         shortFL, longFL;
00044   std::vector<double>         attL;
00045   int                         nBinR, nBinAtt;
00046   double                      lambLim[2];
00047 
00048 };
00049 #endif