ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCaloEnergyTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5/***************************************************************************
6MuonCaloEnergyTool.h - Description
7-------------------
8***************************************************************************/
9#ifndef MUONCALOENERGYTOOL_H
10#define MUONCALOENERGYTOOL_H
11
14#include "GaudiKernel/ToolHandle.h"
16#include "PathLengthUtils.h"
23
24namespace Rec {
26}
27
28namespace Trk {
31 class CaloExtension;
32} // namespace Trk
33
34namespace Rec {
35
36 class MuonCaloEnergyTool : virtual public IMuonCaloEnergyTool, public AthAlgTool {
37 public:
38 MuonCaloEnergyTool(const std::string&, const std::string&, const IInterface*);
39
40 virtual ~MuonCaloEnergyTool() = default;
41
42 virtual StatusCode initialize() override;
43
44 void calculateMuonEnergies(const Trk::Track* trk, double deltaE, double meanIoni, double sigmaIoni, double& E, double& sigma,
45 double& E_FSR, double& E_expected, double& E_em_meas, double& E_em_exp, double& E_tile_meas,
46 double& E_tile_exp, double& E_HEC_meas, double& E_HEC_exp, double& E_dead_exp,
47 std::vector<Identifier>* crossedCells = 0, std::vector<double>* sigmaNoise_cell = 0,
48 std::vector<double>* E_exp_cell = 0) const override;
49
50 private:
51 ToolHandle<Trk::IParticleCaloExtensionTool> m_caloExtensionTool {this, "ParticleCaloExtensionTool", "", "Tool to make the step-wise extrapolation"};
52 ToolHandle<Rec::IParticleCaloCellAssociationTool> m_caloCellAssociationTool {this, "ParticleCaloCellAssociationTool", "", "Tool to make the cell association"};
53 ToolHandle<Trk::ITrackParticleCreatorTool> m_particleCreator {this,"TrackParticleCreator", "", "The CB Particle Creator Tool"};
54
55 SG::ReadCondHandleKey<CaloNoise> m_caloNoiseCDOKey{this, "CaloNoiseKey", "totalNoise", "SG Key of CaloNoise data object"};
56
57 // DATA MEMBERS
58 Gaudi::Property<double> m_sigmasAboveNoise {this, "SigmasAboveNoise", 4.0 };
59 Gaudi::Property<double> m_emEtCut {this, "EmEtCut", 2.5* Gaudi::Units::GeV };
60 Gaudi::Property<double> m_emF1Cut {this, "EmF1Cut", 0.15 };
61
62 static constexpr double m_emipEM {0.42};
63 static constexpr double m_emipTile {0.86};
64 static constexpr double m_emipHEC {0.65};
65
66 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_indetTrackParticleLocation{this, "TrackParticleLocation", "InDetTrackParticles",
67 "ID track particles"};
69 "MuonSpectrometerTrackParticles", "MS track particles"};
70
71 // PRIVATE METHODS
72 double thresholdCorrection(double E_observed, double E_expected, double sigma_Noise) const;
73 static double etaCorr(double eta) ;
74 };
75
76} // namespace Rec
77
78#endif
Scalar eta() const
pseudorapidity method
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Interface for extending Particles with calo cells.
Interface for extending Particles with calo cells.
static double etaCorr(double eta)
virtual StatusCode initialize() override
Gaudi::Property< double > m_sigmasAboveNoise
static constexpr double m_emipEM
static constexpr double m_emipHEC
ToolHandle< Trk::ITrackParticleCreatorTool > m_particleCreator
ToolHandle< Rec::IParticleCaloCellAssociationTool > m_caloCellAssociationTool
static constexpr double m_emipTile
double thresholdCorrection(double E_observed, double E_expected, double sigma_Noise) const
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_muonTrackParticleLocation
ToolHandle< Trk::IParticleCaloExtensionTool > m_caloExtensionTool
virtual ~MuonCaloEnergyTool()=default
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_indetTrackParticleLocation
SG::ReadCondHandleKey< CaloNoise > m_caloNoiseCDOKey
void calculateMuonEnergies(const Trk::Track *trk, double deltaE, double meanIoni, double sigmaIoni, double &E, double &sigma, double &E_FSR, double &E_expected, double &E_em_meas, double &E_em_exp, double &E_tile_meas, double &E_tile_exp, double &E_HEC_meas, double &E_HEC_exp, double &E_dead_exp, std::vector< Identifier > *crossedCells=0, std::vector< double > *sigmaNoise_cell=0, std::vector< double > *E_exp_cell=0) const override
Gaudi::Property< double > m_emF1Cut
Gaudi::Property< double > m_emEtCut
MuonCaloEnergyTool(const std::string &, const std::string &, const IInterface *)
Property holding a SG store/key/clid from which a ReadHandle is made.
Tracking class to hold the extrapolation through calorimeter Layers Both the caloEntryLayerIntersecti...
Interface for extending Particles with calo intersections.
Interface for constructing TrackParticles from complete tracks.
Gaudi Tools.
Ensure that the ATLAS eigen extensions are properly loaded.