ATLAS Offline Software
Loading...
Searching...
No Matches
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
14
15#ifndef MUIDCALOENERGYTOOLS_MUIDCALOENERGYPARAM_H
16#define MUIDCALOENERGYTOOLS_MUIDCALOENERGYPARAM_H
17
18//<<<<<< INCLUDES >>>>>>
19
22
23//<<<<<< CLASS DECLARATIONS >>>>>>
24
25class CaloEnergy;
26namespace 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
33 StatusCode initialize();
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 {
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
87
88 // precomputed widths etc for eta binning and smoothing
89 double m_binWidth;
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
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
class extending the basic Trk::EnergyLoss to describe the measured or parameterised muon energy loss ...
Definition CaloEnergy.h:28
Base class for MuidCaloEnergyParam AlgTool.
static double caloCompartmentDepthTile(int)
BinsWeights etaFixedBin(double) const
CaloEnergy * mopParametrizedEnergy(double trackMomentum, double eta, double phi) const
IMuidCaloEnergyParam interface: to get the most probable (peak value) energy loss in the calorimeter ...
double caloCompartmentDepth(int, int) const
IMuidCaloEnergyParam interface: depth of calo compartment.
double mopEnergyLossError(double, double) const
double symmetricMopEnergyLoss(double, double) const
MuidCaloEnergyParam(const std::string &type, const std::string &name, const IInterface *parent)
double em1MopFraction(double eta) const
IMuidCaloEnergyParam interface: fraction of the full mop deposition corresponding to the em presample...
CaloEnergy * meanParametrizedEnergy(double trackMomentum, double eta, double phi) const
IMuidCaloEnergyParam interface: to get the mean muon energy loss in the calorimeter (with asymmetric ...
double x0mapHecMaterial(double) const
IMuidCaloEnergyParam interface: returns the fraction of hec calorimeter inert material between InDet ...
BinsWeights etaVariableBin(double) const
double emMopFraction(double eta) const
IMuidCaloEnergyParam interface: fraction of the full mop deposition corresponding to the em.
double meanEnergyLoss(double, double) const
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...
double x0mapEmMaterial(double) const
IMuidCaloEnergyParam interface: returns the fraction of em calorimeter inert material between InDet a...
static double caloCompartmentDepthLArEM(int)
CaloEnergy * mopPeakEnergy(double trackMomentum, double eta, double phi) const
IMuidCaloEnergyParam interface: to get the most probable (peak value) energy loss in the calorimeter ...
static double caloCompartmentDepthLArHEC(int)
double x0mapInertMaterial(double) const
IMuidCaloEnergyParam interface: returns the fraction of inert material between InDet and MS.
double mopEnergyLoss(double, double) const
std::pair< double, double > meanEnergyLossError(double, double) const
Gaudi Tools.