1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#ifndef FastSimulation_CalorimeterProperties_Calorimeter_h
#define FastSimulation_CalorimeterProperties_Calorimeter_h
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
class PreshowerLayer1Properties;
class PreshowerLayer2Properties;
class ECALProperties;
class ECALBarrelProperties;
class ECALEndcapProperties;
class HCALProperties;
class HCALBarrelProperties;
class HCALEndcapProperties;
class HCALForwardProperties;
class CaloSubdetectorGeometry;
class CaloTopology;
class CaloSubdetectorTopology;
class EcalBarrelGeometry;
class EcalEndcapGeometry;
class EcalPreshowerGeometry;
namespace edm {
class ParameterSet;
}
class Calorimeter {
public:
Calorimeter();
Calorimeter(const edm::ParameterSet& caloParameters);
~Calorimeter();
// Setup the geometry
void setupGeometry(const CaloGeometry& pG);
// Setup the topology
void setupTopology(const CaloTopology&);
/// ECAL properties
const ECALProperties* ecalProperties(int onEcal) const;
/// HCAL properties
const HCALProperties* hcalProperties(int onHcal) const;
/// Preshower Layer1 properties
const PreshowerLayer1Properties* layer1Properties(int onLayer1) const;
/// Preshower Layer2 properties
const PreshowerLayer2Properties* layer2Properties(int onLayer2) const;
inline const EcalBarrelGeometry* getEcalBarrelGeometry() const { return EcalBarrelGeometry_; }
inline const EcalEndcapGeometry* getEcalEndcapGeometry() const { return EcalEndcapGeometry_; }
inline const EcalPreshowerGeometry* getEcalPreshowerGeometry() const { return PreshowerGeometry_; }
inline const CaloSubdetectorGeometry* getHcalGeometry() const { return HcalGeometry_; }
const CaloSubdetectorGeometry* getEcalGeometry(int subdetn) const;
const CaloSubdetectorTopology* getEcalTopology(int subdetn) const;
protected:
//Calorimeter properties
PreshowerLayer1Properties* myPreshowerLayer1Properties_;
PreshowerLayer2Properties* myPreshowerLayer2Properties_;
ECALBarrelProperties* myECALBarrelProperties_;
ECALEndcapProperties* myECALEndcapProperties_;
HCALBarrelProperties* myHCALBarrelProperties_;
HCALEndcapProperties* myHCALEndcapProperties_;
HCALForwardProperties* myHCALForwardProperties_;
// The subdetectors geometry
const EcalBarrelGeometry* EcalBarrelGeometry_;
const EcalEndcapGeometry* EcalEndcapGeometry_;
const CaloSubdetectorGeometry* HcalGeometry_;
const EcalPreshowerGeometry* PreshowerGeometry_;
// The ECAL topologies
const CaloSubdetectorTopology* EcalBarrelTopology_;
const CaloSubdetectorTopology* EcalEndcapTopology_;
};
#endif
|