00001 #ifndef RecoTauTag_TauTagTools_ECALBounds_H 00002 #define RecoTauTag_TauTagTools_ECALBounds_H 00003 00004 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h" 00005 #include "DataFormats/GeometrySurface/interface/Surface.h" 00006 #include "DataFormats/GeometrySurface/interface/BoundCylinder.h" 00007 #include "DataFormats/GeometrySurface/interface/BoundDisk.h" 00008 #include "DataFormats/GeometrySurface/interface/SimpleCylinderBounds.h" 00009 #include "DataFormats/GeometrySurface/interface/SimpleDiskBounds.h" 00010 00011 using namespace std; 00012 00013 class BoundCylinder; 00014 class BoundDisk; 00015 class Cylinder; 00016 class Disk; 00017 00018 class ECALBounds { 00019 public: 00020 static const Surface& barrelBound() {check(); return *theCylinder;} 00021 static const Surface& negativeEndcapDisk() {check(); return *theNegativeDisk;} 00022 static const Surface& positiveEndcapDisk() {check(); return *thePositiveDisk;} 00025 static float barrel_innerradius() {return 129.0f;} 00026 static float barrel_outerradius() {return 175.f;} 00027 static float barrel_halfLength() {return 270.89f;} 00028 static float endcap_innerradius() {return 31.6f;} 00029 static float endcap_outerradius() {return 171.1f;} 00030 static float endcap_innerZ() {return 314.40f;} 00031 static float endcap_outerZ() {return 388.f;} 00034 static pair<float,float> crack_absEtaIntervalA() {return pair<float,float>(0.000f,0.018f);} 00035 static pair<float,float> crack_absEtaIntervalB() {return pair<float,float>(0.423f,0.461f);} 00036 static pair<float,float> crack_absEtaIntervalC() {return pair<float,float>(0.770f,0.806f);} 00037 static pair<float,float> crack_absEtaIntervalD() {return pair<float,float>(1.127f,1.163f);} 00038 static pair<float,float> crack_absEtaIntervalE() {return pair<float,float>(1.460f,1.558f);} 00039 private: 00040 static ReferenceCountingPointer<Surface> theCylinder; 00041 static ReferenceCountingPointer<Surface> theNegativeDisk; 00042 static ReferenceCountingPointer<Surface> thePositiveDisk; 00043 static bool theInit; 00044 static void check() {if (!theInit) initialize();} 00045 static void initialize(); 00046 }; 00047 00048 #endif