File indexing completed on 2024-04-06 12:11:13
0001 #ifndef HCALProperties_H
0002 #define HCALProperties_H
0003
0004 #include "FastSimulation/CalorimeterProperties/interface/CalorimeterProperties.h"
0005 #include <vector>
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 namespace edm {
0018 class ParameterSet;
0019 }
0020
0021 class HCALProperties : public CalorimeterProperties {
0022 public:
0023 HCALProperties(const edm::ParameterSet& fastDet);
0024
0025 ~HCALProperties() override {}
0026
0027
0028 inline double theAeff() const override { return HCALAeff_; }
0029
0030
0031 inline double theZeff() const override { return HCALZeff_; }
0032
0033
0034 inline double rho() const override { return HCALrho_; }
0035
0036
0037 inline double radLenIncm() const override { return radiationLengthIncm(); }
0038
0039
0040
0041
0042
0043 inline double radiationLengthIncm() const { return HCALradiationLengthIncm_; }
0044
0045
0046 inline double radLenIngcm2() const override { return HCALradLenIngcm2_; }
0047
0048
0049 inline double moliereRadius() const override { return HCALmoliereRadius_; }
0050
0051
0052
0053 inline double criticalEnergy() const override { return HCALcriticalEnergy_; }
0054
0055
0056 inline double interactionLength() const override { return HCALinteractionLength_; }
0057
0058
0059
0060 inline double hOverPi() const { return hOPi; }
0061
0062
0063 inline double spotFraction() const { return spotFrac; }
0064
0065 double getHcalDepth(double) const;
0066
0067 int eta2ieta(double eta) const;
0068
0069 private:
0070 double hOPi;
0071 double spotFrac;
0072
0073 protected:
0074 double HCALAeff_;
0075 double HCALZeff_;
0076 double HCALrho_;
0077 double HCALradiationLengthIncm_;
0078 double HCALradLenIngcm2_;
0079 double HCALmoliereRadius_;
0080 double HCALcriticalEnergy_;
0081 double HCALinteractionLength_;
0082 std::vector<double> etatow_;
0083 std::vector<double> hcalDepthLam_;
0084 };
0085
0086 #endif