ATLAS Offline Software
MuidCaloEnergyParam.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
13 
15 #ifndef MUIDCALOENERGYTOOLS_MUIDCALOENERGYPARAM_H
16 #define MUIDCALOENERGYTOOLS_MUIDCALOENERGYPARAM_H
17 
18 //<<<<<< INCLUDES >>>>>>
19 
22 
23 //<<<<<< CLASS DECLARATIONS >>>>>>
24 
25 class CaloEnergy;
26 namespace Rec {
27 
28  class MuidCaloEnergyParam : public AthAlgTool, virtual public IMuidCaloEnergyParam {
29  public:
30  MuidCaloEnergyParam(const std::string& type, const std::string& name, const IInterface* parent);
31  ~MuidCaloEnergyParam(void); // destructor
32 
34 
35  // mean muon energy loss with asymmetric errors describing the whole distribution
36  CaloEnergy* meanParametrizedEnergy(double trackMomentum, double eta, double phi) const;
37 
38  // most probable muon energy loss with asymmetric errors describing the whole distribution
39  CaloEnergy* mopParametrizedEnergy(double trackMomentum, double eta, double phi) const;
40 
41  // most probable muon energy loss with asymmetric errors describing the peak region
42  CaloEnergy* mopPeakEnergy(double trackMomentum, double eta, double phi) const;
43 
44  // returns the Mop deposited energy with its error
45  CaloEnergy* mopDepositedEnergy(double trackMomentum, double eta, double phi) const;
46  // returns the percentage of inert material
47  double x0mapInertMaterial(double) const;
48  // returns the percentage of em calorimeter material
49  double x0mapEmMaterial(double) const;
50  // returns the percentage of hec calorimeter material
51  double x0mapHecMaterial(double) const;
52  // returns the relative depth of a compartment in subcalo
53  double caloCompartmentDepth(int, int) const;
54  // returns the fraction of the full mop deposition corresponding to the em
55  double emMopFraction(double eta) const;
56  // fraction of the full mop deposition corresponding to the em preshower + compartment #1
57  double em1MopFraction(double eta) const;
58 
59  private:
60  // private methods
61 
62  // local communication for linear eta interpolation (bins and weights)
63  struct BinsWeights {
64  int etaBin1;
65  int etaBin2;
66  double etaWeight1;
67  double etaWeight2;
68  };
69 
70  BinsWeights etaFixedBin(double) const;
71  BinsWeights etaVariableBin(double) const;
72  double meanEnergyLoss(double, double) const;
73  std::pair<double, double> meanEnergyLossError(double, double) const;
74  double mopEnergyLoss(double, double) const;
75  double mopEnergyLossError(double, double) const;
76  double symmetricMopEnergyLoss(double, double) const;
77  // returns the approx. material percentage of the ith compartment
78  static double caloCompartmentDepthTile(int) ;
79  // returns the approx. material percentage of the ith compartment
80  static double caloCompartmentDepthLArHEC(int) ;
81  // returns the approx. material percentage of the ith compartment
82  static double caloCompartmentDepthLArEM(int) ;
83 
84  // configuration
85  bool m_cosmics;
87 
88  // precomputed widths etc for eta binning and smoothing
89  double m_binWidth;
90  double m_etaOffset;
92 
93  // ============ Mean parametrization coefficients ============= //
94  double m_meanEnergyLossP0[26]{};
95  double m_meanEnergyLossP1[26]{};
96  double m_meanEnergyLossP2[26]{};
101  // ============ Mop parametrization coefficients ============= //
102  double m_mopEnergyLossP0[26]{};
103  double m_mopEnergyLossP1[26]{};
104  double m_mopEnergyLossP2[26]{};
107  // ============ Symmetric Mop parametrization coefficients ==== //
111  // ==================== fractional contribution from em calo === //
112  double m_emMopFraction[26]{};
113  // double m_em1MopFraction[26];
114  // ==================== Material map =========================== //
115  double m_etaGranularity; // Granularity in eta of material map
116  double m_dead_eta[277]{}; // eta of bin
117  double m_dead_x01[277]{}; // material in front of the e/m calorimeter
118  double m_dead_x02[277]{}; // material in front of hadronic calorimeter
119  double m_dead_x0tot[277]{}; // material in front of Muon Spectrometer
120  double m_dead_cryo0[277]{}; // Lar front cryostat (included in m_dead_x01)
121  double m_dead_cryo1[277]{}; // LarEm back cryostat
122  double m_dead_cryo2[277]{}; // LarHec back cryostat
123  double m_dead_girder[277]{}; // Tile calorimetergirder structure
124  };
125 
126 } // namespace Rec
127 
128 #endif // MUIDCALOENERGYTOOLS_MUIDCALOENERGYPARAM_H
str::trackMomentum
const std::string trackMomentum
Definition: BTagTrackIpAccessor.cxx:15
Rec::MuidCaloEnergyParam::m_dead_girder
double m_dead_girder[277]
Definition: MuidCaloEnergyParam.h:123
Rec::MuidCaloEnergyParam::m_cosmics
bool m_cosmics
Definition: MuidCaloEnergyParam.h:85
Rec::MuidCaloEnergyParam::mopEnergyLossError
double mopEnergyLossError(double, double) const
Definition: MuidCaloEnergyParam.cxx:588
Rec::MuidCaloEnergyParam::BinsWeights::etaBin2
int etaBin2
Definition: MuidCaloEnergyParam.h:65
Rec::MuidCaloEnergyParam::m_inverseWidth
double m_inverseWidth
Definition: MuidCaloEnergyParam.h:91
Rec::MuidCaloEnergyParam::x0mapEmMaterial
double x0mapEmMaterial(double) const
IMuidCaloEnergyParam interface: returns the fraction of em calorimeter inert material between InDet a...
Definition: MuidCaloEnergyParam.cxx:630
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
Rec::MuidCaloEnergyParam::m_mopEnergyLossP0
double m_mopEnergyLossP0[26]
Definition: MuidCaloEnergyParam.h:102
CaloEnergy
class extending the basic Trk::EnergyLoss to describe the measured or parameterised muon energy loss ...
Definition: CaloEnergy.h:28
Rec::MuidCaloEnergyParam::caloCompartmentDepthTile
static double caloCompartmentDepthTile(int)
Definition: MuidCaloEnergyParam.cxx:676
Rec::MuidCaloEnergyParam::em1MopFraction
double em1MopFraction(double eta) const
IMuidCaloEnergyParam interface: fraction of the full mop deposition corresponding to the em presample...
Definition: MuidCaloEnergyParam.cxx:711
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
Rec::MuidCaloEnergyParam::BinsWeights::etaBin1
int etaBin1
Definition: MuidCaloEnergyParam.h:64
Rec::MuidCaloEnergyParam::m_meanEnergyLossP1
double m_meanEnergyLossP1[26]
Definition: MuidCaloEnergyParam.h:95
Rec::MuidCaloEnergyParam::emMopFraction
double emMopFraction(double eta) const
IMuidCaloEnergyParam interface: fraction of the full mop deposition corresponding to the em.
Definition: MuidCaloEnergyParam.cxx:704
Rec::MuidCaloEnergyParam::m_mopEnergyLossErrorP1
double m_mopEnergyLossErrorP1[26]
Definition: MuidCaloEnergyParam.h:106
Rec::MuidCaloEnergyParam::etaFixedBin
BinsWeights etaFixedBin(double) const
Definition: MuidCaloEnergyParam.cxx:460
Rec::MuidCaloEnergyParam::m_dead_cryo2
double m_dead_cryo2[277]
Definition: MuidCaloEnergyParam.h:122
Rec::MuidCaloEnergyParam::m_meanEnergyLossErrorRightP0
double m_meanEnergyLossErrorRightP0[26]
Definition: MuidCaloEnergyParam.h:99
Rec::MuidCaloEnergyParam::m_meanEnergyLossErrorLeftP0
double m_meanEnergyLossErrorLeftP0[26]
Definition: MuidCaloEnergyParam.h:97
Rec::MuidCaloEnergyParam::m_etaGranularity
double m_etaGranularity
Definition: MuidCaloEnergyParam.h:115
Rec::MuidCaloEnergyParam::m_dead_x01
double m_dead_x01[277]
Definition: MuidCaloEnergyParam.h:117
Rec::IMuidCaloEnergyParam
Definition: IMuidCaloEnergyParam.h:31
Rec::MuidCaloEnergyParam::BinsWeights
Definition: MuidCaloEnergyParam.h:63
Rec::MuidCaloEnergyParam::m_binWidth
double m_binWidth
Definition: MuidCaloEnergyParam.h:89
Rec::MuidCaloEnergyParam::BinsWeights::etaWeight2
double etaWeight2
Definition: MuidCaloEnergyParam.h:67
Rec::MuidCaloEnergyParam::symmetricMopEnergyLoss
double symmetricMopEnergyLoss(double, double) const
Definition: MuidCaloEnergyParam.cxx:605
Rec::MuidCaloEnergyParam::x0mapHecMaterial
double x0mapHecMaterial(double) const
IMuidCaloEnergyParam interface: returns the fraction of hec calorimeter inert material between InDet ...
Definition: MuidCaloEnergyParam.cxx:644
Rec
Name: MuonSpContainer.h Package : offline/Reconstruction/MuonIdentification/muonEvent.
Definition: FakeTrackBuilder.h:10
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Rec::MuidCaloEnergyParam::meanEnergyLossError
std::pair< double, double > meanEnergyLossError(double, double) const
Definition: MuidCaloEnergyParam.cxx:543
AthAlgTool.h
Rec::MuidCaloEnergyParam::m_mopEnergyLossErrorP0
double m_mopEnergyLossErrorP0[26]
Definition: MuidCaloEnergyParam.h:105
Rec::MuidCaloEnergyParam
Definition: MuidCaloEnergyParam.h:28
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Rec::MuidCaloEnergyParam::m_meanEnergyLossErrorLeftP1
double m_meanEnergyLossErrorLeftP1[26]
Definition: MuidCaloEnergyParam.h:98
Rec::MuidCaloEnergyParam::m_dead_eta
double m_dead_eta[277]
Definition: MuidCaloEnergyParam.h:116
Rec::MuidCaloEnergyParam::m_smoothingFraction
double m_smoothingFraction
Definition: MuidCaloEnergyParam.h:86
Rec::MuidCaloEnergyParam::BinsWeights::etaWeight1
double etaWeight1
Definition: MuidCaloEnergyParam.h:66
Rec::MuidCaloEnergyParam::caloCompartmentDepthLArEM
static double caloCompartmentDepthLArEM(int)
Definition: MuidCaloEnergyParam.cxx:695
Rec::MuidCaloEnergyParam::initialize
StatusCode initialize()
Definition: MuidCaloEnergyParam.cxx:48
Rec::MuidCaloEnergyParam::etaVariableBin
BinsWeights etaVariableBin(double) const
Definition: MuidCaloEnergyParam.cxx:490
Rec::MuidCaloEnergyParam::MuidCaloEnergyParam
MuidCaloEnergyParam(const std::string &type, const std::string &name, const IInterface *parent)
Definition: MuidCaloEnergyParam.cxx:31
Rec::MuidCaloEnergyParam::caloCompartmentDepth
double caloCompartmentDepth(int, int) const
IMuidCaloEnergyParam interface: depth of calo compartment.
Definition: MuidCaloEnergyParam.cxx:658
Rec::MuidCaloEnergyParam::m_dead_cryo0
double m_dead_cryo0[277]
Definition: MuidCaloEnergyParam.h:120
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
IMuidCaloEnergyParam.h
Rec::MuidCaloEnergyParam::caloCompartmentDepthLArHEC
static double caloCompartmentDepthLArHEC(int)
Definition: MuidCaloEnergyParam.cxx:685
Rec::MuidCaloEnergyParam::m_dead_cryo1
double m_dead_cryo1[277]
Definition: MuidCaloEnergyParam.h:121
Rec::MuidCaloEnergyParam::mopDepositedEnergy
CaloEnergy * mopDepositedEnergy(double trackMomentum, double eta, double phi) const
IMuidCaloEnergyParam interface: to get the most probable (peak value) energy loss and error in the ca...
Definition: MuidCaloEnergyParam.cxx:434
Rec::MuidCaloEnergyParam::mopPeakEnergy
CaloEnergy * mopPeakEnergy(double trackMomentum, double eta, double phi) const
IMuidCaloEnergyParam interface: to get the most probable (peak value) energy loss in the calorimeter ...
Definition: MuidCaloEnergyParam.cxx:400
Rec::MuidCaloEnergyParam::m_mopSymmetricEnergyLossP0
double m_mopSymmetricEnergyLossP0[26]
Definition: MuidCaloEnergyParam.h:108
Rec::MuidCaloEnergyParam::m_emMopFraction
double m_emMopFraction[26]
Definition: MuidCaloEnergyParam.h:112
Rec::MuidCaloEnergyParam::x0mapInertMaterial
double x0mapInertMaterial(double) const
IMuidCaloEnergyParam interface: returns the fraction of inert material between InDet and MS.
Definition: MuidCaloEnergyParam.cxx:616
Rec::MuidCaloEnergyParam::mopParametrizedEnergy
CaloEnergy * mopParametrizedEnergy(double trackMomentum, double eta, double phi) const
IMuidCaloEnergyParam interface: to get the most probable (peak value) energy loss in the calorimeter ...
Definition: MuidCaloEnergyParam.cxx:365
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Rec::MuidCaloEnergyParam::m_meanEnergyLossErrorRightP1
double m_meanEnergyLossErrorRightP1[26]
Definition: MuidCaloEnergyParam.h:100
Rec::MuidCaloEnergyParam::m_etaOffset
double m_etaOffset
Definition: MuidCaloEnergyParam.h:90
Rec::MuidCaloEnergyParam::m_mopSymmetricEnergyLossP2
double m_mopSymmetricEnergyLossP2[26]
Definition: MuidCaloEnergyParam.h:110
Rec::MuidCaloEnergyParam::m_mopEnergyLossP1
double m_mopEnergyLossP1[26]
Definition: MuidCaloEnergyParam.h:103
Rec::MuidCaloEnergyParam::~MuidCaloEnergyParam
~MuidCaloEnergyParam(void)
Rec::MuidCaloEnergyParam::m_mopEnergyLossP2
double m_mopEnergyLossP2[26]
Definition: MuidCaloEnergyParam.h:104
Rec::MuidCaloEnergyParam::m_mopSymmetricEnergyLossP1
double m_mopSymmetricEnergyLossP1[26]
Definition: MuidCaloEnergyParam.h:109
AthAlgTool
Definition: AthAlgTool.h:26
Rec::MuidCaloEnergyParam::meanParametrizedEnergy
CaloEnergy * meanParametrizedEnergy(double trackMomentum, double eta, double phi) const
IMuidCaloEnergyParam interface: to get the mean muon energy loss in the calorimeter (with asymmetric ...
Definition: MuidCaloEnergyParam.cxx:344
Rec::MuidCaloEnergyParam::mopEnergyLoss
double mopEnergyLoss(double, double) const
Definition: MuidCaloEnergyParam.cxx:557
Rec::MuidCaloEnergyParam::m_meanEnergyLossP2
double m_meanEnergyLossP2[26]
Definition: MuidCaloEnergyParam.h:96
Rec::MuidCaloEnergyParam::m_dead_x02
double m_dead_x02[277]
Definition: MuidCaloEnergyParam.h:118
Rec::MuidCaloEnergyParam::m_dead_x0tot
double m_dead_x0tot[277]
Definition: MuidCaloEnergyParam.h:119
Rec::MuidCaloEnergyParam::m_meanEnergyLossP0
double m_meanEnergyLossP0[26]
Definition: MuidCaloEnergyParam.h:94
Rec::MuidCaloEnergyParam::meanEnergyLoss
double meanEnergyLoss(double, double) const
Definition: MuidCaloEnergyParam.cxx:513