/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
FastSimulation/CalorimeterProperties/interface/HCALProperties.h
86 строк
3 KB
Cms Build
Clang-Format
16 май 2019, 15:48
16 май 2019, 15:48
12a0cf0
Код
Авторство
О чём код?
#ifndef HCALProperties_H #define HCALProperties_H #include "FastSimulation/CalorimeterProperties/interface/CalorimeterProperties.h" #include <vector> /** * Functions to return atomic properties of the material * A_eff and Z_eff are computed as the A-weighted sums * of the A's and the Z's of Cu and Zn (brass) - For now * assume it is all Copper, and it'll be good enough. * * \author Patrick Janot * \date: 25-Jan-2004 */ namespace edm { class ParameterSet; } class HCALProperties : public CalorimeterProperties { public: HCALProperties(const edm::ParameterSet& fastDet); ~HCALProperties() override {} /// Effective A inline double theAeff() const override { return HCALAeff_; } /// Effective Z inline double theZeff() const override { return HCALZeff_; } /// Density in g/cm3 inline double rho() const override { return HCALrho_; } /// Radiation length in cm inline double radLenIncm() const override { return radiationLengthIncm(); } /// Radiation length in cm but static // This is needed in Calorimetry/CrystalSegment. // Patrick, if you don't like it, give me another solution // to access the ECALProperties efficiently. inline double radiationLengthIncm() const { return HCALradiationLengthIncm_; } /// Radiation length in g/cm^2 inline double radLenIngcm2() const override { return HCALradLenIngcm2_; } /// Moliere Radius in cm (=7 A/Z in g/cm^2) inline double moliereRadius() const override { return HCALmoliereRadius_; } //inline double moliereRadius() const { return 2.4; } /// Critical energy in GeV (2.66E-3*(x0*Z/A)^1.1) inline double criticalEnergy() const override { return HCALcriticalEnergy_; } ///Interaction length in cm inline double interactionLength() const override { return HCALinteractionLength_; } ///h/pi Warning ! This is a ad-hoc parameter. It has been tuned to get a good agreement on 1TeV electrons ///It might have nothing to do with reality inline double hOverPi() const { return hOPi; } /// Spot fraction wrt ECAL inline double spotFraction() const { return spotFrac; } double getHcalDepth(double) const; int eta2ieta(double eta) const; private: double hOPi; double spotFrac; protected: double HCALAeff_; double HCALZeff_; double HCALrho_; double HCALradiationLengthIncm_; double HCALradLenIngcm2_; double HCALmoliereRadius_; double HCALcriticalEnergy_; double HCALinteractionLength_; std::vector<double> etatow_; // HCAL towers eta edges std::vector<double> hcalDepthLam_; // HCAL depth for each tower ieta }; #endif