6 #include "TMVA/Reader.h" 23 float SlcHit =
kNHit(sr);
24 return TrkHit / SlcHit;
34 float SlcHit =
kNHit(sr);
38 return BPFHit / SlcHit;
47 if (sr->
mc.
nnu == 0)
return -1;
48 if (sr->
mc.
nu[0].pdg > 0) { return 1; }
53 if (sr->
mc.
nnu == 0)
return -1;
54 if (sr->
mc.
nu[0].iscc) { return 1; }
59 if (sr->
mc.
nnu == 0)
return -1;
60 if (
abs(sr->
mc.
nu[0].pdg) == 14) { return 1; }
124 FHC_BPF_BDT_Per1_Vars[7 ] =
kIsNuVar (sr);
125 FHC_BPF_BDT_Per1_Vars[8 ] =
kIsCCVar (sr);
126 FHC_BPF_BDT_Per1_Vars[9 ] =
kCVNm (sr);
127 FHC_BPF_BDT_Per1_Vars[10] = -5;
128 FHC_BPF_BDT_Per1_Vars[11] =
kRemID (sr);
131 if(!fReader_FHC_BPF_BDT_Per1)
InitTMVA();
132 score = fReader_FHC_BPF_BDT_Per1->EvaluateMVA(
"BDT");
138 if(!fReader_FHC_BPF_BDT_Per1) fReader_FHC_BPF_BDT_Per1 =
new TMVA::Reader;
142 fReader_FHC_BPF_BDT_Per1 -> AddVariable(
"min(CosFwdCell+CosBakCell,KalTrkFwdCell+KalTrkBakCell)", &FHC_BPF_BDT_Per1_Vars[0 ]);
143 fReader_FHC_BPF_BDT_Per1 -> AddVariable(
"BPFCosNumi" , &FHC_BPF_BDT_Per1_Vars[1 ]);
144 fReader_FHC_BPF_BDT_Per1 -> AddVariable(
"BPFLen" , &FHC_BPF_BDT_Per1_Vars[2 ]);
145 fReader_FHC_BPF_BDT_Per1 -> AddVariable(
"max(BPFStY,BPFEndY)" , &FHC_BPF_BDT_Per1_Vars[3 ]);
146 fReader_FHC_BPF_BDT_Per1 -> AddVariable(
"cos(BPFDirY)" , &FHC_BPF_BDT_Per1_Vars[4 ]);
147 fReader_FHC_BPF_BDT_Per1 -> AddVariable(
"BPFNHit/SliceNHit" , &FHC_BPF_BDT_Per1_Vars[5 ]);
148 fReader_FHC_BPF_BDT_Per1 -> AddVariable(
"BPFPtOverP" , &FHC_BPF_BDT_Per1_Vars[6 ]);
150 fReader_FHC_BPF_BDT_Per1 -> AddSpectator(
"IsNu" , &FHC_BPF_BDT_Per1_Vars[7 ]);
151 fReader_FHC_BPF_BDT_Per1 -> AddSpectator(
"IsNuMu" , &FHC_BPF_BDT_Per1_Vars[8 ]);
152 fReader_FHC_BPF_BDT_Per1 -> AddSpectator(
"CVNMuon17" , &FHC_BPF_BDT_Per1_Vars[9 ]);
153 fReader_FHC_BPF_BDT_Per1 -> AddSpectator(
"CVNMuon18" , &FHC_BPF_BDT_Per1_Vars[10]);
154 fReader_FHC_BPF_BDT_Per1 -> AddSpectator(
"KalTrkRemID", &FHC_BPF_BDT_Per1_Vars[11]);
155 fReader_FHC_BPF_BDT_Per1 -> BookMVA(
"BDT", pidlib);
174 FHC_BPF_BDT_Per2_Vars[7 ] =
kIsNuVar (sr);
175 FHC_BPF_BDT_Per2_Vars[8 ] =
kIsCCVar (sr);
176 FHC_BPF_BDT_Per2_Vars[9 ] =
kCVNm (sr);
177 FHC_BPF_BDT_Per2_Vars[10] = -5;
178 FHC_BPF_BDT_Per2_Vars[11] =
kRemID (sr);
181 if(!fReader_FHC_BPF_BDT_Per2)
InitTMVA();
182 score = fReader_FHC_BPF_BDT_Per2->EvaluateMVA(
"BDT");
188 if(!fReader_FHC_BPF_BDT_Per2) fReader_FHC_BPF_BDT_Per2 =
new TMVA::Reader;
192 fReader_FHC_BPF_BDT_Per2 -> AddVariable(
"min(CosFwdCell+CosBakCell,KalTrkFwdCell+KalTrkBakCell)", &FHC_BPF_BDT_Per2_Vars[0 ]);
193 fReader_FHC_BPF_BDT_Per2 -> AddVariable(
"BPFCosNumi" , &FHC_BPF_BDT_Per2_Vars[1 ]);
194 fReader_FHC_BPF_BDT_Per2 -> AddVariable(
"BPFLen" , &FHC_BPF_BDT_Per2_Vars[2 ]);
195 fReader_FHC_BPF_BDT_Per2 -> AddVariable(
"max(BPFStY,BPFEndY)" , &FHC_BPF_BDT_Per2_Vars[3 ]);
196 fReader_FHC_BPF_BDT_Per2 -> AddVariable(
"cos(BPFDirY)" , &FHC_BPF_BDT_Per2_Vars[4 ]);
197 fReader_FHC_BPF_BDT_Per2 -> AddVariable(
"BPFNHit/SliceNHit" , &FHC_BPF_BDT_Per2_Vars[5 ]);
198 fReader_FHC_BPF_BDT_Per2 -> AddVariable(
"BPFPtOverP" , &FHC_BPF_BDT_Per2_Vars[6 ]);
200 fReader_FHC_BPF_BDT_Per2 -> AddSpectator(
"IsNu" , &FHC_BPF_BDT_Per2_Vars[7 ]);
201 fReader_FHC_BPF_BDT_Per2 -> AddSpectator(
"IsNuMu" , &FHC_BPF_BDT_Per2_Vars[8 ]);
202 fReader_FHC_BPF_BDT_Per2 -> AddSpectator(
"CVNMuon17" , &FHC_BPF_BDT_Per2_Vars[9 ]);
203 fReader_FHC_BPF_BDT_Per2 -> AddSpectator(
"CVNMuon18" , &FHC_BPF_BDT_Per2_Vars[10]);
204 fReader_FHC_BPF_BDT_Per2 -> AddSpectator(
"KalTrkRemID", &FHC_BPF_BDT_Per2_Vars[11]);
205 fReader_FHC_BPF_BDT_Per2 -> BookMVA(
"BDT", pidlib);
224 FHC_BPF_BDT_High_Vars[7 ] =
kIsNuVar (sr);
225 FHC_BPF_BDT_High_Vars[8 ] =
kIsCCVar (sr);
226 FHC_BPF_BDT_High_Vars[9 ] =
kCVNm (sr);
227 FHC_BPF_BDT_High_Vars[10] = -5;
228 FHC_BPF_BDT_High_Vars[11] =
kRemID (sr);
231 if(!fReader_FHC_BPF_BDT_High)
InitTMVA();
232 score = fReader_FHC_BPF_BDT_High->EvaluateMVA(
"BDT");
238 if(!fReader_FHC_BPF_BDT_High) fReader_FHC_BPF_BDT_High =
new TMVA::Reader;
242 fReader_FHC_BPF_BDT_High -> AddVariable(
"min(CosFwdCell+CosBakCell,KalTrkFwdCell+KalTrkBakCell)", &FHC_BPF_BDT_High_Vars[0 ]);
243 fReader_FHC_BPF_BDT_High -> AddVariable(
"BPFCosNumi" , &FHC_BPF_BDT_High_Vars[1 ]);
244 fReader_FHC_BPF_BDT_High -> AddVariable(
"BPFLen" , &FHC_BPF_BDT_High_Vars[2 ]);
245 fReader_FHC_BPF_BDT_High -> AddVariable(
"max(BPFStY,BPFEndY)" , &FHC_BPF_BDT_High_Vars[3 ]);
246 fReader_FHC_BPF_BDT_High -> AddVariable(
"cos(BPFDirY)" , &FHC_BPF_BDT_High_Vars[4 ]);
247 fReader_FHC_BPF_BDT_High -> AddVariable(
"BPFNHit/SliceNHit" , &FHC_BPF_BDT_High_Vars[5 ]);
248 fReader_FHC_BPF_BDT_High -> AddVariable(
"BPFPtOverP" , &FHC_BPF_BDT_High_Vars[6 ]);
250 fReader_FHC_BPF_BDT_High -> AddSpectator(
"IsNu" , &FHC_BPF_BDT_High_Vars[7 ]);
251 fReader_FHC_BPF_BDT_High -> AddSpectator(
"IsNuMu" , &FHC_BPF_BDT_High_Vars[8 ]);
252 fReader_FHC_BPF_BDT_High -> AddSpectator(
"CVNMuon17" , &FHC_BPF_BDT_High_Vars[9 ]);
253 fReader_FHC_BPF_BDT_High -> AddSpectator(
"CVNMuon18" , &FHC_BPF_BDT_High_Vars[10]);
254 fReader_FHC_BPF_BDT_High -> AddSpectator(
"KalTrkRemID", &FHC_BPF_BDT_High_Vars[11]);
255 fReader_FHC_BPF_BDT_High -> BookMVA(
"BDT", pidlib);
274 RHC_BPF_BDT_High_Vars[7 ] =
kIsNuVar (sr);
275 RHC_BPF_BDT_High_Vars[8 ] =
kIsCCVar (sr);
276 RHC_BPF_BDT_High_Vars[9 ] =
kCVNm (sr);
277 RHC_BPF_BDT_High_Vars[10] = -5;
278 RHC_BPF_BDT_High_Vars[11] =
kRemID (sr);
281 if(!fReader_RHC_BPF_BDT_High)
InitTMVA();
282 score = fReader_RHC_BPF_BDT_High->EvaluateMVA(
"BDT");
288 if(!fReader_RHC_BPF_BDT_High) fReader_RHC_BPF_BDT_High =
new TMVA::Reader;
292 fReader_RHC_BPF_BDT_High -> AddVariable(
"min(CosFwdCell+CosBakCell,KalTrkFwdCell+KalTrkBakCell)", &RHC_BPF_BDT_High_Vars[0 ]);
293 fReader_RHC_BPF_BDT_High -> AddVariable(
"BPFCosNumi" , &RHC_BPF_BDT_High_Vars[1 ]);
294 fReader_RHC_BPF_BDT_High -> AddVariable(
"BPFLen" , &RHC_BPF_BDT_High_Vars[2 ]);
295 fReader_RHC_BPF_BDT_High -> AddVariable(
"max(BPFStY,BPFEndY)" , &RHC_BPF_BDT_High_Vars[3 ]);
296 fReader_RHC_BPF_BDT_High -> AddVariable(
"cos(BPFDirY)" , &RHC_BPF_BDT_High_Vars[4 ]);
297 fReader_RHC_BPF_BDT_High -> AddVariable(
"BPFNHit/SliceNHit" , &RHC_BPF_BDT_High_Vars[5 ]);
298 fReader_RHC_BPF_BDT_High -> AddVariable(
"BPFPtOverP" , &RHC_BPF_BDT_High_Vars[6 ]);
300 fReader_RHC_BPF_BDT_High -> AddSpectator(
"IsNu" , &RHC_BPF_BDT_High_Vars[7 ]);
301 fReader_RHC_BPF_BDT_High -> AddSpectator(
"IsNuMu" , &RHC_BPF_BDT_High_Vars[8 ]);
302 fReader_RHC_BPF_BDT_High -> AddSpectator(
"CVNMuon17" , &RHC_BPF_BDT_High_Vars[9 ]);
303 fReader_RHC_BPF_BDT_High -> AddSpectator(
"CVNMuon18" , &RHC_BPF_BDT_High_Vars[10]);
304 fReader_RHC_BPF_BDT_High -> AddSpectator(
"KalTrkRemID", &RHC_BPF_BDT_High_Vars[11]);
305 fReader_RHC_BPF_BDT_High -> BookMVA(
"BDT", pidlib);
323 FHC_Kal_BDT_Per1_Vars[1 ] =
kCosNumi (sr);
326 FHC_Kal_BDT_Per1_Vars[4 ] =
kcosDirY (sr);
330 FHC_Kal_BDT_Per1_Vars[7 ] =
kIsNuVar (sr);
331 FHC_Kal_BDT_Per1_Vars[8 ] =
kIsCCVar (sr);
332 FHC_Kal_BDT_Per1_Vars[9 ] =
kCVNm (sr);
333 FHC_Kal_BDT_Per1_Vars[10] = -5;
334 FHC_Kal_BDT_Per1_Vars[11] =
kRemID (sr);
337 if(!fReader_FHC_Kal_BDT_Per1)
InitTMVA();
338 score = fReader_FHC_Kal_BDT_Per1->EvaluateMVA(
"BDT");
345 if(!fReader_FHC_Kal_BDT_Per1) fReader_FHC_Kal_BDT_Per1 =
new TMVA::Reader;
349 fReader_FHC_Kal_BDT_Per1 -> AddVariable(
"min(CosFwdCell+CosBakCell,KalTrkFwdCell+KalTrkBakCell)", &FHC_Kal_BDT_Per1_Vars[0 ]);
350 fReader_FHC_Kal_BDT_Per1 -> AddVariable(
"KalTrkCosNumi" , &FHC_Kal_BDT_Per1_Vars[1 ]);
351 fReader_FHC_Kal_BDT_Per1 -> AddVariable(
"KalTrkLen" , &FHC_Kal_BDT_Per1_Vars[2 ]);
352 fReader_FHC_Kal_BDT_Per1 -> AddVariable(
"max(KalTrkStY,KalTrkEndY)" , &FHC_Kal_BDT_Per1_Vars[3 ]);
353 fReader_FHC_Kal_BDT_Per1 -> AddVariable(
"cos(KalTrkDirY)" , &FHC_Kal_BDT_Per1_Vars[4 ]);
354 fReader_FHC_Kal_BDT_Per1 -> AddVariable(
"KalTrkNHit/SliceNHit" , &FHC_Kal_BDT_Per1_Vars[5 ]);
355 fReader_FHC_Kal_BDT_Per1 -> AddVariable(
"KalTrkPtOverP" , &FHC_Kal_BDT_Per1_Vars[6 ]);
357 fReader_FHC_Kal_BDT_Per1 -> AddSpectator(
"IsNu" , &FHC_Kal_BDT_Per1_Vars[7 ]);
358 fReader_FHC_Kal_BDT_Per1 -> AddSpectator(
"IsNuMu" , &FHC_Kal_BDT_Per1_Vars[8 ]);
359 fReader_FHC_Kal_BDT_Per1 -> AddSpectator(
"CVNMuon17" , &FHC_Kal_BDT_Per1_Vars[9 ]);
360 fReader_FHC_Kal_BDT_Per1 -> AddSpectator(
"CVNMuon18" , &FHC_Kal_BDT_Per1_Vars[10]);
361 fReader_FHC_Kal_BDT_Per1 -> AddSpectator(
"KalTrkRemID", &FHC_Kal_BDT_Per1_Vars[11]);
362 fReader_FHC_Kal_BDT_Per1 -> BookMVA(
"BDT", pidlib);
374 FHC_Kal_BDT_Per2_Vars[1 ] =
kCosNumi (sr);
377 FHC_Kal_BDT_Per2_Vars[4 ] =
kcosDirY (sr);
381 FHC_Kal_BDT_Per2_Vars[7 ] =
kIsNuVar (sr);
382 FHC_Kal_BDT_Per2_Vars[8 ] =
kIsCCVar (sr);
383 FHC_Kal_BDT_Per2_Vars[9 ] =
kCVNm (sr);
384 FHC_Kal_BDT_Per2_Vars[10] = -5;
385 FHC_Kal_BDT_Per2_Vars[11] =
kRemID (sr);
388 if(!fReader_FHC_Kal_BDT_Per2)
InitTMVA();
389 score = fReader_FHC_Kal_BDT_Per2->EvaluateMVA(
"BDT");
396 if(!fReader_FHC_Kal_BDT_Per2) fReader_FHC_Kal_BDT_Per2 =
new TMVA::Reader;
400 fReader_FHC_Kal_BDT_Per2 -> AddVariable(
"min(CosFwdCell+CosBakCell,KalTrkFwdCell+KalTrkBakCell)", &FHC_Kal_BDT_Per2_Vars[0 ]);
401 fReader_FHC_Kal_BDT_Per2 -> AddVariable(
"KalTrkCosNumi" , &FHC_Kal_BDT_Per2_Vars[1 ]);
402 fReader_FHC_Kal_BDT_Per2 -> AddVariable(
"KalTrkLen" , &FHC_Kal_BDT_Per2_Vars[2 ]);
403 fReader_FHC_Kal_BDT_Per2 -> AddVariable(
"max(KalTrkStY,KalTrkEndY)" , &FHC_Kal_BDT_Per2_Vars[3 ]);
404 fReader_FHC_Kal_BDT_Per2 -> AddVariable(
"cos(KalTrkDirY)" , &FHC_Kal_BDT_Per2_Vars[4 ]);
405 fReader_FHC_Kal_BDT_Per2 -> AddVariable(
"KalTrkNHit/SliceNHit" , &FHC_Kal_BDT_Per2_Vars[5 ]);
406 fReader_FHC_Kal_BDT_Per2 -> AddVariable(
"KalTrkPtOverP" , &FHC_Kal_BDT_Per2_Vars[6 ]);
408 fReader_FHC_Kal_BDT_Per2 -> AddSpectator(
"IsNu" , &FHC_Kal_BDT_Per2_Vars[7 ]);
409 fReader_FHC_Kal_BDT_Per2 -> AddSpectator(
"IsNuMu" , &FHC_Kal_BDT_Per2_Vars[8 ]);
410 fReader_FHC_Kal_BDT_Per2 -> AddSpectator(
"CVNMuon17" , &FHC_Kal_BDT_Per2_Vars[9 ]);
411 fReader_FHC_Kal_BDT_Per2 -> AddSpectator(
"CVNMuon18" , &FHC_Kal_BDT_Per2_Vars[10]);
412 fReader_FHC_Kal_BDT_Per2 -> AddSpectator(
"KalTrkRemID", &FHC_Kal_BDT_Per2_Vars[11]);
413 fReader_FHC_Kal_BDT_Per2 -> BookMVA(
"BDT", pidlib);
425 FHC_Kal_BDT_High_Vars[1 ] =
kCosNumi (sr);
428 FHC_Kal_BDT_High_Vars[4 ] =
kcosDirY (sr);
432 FHC_Kal_BDT_High_Vars[7 ] =
kIsNuVar (sr);
433 FHC_Kal_BDT_High_Vars[8 ] =
kIsCCVar (sr);
434 FHC_Kal_BDT_High_Vars[9 ] =
kCVNm (sr);
435 FHC_Kal_BDT_High_Vars[10] = -5;
436 FHC_Kal_BDT_High_Vars[11] =
kRemID (sr);
439 if(!fReader_FHC_Kal_BDT_High)
InitTMVA();
440 score = fReader_FHC_Kal_BDT_High->EvaluateMVA(
"BDT");
446 if(!fReader_FHC_Kal_BDT_High) fReader_FHC_Kal_BDT_High =
new TMVA::Reader;
450 fReader_FHC_Kal_BDT_High -> AddVariable(
"min(CosFwdCell+CosBakCell,KalTrkFwdCell+KalTrkBakCell)", &FHC_Kal_BDT_High_Vars[0 ]);
451 fReader_FHC_Kal_BDT_High -> AddVariable(
"KalTrkCosNumi" , &FHC_Kal_BDT_High_Vars[1 ]);
452 fReader_FHC_Kal_BDT_High -> AddVariable(
"KalTrkLen" , &FHC_Kal_BDT_High_Vars[2 ]);
453 fReader_FHC_Kal_BDT_High -> AddVariable(
"max(KalTrkStY,KalTrkEndY)" , &FHC_Kal_BDT_High_Vars[3 ]);
454 fReader_FHC_Kal_BDT_High -> AddVariable(
"cos(KalTrkDirY)" , &FHC_Kal_BDT_High_Vars[4 ]);
455 fReader_FHC_Kal_BDT_High -> AddVariable(
"KalTrkNHit/SliceNHit" , &FHC_Kal_BDT_High_Vars[5 ]);
456 fReader_FHC_Kal_BDT_High -> AddVariable(
"KalTrkPtOverP" , &FHC_Kal_BDT_High_Vars[6 ]);
458 fReader_FHC_Kal_BDT_High -> AddSpectator(
"IsNu" , &FHC_Kal_BDT_High_Vars[7 ]);
459 fReader_FHC_Kal_BDT_High -> AddSpectator(
"IsNuMu" , &FHC_Kal_BDT_High_Vars[8 ]);
460 fReader_FHC_Kal_BDT_High -> AddSpectator(
"CVNMuon17" , &FHC_Kal_BDT_High_Vars[9 ]);
461 fReader_FHC_Kal_BDT_High -> AddSpectator(
"CVNMuon18" , &FHC_Kal_BDT_High_Vars[10]);
462 fReader_FHC_Kal_BDT_High -> AddSpectator(
"KalTrkRemID", &FHC_Kal_BDT_High_Vars[11]);
463 fReader_FHC_Kal_BDT_High -> BookMVA(
"BDT", pidlib);
476 RHC_Kal_BDT_High_Vars[1 ] =
kCosNumi (sr);
479 RHC_Kal_BDT_High_Vars[4 ] =
kcosDirY (sr);
483 RHC_Kal_BDT_High_Vars[7 ] =
kIsNuVar (sr);
484 RHC_Kal_BDT_High_Vars[8 ] =
kIsCCVar (sr);
485 RHC_Kal_BDT_High_Vars[9 ] =
kCVNm (sr);
486 RHC_Kal_BDT_High_Vars[10] = -5;
487 RHC_Kal_BDT_High_Vars[11] =
kRemID (sr);
490 if(!fReader_RHC_Kal_BDT_High)
InitTMVA();
491 score = fReader_RHC_Kal_BDT_High->EvaluateMVA(
"BDT");
498 if(!fReader_RHC_Kal_BDT_High) fReader_RHC_Kal_BDT_High =
new TMVA::Reader;
502 fReader_RHC_Kal_BDT_High -> AddVariable(
"min(CosFwdCell+CosBakCell,KalTrkFwdCell+KalTrkBakCell)", &RHC_Kal_BDT_High_Vars[0 ]);
503 fReader_RHC_Kal_BDT_High -> AddVariable(
"KalTrkCosNumi" , &RHC_Kal_BDT_High_Vars[1 ]);
504 fReader_RHC_Kal_BDT_High -> AddVariable(
"KalTrkLen" , &RHC_Kal_BDT_High_Vars[2 ]);
505 fReader_RHC_Kal_BDT_High -> AddVariable(
"max(KalTrkStY,KalTrkEndY)" , &RHC_Kal_BDT_High_Vars[3 ]);
506 fReader_RHC_Kal_BDT_High -> AddVariable(
"cos(KalTrkDirY)" , &RHC_Kal_BDT_High_Vars[4 ]);
507 fReader_RHC_Kal_BDT_High -> AddVariable(
"KalTrkNHit/SliceNHit" , &RHC_Kal_BDT_High_Vars[5 ]);
508 fReader_RHC_Kal_BDT_High -> AddVariable(
"KalTrkPtOverP" , &RHC_Kal_BDT_High_Vars[6 ]);
510 fReader_RHC_Kal_BDT_High -> AddSpectator(
"IsNu" , &RHC_Kal_BDT_High_Vars[7 ]);
511 fReader_RHC_Kal_BDT_High -> AddSpectator(
"IsNuMu" , &RHC_Kal_BDT_High_Vars[8 ]);
512 fReader_RHC_Kal_BDT_High -> AddSpectator(
"CVNMuon17" , &RHC_Kal_BDT_High_Vars[9 ]);
513 fReader_RHC_Kal_BDT_High -> AddSpectator(
"CVNMuon18" , &RHC_Kal_BDT_High_Vars[10]);
514 fReader_RHC_Kal_BDT_High -> AddSpectator(
"KalTrkRemID", &RHC_Kal_BDT_High_Vars[11]);
515 fReader_RHC_Kal_BDT_High -> BookMVA(
"BDT", pidlib);
const Var kIsNuVar([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-1;if(sr->mc.nu[0].pdg > 0){return 1;}else{return 0;}})
T max(const caf::Proxy< T > &a, T b)
float operator()(const caf::SRProxy *sr) const
float operator()(const caf::SRProxy *sr) const
float operator()(const caf::SRProxy *sr) const
Cuts and Vars for the 2020 FD DiF Study.
const Var kKalHitRat([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return-5.f;float TrkHit=kTrkNhits(sr);float SlcHit=kNHit(sr);return TrkHit/SlcHit;})
const Var kKalmanBackwardCell
float operator()(const caf::SRProxy *sr) const
static TMVA::Reader * fReader_FHC_BPF_BDT_Per2
caf::Proxy< size_t > ntracks
Proxy for caf::StandardRecord.
caf::Proxy< std::vector< caf::SRNeutrino > > nu
std::string EnvExpansion(const std::string &inString)
Function to expand environment variables.
float FHC_BPF_BDT_Per1_Vars[12]
const Var kTrkStartY([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return-10.0f;return sr->trk.kalman.tracks[0].start.Y()/100;})
caf::Proxy< short int > nnu
static TMVA::Reader * fReader_RHC_BPF_BDT_High
float FHC_Kal_BDT_Per2_Vars[12]
const Var kTrkLength([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return-5.f;return sr->trk.kalman.tracks[0].len/100;})
const Var kCosmicForwardCell
_Var< caf::SRProxy > Var
Representation of a variable to be retrieved from a caf::StandardRecord object.
float operator()(const caf::SRProxy *sr) const
float FHC_BPF_BDT_Per2_Vars[12]
static TMVA::Reader * fReader_RHC_Kal_BDT_High
const Var kMaxBPFStEnY([](const caf::SRProxy *sr){return std::max(kBPFBestMuonStarty(sr), kBPFBestMuonStopy(sr));})
static TMVA::Reader * fReader_FHC_Kal_BDT_Per1
const Var kIsCCVar([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-1;if(sr->mc.nu[0].iscc){return 1;}else{return 0;}})
const Var kMaxKalTrStEnY([](const caf::SRProxy *sr){return std::max(kTrkStartY(sr), kTrkEndY(sr));})
const Var kBPFBestMuonCosNumi([](const caf::SRProxy *sr){float cosnumi=-5.0;if(kBPFValidMuon(sr)==false) return-5.f; unsigned int muIdx=(unsigned int) kCVNMuonIdx(sr);if(sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.IsValid){if(sr->hdr.det==caf::kNEARDET) cosnumi=sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.dir.Dot(beamDirND);if(sr->hdr.det==caf::kFARDET) cosnumi=sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.dir.Dot(beamDirFD);}return cosnumi;})
: Cos(NuMI beam dir) w.r.t. Best BPF Muon track
caf::Proxy< caf::SRTrackBranch > trk
static TMVA::Reader * fReader_FHC_BPF_BDT_High
const Var kNumuMuonPtP([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks > 0 &&sr->trk.kalman.idxremid!=999){if(sr->hdr.det==1){double Zbeam=sr->trk.kalman.tracks[0].dir.Dot(beamDirND);double ptp=sqrt(1-Zbeam *Zbeam);return(float) ptp;}if(sr->hdr.det==2){double Zbeam=sr->trk.kalman.tracks[0].dir.Dot(beamDirFD);double ptp=sqrt(1-Zbeam *Zbeam);return(float) ptp;}}return-5.f;})
const Var kBPFBestMuonNhits([](const caf::SRProxy *sr){float Nhits=-5.0;if(kBPFValidMuon(sr)==false) return-999.f; unsigned int muIdx=(unsigned int) kCVNMuonIdx(sr);if(sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.IsValid) Nhits=sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.nhit;return Nhits;})
: Number of hits in the best muon track
const Var kKalmanForwardCell
float RHC_Kal_BDT_High_Vars[12]
const Var kBPFBestMuonStopy([](const caf::SRProxy *sr){float stopy=-999.0;if(kBPFValidMuon(sr)==false) return-999.f; unsigned int muIdx=(unsigned int) kCVNMuonIdx(sr);if(sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.IsValid) stopy=sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.stop.y/100.0;return stopy;})
: Reco End Y-position for the best muon track
const Var kBPFHitRat([](const caf::SRProxy *sr){float BPFHit=kBPFBestMuonNhits(sr);float SlcHit=kNHit(sr);if(BPFHit==-5) return BPFHit;else return BPFHit/SlcHit;})
float FHC_Kal_BDT_High_Vars[12]
const Var kBPFBestMuonStarty([](const caf::SRProxy *sr){float starty=-999.0;if(kBPFValidMuon(sr)==false) return-999.f; unsigned int muIdx=(unsigned int) kCVNMuonIdx(sr);if(sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.IsValid) starty=sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.start.y/100.0;return starty;})
: Reco Start Y-position for the best muon track
caf::Proxy< caf::SRTruthBranch > mc
const Var kIsNuMuVar([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return-1;if(abs(sr->mc.nu[0].pdg)==14){return 1;}else{return 0;}})
static TMVA::Reader * fReader_FHC_Kal_BDT_Per2
caf::Proxy< caf::SRKalman > kalman
const Var kTrkEndY([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return-10.0f;return sr->trk.kalman.tracks[0].stop.Y()/100;})
float FHC_Kal_BDT_Per1_Vars[12]
const Var kBPFBestMuonCosDirY([](const caf::SRProxy *sr){float diry=kBPFBestMuonDiry(sr);if(diry==-5) return diry;else return(float) cos(diry);})
: Cosine of Reco Start Y-direction for the best muon track
const Var kCosmicBackwardCell
static TMVA::Reader * fReader_FHC_BPF_BDT_Per1
float operator()(const caf::SRProxy *sr) const
float FHC_BPF_BDT_High_Vars[12]
const Var kcosDirY([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return-5.f;return(float) cos(kDirY(sr));})
T min(const caf::Proxy< T > &a, T b)
float operator()(const caf::SRProxy *sr) const
float operator()(const caf::SRProxy *sr) const
float RHC_BPF_BDT_High_Vars[12]
const Var kCosNumi([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks > 0 &&sr->trk.kalman.idxremid!=999){if(sr->hdr.det==1){return sr->trk.kalman.tracks[0].dir.Dot(beamDirND);}if(sr->hdr.det==2){return sr->trk.kalman.tracks[0].dir.Dot(beamDirFD);}}return-5.f;})
static TMVA::Reader * fReader_FHC_Kal_BDT_High
const Var kBPFBestMuonPtP([](const caf::SRProxy *sr){float ptp=-5.0;if(kBPFValidMuon(sr)==false) return-5.f; unsigned int muIdx=(unsigned int) kCVNMuonIdx(sr);double Zbeam=-5.0;if(sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.IsValid){if(sr->hdr.det==caf::kNEARDET) Zbeam=sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.dir.Dot(beamDirND);if(sr->hdr.det==caf::kFARDET) Zbeam=sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.dir.Dot(beamDirFD);}if(Zbeam==-5.0) ptp=-5.0;else ptp=sqrt(1-Zbeam *Zbeam);return ptp;})
: Pt/P for Best Muon track
const Var kTrkNhits([](const caf::SRProxy *sr){if(sr->trk.kalman.ntracks< 1) return 65535;return int(sr->trk.kalman.tracks[0].nhit);})
const Var kMinTrkCell([](const caf::SRProxy *sr){float CosCell=kCosmicForwardCell(sr)+kCosmicBackwardCell(sr);float KalCell=kKalmanForwardCell(sr)+kKalmanBackwardCell(sr);return std::min(CosCell, KalCell);})
const Var kBPFBestMuonTrkLen([](const caf::SRProxy *sr){float len=-1.0;if(kBPFValidMuon(sr)==false) return-5.f; unsigned int muIdx=(unsigned int) kCVNMuonIdx(sr);if(sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.IsValid) len=sr->vtx.elastic.fuzzyk.png[muIdx].bpf.muon.len/100.0;return len;})
: Reco length for the best muon track