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
0033 void setupGeometry(const CaloGeometry& pG);
0034
0035
0036 void setupTopology(const CaloTopology&);
0037
0038
0039 const ECALProperties* ecalProperties(int onEcal) const;
0040
0041
0042 const HCALProperties* hcalProperties(int onHcal) const;
0043
0044
0045 const PreshowerLayer1Properties* layer1Properties(int onLayer1) const;
0046
0047
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
0064 PreshowerLayer1Properties* myPreshowerLayer1Properties_;
0065 PreshowerLayer2Properties* myPreshowerLayer2Properties_;
0066 ECALBarrelProperties* myECALBarrelProperties_;
0067 ECALEndcapProperties* myECALEndcapProperties_;
0068 HCALBarrelProperties* myHCALBarrelProperties_;
0069 HCALEndcapProperties* myHCALEndcapProperties_;
0070 HCALForwardProperties* myHCALForwardProperties_;
0071
0072
0073 const EcalBarrelGeometry* EcalBarrelGeometry_;
0074 const EcalEndcapGeometry* EcalEndcapGeometry_;
0075 const CaloSubdetectorGeometry* HcalGeometry_;
0076 const EcalPreshowerGeometry* PreshowerGeometry_;
0077
0078
0079 const CaloSubdetectorTopology* EcalBarrelTopology_;
0080 const CaloSubdetectorTopology* EcalEndcapTopology_;
0081 };
0082
0083 #endif