29 m_ntupleVars->addNewVar<
unsigned int> (
"RunNumber" );
30 m_ntupleVars->addNewVar<
unsigned int> (
"Event" );
31 m_ntupleVars->addNewVar<
unsigned int> (
"Time" );
32 m_ntupleVars->addNewVar<
unsigned int> (
"LumiBlock" );
33 m_ntupleVars->addNewVar<
unsigned int> (
"BCID" );
34 m_ntupleVars->addNewVar<
unsigned int> (
"LVL1ID" );
36 m_ntupleVars->addNewVar<
unsigned int> (
"NumAllTrks" );
37 m_ntupleVars->addNewVar<
unsigned int> (
"NumSelTrks" );
38 m_ntupleVars->addNewVar<
unsigned int> (
"SizeIncomp" );
40 m_ntupleVars->addNewVar<
unsigned int> (
"NumPV" );
41 m_ntupleVars->addNewVar<
unsigned int> (
"NTrksPV" );
42 m_ntupleVars->addNewVar<
unsigned int> (
"PVType" );
43 m_ntupleVars->addNewVar<
double> (
"PVX" );
44 m_ntupleVars->addNewVar<
double> (
"PVY" );
45 m_ntupleVars->addNewVar<
double> (
"PVZ" );
47 m_ntupleVars->addNewVar< vector<int> > (
"NdofTrksPV" );
48 m_ntupleVars->addNewVar< vector<double> > (
"PVZpile" );
50 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_id" );
51 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_pT" );
52 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_2dIPPV" );
53 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_ZIPPV" );
54 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_2dIP" );
55 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_ZIP" );
56 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_phi" );
57 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_eta" );
58 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_chi2" );
59 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_eta" );
60 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_BLayHits" );
61 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_PixHits" );
62 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_SCTHits" );
63 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_TRTHits" );
64 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_PixBar1" );
65 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_PixBar2" );
66 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_barcode" );
67 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_matchPr" );
68 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_2dIPErr" );
69 m_ntupleVars->addNewVar< vector<double> > (
"RecoTrk_ZIPErr" );
70 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_PixShare" );
71 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_SCTShare" );
72 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_TrkAuth" );
73 m_ntupleVars->addNewVar< vector<int> > (
"RecoTrk_TrkLowPt" );
75 m_ntupleVars->addNewVar< vector<int> > (
"SelTrk_barcode" );
77 m_ntupleVars->addNewVar< vector<int> > (
"SVTrk_id" );
78 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_pT" );
79 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_p" );
80 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_phi" );
81 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_eta" );
82 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_2dIP" );
83 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_ZIP" );
84 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_delp" );
85 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_del2dIP" );
86 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_delzIP" );
87 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_eta" );
88 m_ntupleVars->addNewVar< vector<int> > (
"SVTrk_BLayHits" );
89 m_ntupleVars->addNewVar< vector<int> > (
"SVTrk_PixHits" );
90 m_ntupleVars->addNewVar< vector<int> > (
"SVTrk_SCTHits" );
91 m_ntupleVars->addNewVar< vector<int> > (
"SVTrk_TRTHits" );
92 m_ntupleVars->addNewVar< vector<int> > (
"SVTrk_barcode" );
93 m_ntupleVars->addNewVar< vector<double> > (
"SVTrk_matchPr" );
94 m_ntupleVars->addNewVar< vector<int> > (
"SVTrk_TrkAuth" );
95 m_ntupleVars->addNewVar< vector<int> > (
"SVTrk_TrkLowPt" );
97 m_ntupleVars->addNewVar<
unsigned int > (
"All2TrkVrtNum" );
98 m_ntupleVars->addNewVar< vector<double> > (
"All2TrkVrtMass" );
99 m_ntupleVars->addNewVar< vector<double> > (
"All2TrkVrtPt" );
100 m_ntupleVars->addNewVar< vector<int> > (
"All2TrkVrtCharge" );
101 m_ntupleVars->addNewVar< vector<int> > (
"All2TrkSumBLHits" );
102 m_ntupleVars->addNewVar< vector<double> > (
"All2TrkVrtX" );
103 m_ntupleVars->addNewVar< vector<double> > (
"All2TrkVrtY" );
104 m_ntupleVars->addNewVar< vector<double> > (
"All2TrkVrtZ" );
105 m_ntupleVars->addNewVar< vector<double> > (
"All2TrkVrtChiSq" );
107 m_ntupleVars->addNewVar<
unsigned int > (
"AfFakVrtNum" );
108 m_ntupleVars->addNewVar< vector<double> > (
"AfFakVrtMass" );
109 m_ntupleVars->addNewVar< vector<double> > (
"AfFakVrtPt" );
110 m_ntupleVars->addNewVar< vector<int> > (
"AfFakVrtCharge" );
111 m_ntupleVars->addNewVar< vector<double> > (
"AfFakVrtX" );
112 m_ntupleVars->addNewVar< vector<double> > (
"AfFakVrtY" );
113 m_ntupleVars->addNewVar< vector<double> > (
"AfFakVrtZ" );
114 m_ntupleVars->addNewVar< vector<double> > (
"AfFakVrtChiSq" );
116 m_ntupleVars->addNewVar<
unsigned int > (
"NumInitSecVrt" );
117 m_ntupleVars->addNewVar<
unsigned int > (
"NumRearrSecVrt" );
118 m_ntupleVars->addNewVar<
unsigned int > (
"NumSecVrt" );
119 m_ntupleVars->addNewVar< vector<double> > (
"SecVtxX" );
120 m_ntupleVars->addNewVar< vector<double> > (
"SecVtxY" );
121 m_ntupleVars->addNewVar< vector<double> > (
"SecVtxZ" );
122 m_ntupleVars->addNewVar< vector<int> > (
"SecVtx_NumTrks" );
123 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_Mass" );
124 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_Mass_electron" );
125 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_Chi2" );
126 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_pT" );
127 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_pZ" );
128 m_ntupleVars->addNewVar< vector<int> > (
"SecVtx_Charge" );
129 m_ntupleVars->addNewVar< vector<int> > (
"SecVtx_SumBLayHits" );
130 m_ntupleVars->addNewVar< vector<int> > (
"SecVtx_AllTrksBLayHits" );
131 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_MinOpAng" );
133 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkPt" );
134 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkPhi" );
135 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkEta" );
136 m_ntupleVars->addNewVar< vector<int> > (
"SecVtx_TrkBLay" );
137 m_ntupleVars->addNewVar< vector<int> > (
"SecVtx_TrkPixExclBLay" );
138 m_ntupleVars->addNewVar< vector<int> > (
"SecVtx_TrkSCT" );
139 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_Trk2dIP" );
140 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkZIP" );
141 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkdelP" );
142 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_Trkdel2dIP" );
143 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkdelZIP" );
144 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkPtWrtSV" );
145 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkPhiWrtSV" );
146 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkEtaWrtSV" );
147 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_Trk2dIPWrtSV" );
148 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkZIPWrtSV" );
149 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkdelPWrtSV" );
150 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_Trkdel2dIPWrtSV" );
151 m_ntupleVars->addNewVar< vector<double> > (
"SecVtx_TrkdelZIPWrtSV" );
153 m_ntupleVars->addNewVar<
double> (
"Truth_SV1X" );
154 m_ntupleVars->addNewVar<
double> (
"Truth_SV1Y" );
155 m_ntupleVars->addNewVar<
double> (
"Truth_SV1Z" );
156 m_ntupleVars->addNewVar<
double> (
"Truth_PiEta" );
157 m_ntupleVars->addNewVar<
double> (
"Truth_PiPhi" );
158 m_ntupleVars->addNewVar<
double> (
"Truth_PiPt" );
159 m_ntupleVars->addNewVar<
int> (
"Truth_PiInt" );
160 m_ntupleVars->addNewVar<
int> (
"Truth_nSVHiPt" );
161 m_ntupleVars->addNewVar<
int> (
"Truth_nSVLoPt" );
162 m_ntupleVars->addNewVar<
int> (
"Truth_nSVGe1HiPt" );
164 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllVtxType" );
165 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVX" );
166 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVY" );
167 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVZ" );
168 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVTrk1Pt" );
169 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVTrk2Pt" );
170 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVTrk3Pt" );
171 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVTrk4Pt" );
172 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVTrk5Pt" );
173 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllSVNumTrks" );
174 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllSVNumReTrks" );
175 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllSVCharge" );
176 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVSumTrksPt" );
177 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVSumTrksPz" );
178 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllSVHasLifetime" );
179 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllSVStrangeBaryon" );
180 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllSVIncomingPid" );
181 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllSVNumIncident" );
182 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVPtIncident" );
183 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVPzIncident" );
184 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllSVMinOpAng" );
186 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllTrk2dIP" );
187 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllTrkZIP" );
188 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllTrkPt" );
189 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllTrkEta" );
190 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllTrkPhi" );
191 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllTrkR" );
192 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllTrkZ" );
193 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllTrkBC" );
195 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllRefitSt" );
196 m_ntupleVars->addNewVar< vector<int> > (
"Truth_AllRefitNTrk" );
197 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllRefitChi2" );
198 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllRefitSVX" );
199 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllRefitSVY" );
200 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllRefitSVZ" );
201 m_ntupleVars->addNewVar< vector<double> > (
"Truth_AllRefitMass" );
203 return StatusCode::SUCCESS;
210 m_ntupleVars->deleteNtupleVariables();
212 return StatusCode::SUCCESS;
219 m_ntupleVars->branchNtuple( m_tree_Vert );
221 return StatusCode::SUCCESS;
228 m_ntupleVars->clear();
230 return StatusCode::SUCCESS;
249 m_ntupleVars->get<
unsigned int>(
"RunNumber" ) = eventInfo->
runNumber();
250 m_ntupleVars->get<
unsigned int>(
"Event") = eventInfo->
eventNumber();
251 m_ntupleVars->get<
unsigned int>(
"Time" ) = eventInfo->
timeStamp() ;
252 m_ntupleVars->get<
unsigned int>(
"LumiBlock" ) = eventInfo->
lumiBlock() ;
253 m_ntupleVars->get<
unsigned int>(
"BCID" ) = eventInfo->
bcid();
255 ATH_MSG_DEBUG(
" > addEventInfo: event "<< m_ntupleVars->get<
unsigned int>(
"Event" ) );
257 return StatusCode::SUCCESS;
266 if( m_jp.FillNtuple ) {
269 m_ntupleVars->get< vector<int> >(
"SVTrk_PixHits" ).emplace_back( (
int) tmpT);
272 m_ntupleVars->get< vector<int> >(
"SVTrk_SCTHits" ).emplace_back( (
int) tmpT);
275 m_ntupleVars->get< vector<int> >(
"SVTrk_TRTHits" ).emplace_back( (
int) tmpT);
278 m_ntupleVars->get< vector<int> >(
"SVTrk_BLayHits" ).emplace_back( (
int) tmpT);
285 const auto& perigee = trk->perigeeParameters();
287 if( m_jp.FillNtuple ) {
291 double d0 = perigee.parameters()[
Trk::d0];
295 double ptrk = (1./
qOverP);
302 m_ntupleVars->get< vector<int> >(
"SVTrk_id" ) .emplace_back( trk_idAcc(*trk) );
304 m_ntupleVars->get< vector<double> >(
"SVTrk_pT" ) .emplace_back(
pT);
305 m_ntupleVars->get< vector<double> >(
"SVTrk_p" ) .emplace_back(ptrk);
306 m_ntupleVars->get< vector<double> >(
"SVTrk_phi" ) .emplace_back(
phi);
307 m_ntupleVars->get< vector<double> >(
"SVTrk_eta" ) .emplace_back(trketa);
308 m_ntupleVars->get< vector<double> >(
"SVTrk_2dIP" ) .emplace_back(
d0);
309 m_ntupleVars->get< vector<double> >(
"SVTrk_ZIP" ) .emplace_back(perigee.parameters()[
Trk::z0]);
311 double matchProb = -1;
320 matchProb= truthMatchProbabilityAcc( *trk );
324 m_ntupleVars->get< vector<int> >(
"SVTrk_barcode" ) .emplace_back(
barcode );
325 m_ntupleVars->get< vector<double> >(
"SVTrk_matchPr" ) .emplace_back( matchProb );
327 ATH_MSG_DEBUG(
" > fillAANT_SelectedBaseTracks: Sel Trk d0/pT/eta/match bc/pr "
334 double errp = ptrk*ptrk*errqOverP;
336 m_ntupleVars->get< vector<double> >(
"SVTrk_delp" ) .emplace_back( errp );
337 m_ntupleVars->get< vector<double> >(
"SVTrk_del2dIP" ) .emplace_back( errd0 );
338 m_ntupleVars->get< vector<double> >(
"SVTrk_delzIP" ) .emplace_back( (*(perigee.covariance()))(
Trk::z0,
Trk::z0) );
345 return StatusCode::SUCCESS;
356 for(
size_t itrk=0; itrk<
vertex->nTrackParticles(); itrk++) {
365 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkPt" ) .emplace_back( trk->
pt() );
366 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkPhi" ) .emplace_back( trk->
phi() );
367 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkEta" ) .emplace_back( trk->
eta() );
368 m_ntupleVars->get< vector<double> >(
"SecVtx_Trk2dIP" ) .emplace_back( trk->
d0() );
369 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkZIP" ) .emplace_back( trk->
z0() );
374 fillTrackSummary( trk_summary, trk );
376 m_ntupleVars->get< vector<int> >(
"SecVtx_TrkBLay" ) .emplace_back( trk_summary.
numIBLHits );
377 m_ntupleVars->get< vector<int> >(
"SecVtx_TrkPixExclBLay" ) .emplace_back( trk_summary.
numPixelHits - trk_summary.
numIBLHits );
378 m_ntupleVars->get< vector<int> >(
"SecVtx_TrkSCT" ) .emplace_back( trk_summary.
numSctHits );
388 ATH_MSG_VERBOSE(
" >> fillAANT_SecondaryVertices : filling track vars wrt. SV");
398 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkPtWrtSV" ) .emplace_back( pt_wrtSVAcc(*trk) );
399 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkEtaWrtSV" ) .emplace_back( eta_wrtSVAcc(*trk) );
400 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkPhiWrtSV" ) .emplace_back( phi_wrtSVAcc(*trk) );
401 m_ntupleVars->get< vector<double> >(
"SecVtx_Trk2dIPWrtSV" ) .emplace_back( d0_wrtSVAcc(*trk) );
402 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkZIPWrtSV" ) .emplace_back( z0_wrtSVAcc(*trk) );
403 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkdelPWrtSV" ) .emplace_back( errP_wrtSVAcc(*trk) );
404 m_ntupleVars->get< vector<double> >(
"SecVtx_Trkdel2dIPWrtSV" ) .emplace_back( errd0_wrtSVAcc(*trk) );
405 m_ntupleVars->get< vector<double> >(
"SecVtx_TrkdelZIPWrtSV" ) .emplace_back( errz0_wrtSVAcc(*trk) );
409 ATH_MSG_VERBOSE(
" >> fillAANT_SecondaryVertices : filling track vars wrt. SV (invalid values)");
424 ATH_MSG_DEBUG(
" >> fillAANT_SecondaryVertices : Track loop end. ");
426 ATH_MSG_VERBOSE(
" >> fillAANT_SecondaryVertices : filling vertex vars");
437 m_ntupleVars->get< vector<int> >(
"SecVtx_NumTrks" ) .emplace_back(
vertex->nTrackParticles() );
438 m_ntupleVars->get< vector<double> >(
"SecVtx_Chi2" ) .emplace_back(
vertex->chiSquared() );
439 m_ntupleVars->get< vector<double> >(
"SecVtxX" ) .emplace_back(
vertex->x() );
440 m_ntupleVars->get< vector<double> >(
"SecVtxY" ) .emplace_back(
vertex->y() );
441 m_ntupleVars->get< vector<double> >(
"SecVtxZ" ) .emplace_back(
vertex->z() );
454 return StatusCode::SUCCESS;