13 #include "AthLinks/ElementLink.h"
26 declareInterface<IMuonPrintingTool>(
this);
38 return StatusCode::SUCCESS;
44 return StatusCode::SUCCESS;
48 std::ostringstream sout;
49 sout <<
" pt : " <<
tp.pt() <<
" eta : " <<
tp.eta() <<
" phi : " <<
tp.phi();
54 std::ostringstream sout;
56 sout <<
"##### Muon, pt : " <<
muon.pt() <<
" eta : " <<
muon.eta() <<
" phi : " <<
muon.phi() <<
" mass : " <<
muon.m()
57 <<
" author " <<
muon.author() <<
" type : " <<
muon.muonType() <<
" secondary authors: ";
64 sout <<
" ParamDef available:" << std::endl;
96 float msInnerMatchChi2 = 0;
97 if (
muon.parameter(msInnerMatchChi2, xAOD::Muon::msInnerMatchChi2)) sout <<
" msInnerMatchChi2 : " << msInnerMatchChi2 << std::endl;
98 int msInnerMatchDOF = 0;
99 if (
muon.parameter(msInnerMatchDOF, xAOD::Muon::msInnerMatchDOF)) sout <<
" msInnerMatchDOF : " << msInnerMatchDOF << std::endl;
100 float msOuterMatchChi2 = 0;
101 if (
muon.parameter(msOuterMatchChi2, xAOD::Muon::msOuterMatchChi2)) sout <<
" msOuterMatchChi2 : " << msOuterMatchChi2 << std::endl;
102 int msOuterMatchDOF = 0;
103 if (
muon.parameter(msOuterMatchDOF, xAOD::Muon::msOuterMatchDOF)) sout <<
" msOuterMatchDOF : " << msOuterMatchDOF << std::endl;
104 float meanDeltaADCCountsMDT = 0;
105 if (
muon.parameter(meanDeltaADCCountsMDT, xAOD::Muon::meanDeltaADCCountsMDT))
106 sout <<
" meanDeltaADCCountsMDT : " << meanDeltaADCCountsMDT << std::endl;
107 float CaloLRLikelihood = 0;
108 if (
muon.parameter(CaloLRLikelihood, xAOD::Muon::CaloLRLikelihood)) sout <<
" CaloLRLikelihood : " << CaloLRLikelihood << std::endl;
109 float CaloMuonScore = 0;
110 if (
muon.parameter(CaloLRLikelihood, xAOD::Muon::CaloMuonScore)) sout <<
" CaloMuonScore : " << CaloMuonScore << std::endl;
111 int CaloMuonIDTag = 0;
112 if (
muon.parameter(CaloMuonIDTag, xAOD::Muon::CaloMuonIDTag)) sout <<
" CaloMuonIDTag : " << CaloMuonIDTag << std::endl;
113 float FSR_CandidateEnergy = 0;
114 if (
muon.parameter(FSR_CandidateEnergy, xAOD::Muon::FSR_CandidateEnergy))
115 sout <<
" FSR_CandidateEnergy : " << FSR_CandidateEnergy << std::endl;
116 float EnergyLoss = 0;
117 if (
muon.parameter(EnergyLoss, xAOD::Muon::EnergyLoss)) sout <<
" EnergyLoss : " << EnergyLoss << std::endl;
118 float ParamEnergyLoss = 0;
119 if (
muon.parameter(ParamEnergyLoss, xAOD::Muon::ParamEnergyLoss)) sout <<
" ParamEnergyLoss : " << ParamEnergyLoss << std::endl;
120 float MeasEnergyLoss = 0;
121 if (
muon.parameter(MeasEnergyLoss, xAOD::Muon::MeasEnergyLoss)) sout <<
" MeasEnergyLoss : " << MeasEnergyLoss << std::endl;
122 float EnergyLossSigma = 0;
123 if (
muon.parameter(EnergyLossSigma, xAOD::Muon::EnergyLossSigma)) sout <<
" EnergyLossSigma : " << EnergyLossSigma << std::endl;
124 float ParamEnergyLossSigmaPlus = 0;
125 if (
muon.parameter(ParamEnergyLossSigmaPlus, xAOD::Muon::ParamEnergyLossSigmaPlus))
126 sout <<
" ParamEnergyLossSigmaPlus : " << ParamEnergyLossSigmaPlus << std::endl;
127 float ParamEnergyLossSigmaMinus = 0;
128 if (
muon.parameter(ParamEnergyLossSigmaMinus, xAOD::Muon::ParamEnergyLossSigmaMinus))
129 sout <<
" ParamEnergyLossSigmaMinus : " << ParamEnergyLossSigmaMinus << std::endl;
130 float MeasEnergyLossSigma = 0;
131 if (
muon.parameter(MeasEnergyLossSigma, xAOD::Muon::MeasEnergyLossSigma))
132 sout <<
" MeasEnergyLossSigma : " << MeasEnergyLossSigma << std::endl;
135 sout <<
" EnergyLossType : " <<
static_cast<int>(
energyLossType) << std::endl;
138 uint8_t nprecisionHoleLayers = 0;
142 uint8_t ntrigEtaHoleLayers = 0;
145 if (
muon.primaryTrackParticleLink().isValid()) {
154 sout <<
" No valid primaryTrackParticleLink for this muon" << std::endl;
158 sout <<
" Station Layers: precision " <<
static_cast<int>(nprecisionLayers) <<
" holes " <<
static_cast<int>(nprecisionHoleLayers)
159 <<
" phi " <<
static_cast<int>(nphiLayers) <<
" holes " <<
static_cast<int>(nphiHoleLayers) <<
" trigEta "
160 <<
static_cast<int>(ntrigEtaLayers) <<
" holes " <<
static_cast<int>(ntrigEtaHoleLayers) <<
" main sector "
161 <<
static_cast<int>(mainSector) <<
" secondary " <<
static_cast<int>(secondSector) << std::endl;
163 bool printMeasurements =
true;
165 if (
muon.combinedTrackParticleLink().isValid()) {
168 sout <<
" --- Combined Muon track --- " <<
print(*cbtp);
170 sout <<
" No Track link";
174 if (cbtr) sout << std::endl << m_edmPrinter->printStations(*cbtr);
175 if (cbtr && printMeasurements) sout << std::endl << m_edmPrinter->printMeasurements(*cbtr);
181 if (
muon.inDetTrackParticleLink().isValid()) {
184 sout <<
" --- InDet --- " <<
print(*idtp);
187 sout <<
" No Track link";
210 if (
muon.extrapolatedMuonSpectrometerTrackParticleLink().isValid()) {
213 sout <<
" --- Extrapolated Muon track --- " <<
print(*satp);
215 sout <<
" No Track link";
216 ATH_MSG_DEBUG(
"Extrapolated track particle without Trk::Track");
219 if (satr) sout << std::endl << m_edmPrinter->printStations(*satr);
220 if (satr && printMeasurements) sout << std::endl << m_edmPrinter->printMeasurements(*satr);
226 if (
muon.muonSpectrometerTrackParticleLink().isValid()) {
229 sout <<
" --- MuonSpectrometer track --- " <<
print(*satp);
231 sout <<
" No Track link";
235 if (satr) sout << std::endl << m_edmPrinter->printStations(*satr);
236 if (satr && printMeasurements) sout << std::endl << m_edmPrinter->printMeasurements(*satr);
259 std::ostringstream sout;
260 sout <<
"Muon Container Size :" << muons.
size() << std::endl;
262 for (
const auto *
m : muons) { sout <<
print(*
m); }