ATLAS Offline Software
MuonIsolationPlots.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include <utility>
6 
8 
9 namespace Muon{
10 
11 MuonIsolationPlots::MuonIsolationPlots(PlotBase* pParent, const std::string& sDir):PlotBase(pParent, sDir),
12 //iso variables
13 m_oPtCone20(this,"", "ptcone20"),
14 m_oPtCone30(this,"", "ptcone30"),
15 m_oPtCone40(this,"", "ptcone40"),
16 
17 m_oTopoEtCone20(this,"", "topoetcone20"),
18 m_oTopoEtCone30(this,"", "topoetcone30"),
19 m_oTopoEtCone40(this,"", "topoetcone40"),
20 
21 m_oNEFlowIso20(this,"", "neflowisol20"),
22 m_oNEFlowIso30(this,"", "neflowisol30"),
23 m_oNEFlowIso40(this,"", "neflowisol40"),
24 
25 m_oPtVarCone20(this,"", "ptvarcone20"),
26 m_oPtVarCone30(this,"", "ptvarcone30"),
27 m_oPtVarCone40(this,"", "ptvarcone40")
28  //iso corrections
29 , m_oTopoEtCone_coreCone(this,"","topoetcone_coreCone")
30 , m_oNEFlowIso_coreCone(this,"","neflowisol_coreCone")
31 {}
32 
34 {
38 
42 
46 
50 
53 }
54 
55 
56 IsoPlots::IsoPlots(PlotBase* pParent, const std::string& sDir, std::string sConeSize):PlotBase(pParent, sDir),
57 m_sConeSize(std::move(sConeSize)), cone(nullptr), conerel(nullptr)
58 {}
59 
61 {
62  cone = Book1D(m_sConeSize, m_sConeSize + ";" + m_sConeSize + ";Entries", 60, -5., 25.);
63  conerel = Book1D(m_sConeSize + "rel", m_sConeSize + "rel;" + m_sConeSize + "rel;Entries", 40, 0., 2.);
64 }
65 
66  void IsoPlots::fill(const xAOD::Muon& muon, const xAOD::Iso::IsolationType &isoType, float weight)
67 {
68  float fIso = 0;
69  try{
70  muon.isolation(fIso, isoType);
71  }
72  catch(SG::ExcBadAuxVar&){
73  return;
74  }
75  if (fIso) fill(fIso, muon.pt(),weight);
76 }
77  void IsoPlots::fill(float fIso, float fPt,float weight)
78 {
79  cone->Fill(fIso*0.001, weight);
80  conerel->Fill(fIso/fPt, weight);
81 }
82 
83 
84 #ifndef XAOD_ANALYSIS
85 IsoCorrPlots::IsoCorrPlots(PlotBase* pParent, const std::string& sDir, std::string sCorrType):PlotBase(pParent, sDir),
86 m_sCorrType(std::move(sCorrType)), isocorr(nullptr), isocorr_relPt(nullptr), isocorr_relIsocone20(nullptr), isocorr_relIsocone30(nullptr), isocorr_relIsocone40(nullptr)
87 {}
88 
90 {
91  isocorr = Book1D(m_sCorrType, m_sCorrType + ";" + m_sCorrType + ";Entries", 60, -5., 25.);
92  isocorr_relPt = Book1D(m_sCorrType + "_relPt", m_sCorrType + "_relPt;" + m_sCorrType+ "_relPt;Entries", 40, 0., 2.);
93  isocorr_relIsocone20 = Book1D(m_sCorrType + "_relIsocone20", m_sCorrType + "_relIsocone20;" + m_sCorrType+ "_relIsocone20;Entries", 150, -25., 25.);
94  isocorr_relIsocone30 = Book1D(m_sCorrType + "_relIsocone30", m_sCorrType + "_relIsocone30;" + m_sCorrType+ "_relIsocone30;Entries", 150, -25., 25.);
95  isocorr_relIsocone40 = Book1D(m_sCorrType + "_relIsocone40", m_sCorrType + "_relIsocone40;" + m_sCorrType+ "_relIsocone40;Entries", 150, -25., 25.);
96 }
97 
98 
100  const xAOD::Iso::IsolationType &isoType_cone20,
101  const xAOD::Iso::IsolationType &isoType_cone30,
102  const xAOD::Iso::IsolationType &isoType_cone40,
103  const xAOD::Iso::IsolationFlavour& flavour,
104  const xAOD::Iso::IsolationCaloCorrection &isoCorrType,
105  const xAOD::Iso::IsolationCorrectionParameter& isoCorrParam,
106  float weight)
107 {
108  float fIso20 = 0;
109  float fIso30 = 0;
110  float fIso40 = 0;
111  float fIsoCorr = 0;
112 
113  try{
114  muon.isolation(fIso20, isoType_cone20);
115  muon.isolation(fIso30, isoType_cone30);
116  muon.isolation(fIso40, isoType_cone40);
117  muon.isolationCaloCorrection(fIsoCorr, flavour, isoCorrType, isoCorrParam);
118  }
119  catch(SG::ExcBadAuxVar&){
120  return;
121  }
122  if (fIso20 && fIso30 && fIso40)
123  fill(fIso20, fIso30, fIso40, muon.pt(), fIsoCorr, weight);
124 }
125 
126  void IsoCorrPlots::fill(float fIso20, float fIso30, float fIso40, float fPt, float fIsoCorr,float weight)
127 {
128  isocorr->Fill(fIsoCorr*0.001,weight);
129  isocorr_relPt->Fill(fIsoCorr/fPt,weight);
130  isocorr_relIsocone20->Fill(fIsoCorr/fIso20,weight);
131  isocorr_relIsocone30->Fill(fIsoCorr/fIso30,weight);
132  isocorr_relIsocone40->Fill(fIsoCorr/fIso40,weight);
133 }
134 #endif // not XAOD_ANALYSIS
135 
136 }//namespace Muon
Muon::IsoCorrPlots::isocorr_relIsocone20
TH1 * isocorr_relIsocone20
Definition: MuonIsolationPlots.h:31
xAOD::Iso::topoetcone
@ topoetcone
Topo-cluster ET-sum.
Definition: IsolationFlavour.h:25
xAOD::Iso::ptvarcone30
@ ptvarcone30
Definition: IsolationType.h:56
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
PlotBase::Book1D
TH1F * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition: PlotBase.cxx:88
Muon::IsoPlots::conerel
TH1 * conerel
Definition: MuonIsolationPlots.h:49
xAOD::Iso::topoetcone20
@ topoetcone20
Topo-cluster ET-sum.
Definition: IsolationType.h:48
xAOD::Iso::ptvarcone20
@ ptvarcone20
Mini-Isolation http://arxiv.org/abs/1007.2221.
Definition: IsolationType.h:55
xAOD::Iso::neflowisol20
@ neflowisol20
Neutral eflow isolation.
Definition: IsolationType.h:64
PlotBase
Definition: PlotBase.h:33
xAOD::Iso::coreEnergy
@ coreEnergy
energy stored for this correction
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:93
Muon::IsoCorrPlots::m_sCorrType
std::string m_sCorrType
Definition: MuonIsolationPlots.h:27
xAOD::Iso::IsolationFlavour
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
Definition: IsolationFlavour.h:17
Muon::MuonIsolationPlots::m_oTopoEtCone30
IsoPlots m_oTopoEtCone30
Definition: MuonIsolationPlots.h:67
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
Muon::MuonIsolationPlots::m_oTopoEtCone20
IsoPlots m_oTopoEtCone20
Definition: MuonIsolationPlots.h:66
xAOD::Iso::ptcone30
@ ptcone30
Definition: IsolationType.h:41
Muon::MuonIsolationPlots::fill
void fill(const xAOD::Muon &muon, float weight=1.0)
Definition: MuonIsolationPlots.cxx:33
xAOD::Iso::neflowisol30
@ neflowisol30
Definition: IsolationType.h:65
xAOD::Iso::ptcone20
@ ptcone20
Track isolation.
Definition: IsolationType.h:40
xAOD::Iso::topoetcone30
@ topoetcone30
Definition: IsolationType.h:49
xAOD::Iso::neflowisol
@ neflowisol
neutral eflow
Definition: IsolationFlavour.h:31
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
xAOD::Iso::ptvarcone40
@ ptvarcone40
Definition: IsolationType.h:57
Muon::MuonIsolationPlots::m_oNEFlowIso_coreCone
IsoCorrPlots m_oNEFlowIso_coreCone
Definition: MuonIsolationPlots.h:80
Muon::IsoPlots::cone
TH1 * cone
Definition: MuonIsolationPlots.h:48
Muon::MuonIsolationPlots::m_oTopoEtCone_coreCone
IsoCorrPlots m_oTopoEtCone_coreCone
Definition: MuonIsolationPlots.h:79
xAOD::Iso::IsolationCorrectionParameter
IsolationCorrectionParameter
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:91
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
Muon::IsoCorrPlots::isocorr_relIsocone30
TH1 * isocorr_relIsocone30
Definition: MuonIsolationPlots.h:32
Muon::IsoCorrPlots::isocorr_relPt
TH1 * isocorr_relPt
Definition: MuonIsolationPlots.h:30
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
Muon::MuonIsolationPlots::m_oPtCone20
IsoPlots m_oPtCone20
Definition: MuonIsolationPlots.h:62
Muon::MuonIsolationPlots::m_oNEFlowIso30
IsoPlots m_oNEFlowIso30
Definition: MuonIsolationPlots.h:71
xAOD::Iso::neflowisol40
@ neflowisol40
Definition: IsolationType.h:66
Muon::IsoCorrPlots::isocorr
TH1 * isocorr
Definition: MuonIsolationPlots.h:29
SG::ExcBadAuxVar
Exception — Attempt to retrieve nonexistent aux data item.
Definition: Control/AthContainers/AthContainers/exceptions.h:59
Muon::MuonIsolationPlots::m_oPtCone40
IsoPlots m_oPtCone40
Definition: MuonIsolationPlots.h:64
Muon::IsoCorrPlots::IsoCorrPlots
IsoCorrPlots(PlotBase *pParent, const std::string &sDir, std::string sCorrType)
Definition: MuonIsolationPlots.cxx:85
xAOD::Iso::IsolationType
IsolationType
Overall enumeration for isolation types in xAOD files.
Definition: IsolationType.h:26
Muon::IsoPlots::fill
void fill(const xAOD::Muon &muon, const xAOD::Iso::IsolationType &isoType, float weight=1.0)
Definition: MuonIsolationPlots.cxx:66
Muon::IsoCorrPlots::initializePlots
void initializePlots()
Definition: MuonIsolationPlots.cxx:89
Muon::IsoCorrPlots::isocorr_relIsocone40
TH1 * isocorr_relIsocone40
Definition: MuonIsolationPlots.h:33
Muon::MuonIsolationPlots::m_oNEFlowIso40
IsoPlots m_oNEFlowIso40
Definition: MuonIsolationPlots.h:72
Muon::MuonIsolationPlots::m_oPtVarCone20
IsoPlots m_oPtVarCone20
Definition: MuonIsolationPlots.h:74
Muon::MuonIsolationPlots::m_oTopoEtCone40
IsoPlots m_oTopoEtCone40
Definition: MuonIsolationPlots.h:68
TH1::Fill
int Fill(double)
Definition: rootspy.cxx:285
MuonIsolationPlots.h
xAOD::Iso::coreCone
@ coreCone
core energy (in dR<0.1).
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:29
Muon::MuonIsolationPlots::m_oNEFlowIso20
IsoPlots m_oNEFlowIso20
Definition: MuonIsolationPlots.h:70
xAOD::Iso::ptcone40
@ ptcone40
Definition: IsolationType.h:42
xAOD::Iso::IsolationCaloCorrection
IsolationCaloCorrection
Enumeration for different ways of correcting isolation in xAOD files.
Definition: Event/xAOD/xAODPrimitives/xAODPrimitives/IsolationCorrection.h:18
Muon::MuonIsolationPlots::m_oPtCone30
IsoPlots m_oPtCone30
Definition: MuonIsolationPlots.h:63
Muon::MuonIsolationPlots::m_oPtVarCone30
IsoPlots m_oPtVarCone30
Definition: MuonIsolationPlots.h:75
Muon::MuonIsolationPlots::m_oPtVarCone40
IsoPlots m_oPtVarCone40
Definition: MuonIsolationPlots.h:76
Muon::IsoPlots::initializePlots
void initializePlots()
Definition: MuonIsolationPlots.cxx:60
Muon::IsoCorrPlots::fill
void fill(const xAOD::Muon &muon, const xAOD::Iso::IsolationType &isoType_cone20, const xAOD::Iso::IsolationType &isoType_cone30, const xAOD::Iso::IsolationType &isoType_cone40, const xAOD::Iso::IsolationFlavour &flavour, const xAOD::Iso::IsolationCaloCorrection &isoCorrType, const xAOD::Iso::IsolationCorrectionParameter &isoCorrParam, float weight=1.0)
Definition: MuonIsolationPlots.cxx:99
xAOD::Iso::topoetcone40
@ topoetcone40
Definition: IsolationType.h:50
Muon::IsoPlots::IsoPlots
IsoPlots(PlotBase *pParent, const std::string &sDir, std::string sConeSize)
Definition: MuonIsolationPlots.cxx:56
Muon::MuonIsolationPlots::MuonIsolationPlots
MuonIsolationPlots(PlotBase *pParent, const std::string &sDir)
Definition: MuonIsolationPlots.cxx:11
Muon::IsoPlots::m_sConeSize
std::string m_sConeSize
Definition: MuonIsolationPlots.h:46