CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/FastSimulation/CalorimeterProperties/interface/Calorimeter.h

Go to the documentation of this file.
00001 #ifndef FastSimulation_CalorimeterProperties_Calorimeter_h
00002 #define FastSimulation_CalorimeterProperties_Calorimeter_h
00003 
00004 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00005 
00006 class PreshowerLayer1Properties;
00007 class PreshowerLayer2Properties;
00008 class ECALProperties;
00009 class ECALBarrelProperties;
00010 class ECALEndcapProperties;
00011 class HCALProperties;
00012 class HCALBarrelProperties;
00013 class HCALEndcapProperties;
00014 class HCALForwardProperties;
00015 class CaloSubdetectorGeometry;
00016 class CaloTopology;
00017 class CaloSubdetectorTopology;
00018 class EcalBarrelGeometry;
00019 class EcalEndcapGeometry;
00020 class EcalPreshowerGeometry;
00021 
00022 namespace edm { 
00023   class ParameterSet;
00024 }
00025 
00026 class Calorimeter{
00027  public:
00028   Calorimeter();
00029   Calorimeter(const edm::ParameterSet& caloParameters);
00030   ~Calorimeter();
00031 
00032     // Setup the geometry
00033   void setupGeometry(const CaloGeometry& pG);
00034 
00035   // Setup the topology
00036   void setupTopology(const CaloTopology&);
00037 
00038 
00040   const ECALProperties* ecalProperties(int onEcal) const;
00041 
00043   const HCALProperties* hcalProperties(int onHcal) const;
00044 
00046   const PreshowerLayer1Properties* layer1Properties(int onLayer1) const;
00047 
00049   const PreshowerLayer2Properties* layer2Properties(int onLayer2) const;
00050 
00051   inline const EcalBarrelGeometry * getEcalBarrelGeometry() const {return EcalBarrelGeometry_;} 
00052   
00053   inline const EcalEndcapGeometry * getEcalEndcapGeometry() const {return EcalEndcapGeometry_;}
00054 
00055   inline const EcalPreshowerGeometry * getEcalPreshowerGeometry() const {return PreshowerGeometry_;}
00056 
00057   inline const CaloSubdetectorGeometry * getHcalGeometry() const {return HcalGeometry_;}
00058 
00059   const CaloSubdetectorGeometry * getEcalGeometry(int subdetn) const;
00060 
00061   const CaloSubdetectorTopology * getEcalTopology(int subdetn) const;
00062 
00063 
00064 
00065  protected:
00066 
00067   //Calorimeter properties
00068   PreshowerLayer1Properties*     myPreshowerLayer1Properties_  ;
00069   PreshowerLayer2Properties*     myPreshowerLayer2Properties_  ;
00070   ECALBarrelProperties*          myECALBarrelProperties_       ;
00071   ECALEndcapProperties*          myECALEndcapProperties_       ;
00072   HCALBarrelProperties*          myHCALBarrelProperties_       ;
00073   HCALEndcapProperties*          myHCALEndcapProperties_       ;
00074   HCALForwardProperties*         myHCALForwardProperties_      ;
00075 
00076   // The subdetectors geometry
00077   const EcalBarrelGeometry* EcalBarrelGeometry_;
00078   const EcalEndcapGeometry* EcalEndcapGeometry_;
00079   const CaloSubdetectorGeometry* HcalGeometry_;
00080   const EcalPreshowerGeometry* PreshowerGeometry_;
00081 
00082   // The ECAL topologies 
00083   const CaloSubdetectorTopology* EcalBarrelTopology_;
00084   const CaloSubdetectorTopology* EcalEndcapTopology_;
00085 
00086 };
00087 
00088 #endif