Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Migration.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include <utility>
6 
7 #include "Migration.h"
8 
9 namespace Tau{
10 
11  Migration::Migration(PlotBase* pParent, const std::string& sDir, std::string sTauJetContainerName):
12  PlotBase(pParent, sDir),
13  m_migration_panTau(nullptr),
14  m_migration_panTauProto(nullptr),
15  m_migration_cellBased(nullptr),
16  m_sTauJetContainerName(std::move(sTauJetContainerName))
17  {
18  }
19 
21  {
22  }
23 
25  {
26  m_migration_panTau = Book1D("panTau_migration",m_sTauJetContainerName + " panTau migration",DECAYSIZE,0,DECAYSIZE);
27  m_migration_panTauProto = Book1D("panTauProto_migration",m_sTauJetContainerName + " panTau proto migration",DECAYSIZE,0,DECAYSIZE);
28  m_migration_cellBased = Book1D("cellBased_migration",m_sTauJetContainerName + " cellBased migration",DECAYSIZE,0,DECAYSIZE);
29  m_migration_panTau->GetXaxis()->SetLabelSize(0.05);
30  m_migration_panTauProto->GetXaxis()->SetLabelSize(0.05);
31  m_migration_cellBased->GetXaxis()->SetLabelSize(0.05);
32  for(int i=1; i<= DECAYSIZE;i++){
33  m_migration_panTauProto->GetXaxis()->SetBinLabel(i,m_lable[i-1]);
34  m_migration_panTau->GetXaxis()->SetBinLabel(i,m_lable[i-1]);
35  m_migration_cellBased->GetXaxis()->SetBinLabel(i,m_lable[i-1]);
36  }
37  }
38 
39 
41  {
42  int isPanTauCandidate = 0;
43  bool foundDetail = thisTau.panTauDetail(xAOD::TauJetParameters::PanTauDetails::PanTau_isPanTauCandidate, isPanTauCandidate);
44  if ( !foundDetail || !isPanTauCandidate ) return;
45 
46  // panTau
49  if ( foundDetail ) decayModeFill(trueMode, recMode, m_migration_panTau, weight);
50 
51  // panTauProto
54  if ( foundDetail ) {
55  decayModeFill(trueMode, recMode, m_migration_panTauProto, weight);
56  }
57 
58  int cellP = thisTau.nTracks();
59 
60  // Get number of neutral pions
61  int nPi0_tau = 0;
62  const std::vector<ElementLink<xAOD::PFOContainer>>& cellBased_neutralPFO = thisTau.protoNeutralPFOLinks();
63  for(const auto& link : cellBased_neutralPFO) {
64  const xAOD::PFO* PFO = *link;
65  int myNPi0Proto = 0;
66  if ( PFO->attribute(xAOD::PFODetails::nPi0Proto, myNPi0Proto) ) {
67  nPi0_tau+=myNPi0Proto;
68  }
69  }
70  decayModeFill(trueMode, cellP, nPi0_tau, m_migration_cellBased, weight);
71  }
72 
73  void Migration::decayModeFill(int trueMode, int recMode, TH1 *histo, float weight)
74  {
76 
77  switch ( trueMode ) {
79  switch ( recMode ) {
81  histo->Fill(t10r10 + 0.5, weight);
82  break;
84  histo->Fill(t10r11 + 0.5, weight);
85  break;
87  histo->Fill(t10r1x + 0.5, weight);
88  break;
89  default:
90  histo->Fill(t1r3 + 0.5, weight);
91  break;
92  }
93  break;
95  switch ( recMode ) {
97  histo->Fill(t11r10 + 0.5, weight);
98  break;
100  histo->Fill(t11r11 + 0.5, weight);
101  break;
103  histo->Fill(t11r1x + 0.5, weight);
104  break;
105  default:
106  histo->Fill(t1r3 + 0.5, weight);
107  break;
108  }
109  break;
111  switch ( recMode ) {
113  histo->Fill(t1xr10 + 0.5, weight);
114  break;
116  histo->Fill(t1xr11 + 0.5, weight);
117  break;
119  histo->Fill(t1xr1x + 0.5, weight);
120  break;
121  default:
122  histo->Fill(t1r3 + 0.5, weight);
123  break;
124  }
125  break;
127  switch ( recMode ) {
129  histo->Fill(t30r30 + 0.5, weight);
130  break;
132  histo->Fill(t30r3x + 0.5, weight);
133  break;
134  default:
135  histo->Fill(t3r1 + 0.5, weight);
136  break;
137  }
138  break;
140  switch ( recMode ) {
142  histo->Fill(t3xr30 + 0.5, weight);
143  break;
145  histo->Fill(t3xr3x + 0.5, weight);
146  break;
147  default:
148  histo->Fill(t3r1 + 0.5, weight);
149  break;
150  }
151  break;
152  }
153  return;
154  }
155 
156  void Migration::decayModeFill(int trueMode, int recP, int recN, TH1 *histo, float weight)
157  {
159  if ( recP == 1 && recN == 0 ) {
161  }
162  if ( recP == 1 && recN == 1 ) {
164  }
165  if ( recP == 1 && recN > 1 ) {
167  }
168  if ( recP == 3 && recN == 0 ) {
170  }
171  if ( recP == 3 && recN >= 1 ){
173  }
174  this->decayModeFill(trueMode, recMode, histo, weight);
175  }
176 
177 }
xAOD::TauJetParameters::Mode_1p0n
@ Mode_1p0n
Definition: TauDefs.h:386
xAOD::TauJetParameters::PanTau_DecayMode
@ PanTau_DecayMode
Definition: TauDefs.h:360
Tau::t11r1x
@ t11r1x
Definition: Migration.h:24
Tau::t10r10
@ t10r10
Definition: Migration.h:16
xAOD::TauJetParameters::Mode_1p1n
@ Mode_1p1n
Definition: TauDefs.h:387
PlotBase
Definition: PlotBase.h:34
Tau::Migration::~Migration
virtual ~Migration()
Definition: Migration.cxx:20
python.copyTCTOutput.sDir
sDir
Definition: copyTCTOutput.py:60
Tau::t1xr10
@ t1xr10
Definition: Migration.h:25
xAOD::TauJet_v3::nTracks
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Definition: TauJet_v3.cxx:526
Tau::Migration::m_migration_panTau
TH1 * m_migration_panTau
Definition: Migration.h:59
Tau::Migration::m_lable
const char * m_lable[DECAYSIZE]
Definition: Migration.h:41
Tau::Migration::initializePlots
void initializePlots()
Definition: Migration.cxx:24
Tau::t3xr3x
@ t3xr3x
Definition: Migration.h:20
Tau
Definition: EfficiencyPtPlots.cxx:10
xAOD::TauJet_v3::panTauDetail
bool panTauDetail(TauJetParameters::PanTauDetails panTauDetail, int &value) const
Get and set values of pantau details variables via enum.
Definition: TauJet_v3.cxx:367
Tau::t30r30
@ t30r30
Definition: Migration.h:19
Tau::t11r11
@ t11r11
Definition: Migration.h:17
xAOD::TauJetParameters::Mode_1pXn
@ Mode_1pXn
Definition: TauDefs.h:388
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:189
PlotBase::Book1D
TH1D * 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:94
xAOD::TauJetParameters::DecayMode
DecayMode
Definition: TauDefs.h:385
Tau::t10r11
@ t10r11
Definition: Migration.h:21
Tau::Migration::m_migration_cellBased
TH1 * m_migration_cellBased
Definition: Migration.h:61
Tau::t3r1
@ t3r1
Definition: Migration.h:30
Tau::DECAYSIZE
@ DECAYSIZE
Definition: Migration.h:31
xAOD::TauJet_v3::protoNeutralPFOLinks
const PFOLinks_t & protoNeutralPFOLinks() const
lumiFormat.i
int i
Definition: lumiFormat.py:85
Tau::t30r3x
@ t30r3x
Definition: Migration.h:27
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
Tau::Migration::fill
void fill(const xAOD::TauJet &tau, xAOD::TauJetParameters::DecayMode trueMode, float weight)
Definition: Migration.cxx:40
Tau::Migration::m_sTauJetContainerName
std::string m_sTauJetContainerName
Definition: Migration.h:64
Tau::t10r1x
@ t10r1x
Definition: Migration.h:22
xAOD::TauJetParameters::Mode_3p0n
@ Mode_3p0n
Definition: TauDefs.h:389
PFO
Definition: ClusterMomentPlots.h:15
Tau::Migration::m_migration_panTauProto
TH1 * m_migration_panTauProto
Definition: Migration.h:60
Tau::t1xr11
@ t1xr11
Definition: Migration.h:26
xAOD::PFO_v1
Class describing a particle flow object.
Definition: PFO_v1.h:35
Tau::Migration::Migration
Migration(PlotBase *pParent, const std::string &sDir, std::string sTauJetContainerName)
Definition: Migration.cxx:11
Tau::t1xr1x
@ t1xr1x
Definition: Migration.h:18
xAOD::PFODetails::nPi0Proto
@ nPi0Proto
Definition: Event/xAOD/xAODPFlow/xAODPFlow/PFODefs.h:31
Tau::t1r3
@ t1r3
Definition: Migration.h:29
Migration.h
xAOD::TauJetParameters::PanTau_DecayModeProto
@ PanTau_DecayModeProto
Definition: TauDefs.h:359
Tau::t3xr30
@ t3xr30
Definition: Migration.h:28
Tau::Migration::decayModeFill
void decayModeFill(int trueMode, int recMode, TH1 *histo, float weight)
Definition: Migration.cxx:73
xAOD::TauJetParameters::Mode_3pXn
@ Mode_3pXn
Definition: TauDefs.h:390
xAOD::TauJetParameters::PanTau_isPanTauCandidate
@ PanTau_isPanTauCandidate
Definition: TauDefs.h:357
xAOD::TauJetParameters::Mode_Error
@ Mode_Error
Definition: TauDefs.h:393
Tau::t11r10
@ t11r10
Definition: Migration.h:23
plotBeamSpotCompare.histo
histo
Definition: plotBeamSpotCompare.py:415
xAOD::TauJetParameters::Mode_Other
@ Mode_Other
Definition: TauDefs.h:391