![]() |
![]() |
00001 #ifndef HCALForwardProperties_H 00002 #define HCALForwardProperties_H 00003 00004 #include "FastSimulation/CalorimeterProperties/interface/HCALProperties.h" 00005 00006 #include <cmath> 00007 00008 namespace edm { 00009 class ParameterSet; 00010 } 00011 00021 class HCALForwardProperties : public HCALProperties 00022 { 00023 00024 public: 00025 00026 HCALForwardProperties(const edm::ParameterSet& fastDet):HCALProperties(fastDet) {; } 00027 00028 virtual ~HCALForwardProperties() { } 00029 00031 inline double radLenIncm() const { return radiationLengthIncm(); } 00032 00034 static inline double radiationLengthIncm() { return 1.43; } 00035 00037 inline double radLenIngcm2() const { return 12.86; } 00038 00040 inline double interactionLength() const { return 15.05; } 00041 00042 double thickness(double eta) const 00043 { 00044 double e = std::exp(-eta); 00045 double e2 = e*e; 00046 // 1 / cos theta 00047 double cinv = (1.+e2)/(1.-e2); 00048 // double c = (1.-e2)/(1.+e2); 00049 // double s = 2.*e/(1.+e2); 00050 // double t = 2.*e/(1.-e2); 00051 double feta = fabs(eta); 00052 if ( 3 < feta && feta < 5 ) 00053 { 00054 return 165. * fabs(cinv); 00055 } 00056 else 00057 { 00058 return 0; 00059 } 00060 } 00061 00062 private: 00063 00064 }; 00065 00066 #endif