Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:13

0001 #ifndef FastSimulation_CalorimeterProperties_Calorimeter_h
0002 #define FastSimulation_CalorimeterProperties_Calorimeter_h
0003 
0004 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0005 
0006 class PreshowerLayer1Properties;
0007 class PreshowerLayer2Properties;
0008 class ECALProperties;
0009 class ECALBarrelProperties;
0010 class ECALEndcapProperties;
0011 class HCALProperties;
0012 class HCALBarrelProperties;
0013 class HCALEndcapProperties;
0014 class HCALForwardProperties;
0015 class CaloSubdetectorGeometry;
0016 class CaloTopology;
0017 class CaloSubdetectorTopology;
0018 class EcalBarrelGeometry;
0019 class EcalEndcapGeometry;
0020 class EcalPreshowerGeometry;
0021 
0022 namespace edm {
0023   class ParameterSet;
0024 }
0025 
0026 class Calorimeter {
0027 public:
0028   Calorimeter();
0029   Calorimeter(const edm::ParameterSet& caloParameters);
0030   ~Calorimeter();
0031 
0032   // Setup the geometry
0033   void setupGeometry(const CaloGeometry& pG);
0034 
0035   // Setup the topology
0036   void setupTopology(const CaloTopology&);
0037 
0038   /// ECAL properties
0039   const ECALProperties* ecalProperties(int onEcal) const;
0040 
0041   /// HCAL properties
0042   const HCALProperties* hcalProperties(int onHcal) const;
0043 
0044   /// Preshower Layer1 properties
0045   const PreshowerLayer1Properties* layer1Properties(int onLayer1) const;
0046 
0047   /// Preshower Layer2 properties
0048   const PreshowerLayer2Properties* layer2Properties(int onLayer2) const;
0049 
0050   inline const EcalBarrelGeometry* getEcalBarrelGeometry() const { return EcalBarrelGeometry_; }
0051 
0052   inline const EcalEndcapGeometry* getEcalEndcapGeometry() const { return EcalEndcapGeometry_; }
0053 
0054   inline const EcalPreshowerGeometry* getEcalPreshowerGeometry() const { return PreshowerGeometry_; }
0055 
0056   inline const CaloSubdetectorGeometry* getHcalGeometry() const { return HcalGeometry_; }
0057 
0058   const CaloSubdetectorGeometry* getEcalGeometry(int subdetn) const;
0059 
0060   const CaloSubdetectorTopology* getEcalTopology(int subdetn) const;
0061 
0062 protected:
0063   //Calorimeter properties
0064   PreshowerLayer1Properties* myPreshowerLayer1Properties_;
0065   PreshowerLayer2Properties* myPreshowerLayer2Properties_;
0066   ECALBarrelProperties* myECALBarrelProperties_;
0067   ECALEndcapProperties* myECALEndcapProperties_;
0068   HCALBarrelProperties* myHCALBarrelProperties_;
0069   HCALEndcapProperties* myHCALEndcapProperties_;
0070   HCALForwardProperties* myHCALForwardProperties_;
0071 
0072   // The subdetectors geometry
0073   const EcalBarrelGeometry* EcalBarrelGeometry_;
0074   const EcalEndcapGeometry* EcalEndcapGeometry_;
0075   const CaloSubdetectorGeometry* HcalGeometry_;
0076   const EcalPreshowerGeometry* PreshowerGeometry_;
0077 
0078   // The ECAL topologies
0079   const CaloSubdetectorTopology* EcalBarrelTopology_;
0080   const CaloSubdetectorTopology* EcalEndcapTopology_;
0081 };
0082 
0083 #endif