114 |
|
fTMVAReader[i]->AddVariable( "NeutralIso04OverPt", &fMVAVar_MuNeutralIso04OverPt ); |
115 |
|
} |
116 |
|
|
117 |
+ |
if (type == kIDIsoCombinedDetIso) { |
118 |
+ |
fTMVAReader[i]->AddVariable( "TkNchi2", &fMVAVar_MuTkNchi2 ); |
119 |
+ |
fTMVAReader[i]->AddVariable( "GlobalNchi2", &fMVAVar_MuGlobalNchi2 ); |
120 |
+ |
fTMVAReader[i]->AddVariable( "NValidHits", &fMVAVar_MuNValidHits ); |
121 |
+ |
fTMVAReader[i]->AddVariable( "NTrackerHits", &fMVAVar_MuNTrackerHits ); |
122 |
+ |
fTMVAReader[i]->AddVariable( "NPixelHits", &fMVAVar_MuNPixelHits ); |
123 |
+ |
fTMVAReader[i]->AddVariable( "NMatches", &fMVAVar_MuNMatches ); |
124 |
+ |
fTMVAReader[i]->AddVariable( "D0", &fMVAVar_MuD0 ); |
125 |
+ |
fTMVAReader[i]->AddVariable( "IP3d", &fMVAVar_MuIP3d ); |
126 |
+ |
fTMVAReader[i]->AddVariable( "IP3dSig", &fMVAVar_MuIP3dSig ); |
127 |
+ |
fTMVAReader[i]->AddVariable( "TrkKink", &fMVAVar_MuTrkKink ); |
128 |
+ |
fTMVAReader[i]->AddVariable( "SegmentCompatibility", &fMVAVar_MuSegmentCompatibility ); |
129 |
+ |
fTMVAReader[i]->AddVariable( "CaloCompatibility", &fMVAVar_MuCaloCompatibility ); |
130 |
+ |
fTMVAReader[i]->AddVariable( "HadEnergyOverPt", &fMVAVar_MuHadEnergyOverPt ); |
131 |
+ |
fTMVAReader[i]->AddVariable( "EmEnergyOverPt", &fMVAVar_MuEmEnergyOverPt ); |
132 |
+ |
fTMVAReader[i]->AddVariable( "HadS9EnergyOverPt", &fMVAVar_MuHadS9EnergyOverPt ); |
133 |
+ |
fTMVAReader[i]->AddVariable( "EmS9EnergyOverPt", &fMVAVar_MuEmS9EnergyOverPt ); |
134 |
+ |
fTMVAReader[i]->AddVariable( "TrkIso03OverPt", &fMVAVar_MuTrkIso03OverPt ); |
135 |
+ |
fTMVAReader[i]->AddVariable( "EMIso03OverPt", &fMVAVar_MuEMIso03OverPt ); |
136 |
+ |
fTMVAReader[i]->AddVariable( "HadIso03OverPt", &fMVAVar_MuHadIso03OverPt ); |
137 |
+ |
fTMVAReader[i]->AddVariable( "TrkIso05OverPt", &fMVAVar_MuTrkIso05OverPt ); |
138 |
+ |
fTMVAReader[i]->AddVariable( "EMIso05OverPt", &fMVAVar_MuEMIso05OverPt ); |
139 |
+ |
fTMVAReader[i]->AddVariable( "HadIso05OverPt", &fMVAVar_MuHadIso05OverPt ); |
140 |
+ |
|
141 |
+ |
} |
142 |
+ |
|
143 |
|
if (i==0) fTMVAReader[i]->BookMVA(fMethodname , Subdet0Pt10To14p5Weights ); |
144 |
|
if (i==1) fTMVAReader[i]->BookMVA(fMethodname , Subdet1Pt10To14p5Weights ); |
145 |
|
if (i==2) fTMVAReader[i]->BookMVA(fMethodname , Subdet0Pt14p5To20Weights ); |
183 |
|
Double_t MuChargedIso03OverPt, |
184 |
|
Double_t MuNeutralIso03OverPt, |
185 |
|
Double_t MuChargedIso04OverPt, |
186 |
< |
Double_t MuNeutralIso04OverPt |
186 |
> |
Double_t MuNeutralIso04OverPt, |
187 |
> |
Bool_t printDebug |
188 |
|
) { |
189 |
|
|
190 |
|
if (!fIsInitialized) { |
239 |
|
|
240 |
|
mva = reader->EvaluateMVA( fMethodname ); |
241 |
|
|
242 |
< |
Bool_t printdebug = kFALSE; |
216 |
< |
if (printdebug == kTRUE) { |
242 |
> |
if (printDebug) { |
243 |
|
std::cout << "Debug Muon MVA: " |
244 |
|
<< MuPt << " " << MuEta << " --> MVABin " << MVABin << " : " |
245 |
|
<< fMVAVar_MuTkNchi2 << " " |
273 |
|
} |
274 |
|
|
275 |
|
|
276 |
+ |
//-------------------------------------------------------------------------------------------------- |
277 |
+ |
Double_t MuonIDMVA::MVAValue(Double_t MuPt , Double_t MuEta, |
278 |
+ |
Double_t MuTkNchi2, |
279 |
+ |
Double_t MuGlobalNchi2, |
280 |
+ |
Double_t MuNValidHits, |
281 |
+ |
Double_t MuNTrackerHits, |
282 |
+ |
Double_t MuNPixelHits, |
283 |
+ |
Double_t MuNMatches, |
284 |
+ |
Double_t MuD0, |
285 |
+ |
Double_t MuIP3d, |
286 |
+ |
Double_t MuIP3dSig, |
287 |
+ |
Double_t MuTrkKink, |
288 |
+ |
Double_t MuSegmentCompatibility, |
289 |
+ |
Double_t MuCaloCompatibility, |
290 |
+ |
Double_t MuHadEnergyOverPt, |
291 |
+ |
Double_t MuHoEnergyOverPt, |
292 |
+ |
Double_t MuEmEnergyOverPt, |
293 |
+ |
Double_t MuHadS9EnergyOverPt, |
294 |
+ |
Double_t MuHoS9EnergyOverPt, |
295 |
+ |
Double_t MuEmS9EnergyOverPt, |
296 |
+ |
Double_t MuTrkIso03OverPt, |
297 |
+ |
Double_t MuEMIso03OverPt, |
298 |
+ |
Double_t MuHadIso03OverPt, |
299 |
+ |
Double_t MuTrkIso05OverPt, |
300 |
+ |
Double_t MuEMIso05OverPt, |
301 |
+ |
Double_t MuHadIso05OverPt, |
302 |
+ |
Bool_t printDebug |
303 |
+ |
) { |
304 |
+ |
|
305 |
+ |
if (!fIsInitialized) { |
306 |
+ |
std::cout << "Error: MuonIDMVA not properly initialized.\n"; |
307 |
+ |
return -9999; |
308 |
+ |
} |
309 |
+ |
|
310 |
+ |
Int_t subdet = 0; |
311 |
+ |
if (fabs(MuEta) < 1.479) subdet = 0; |
312 |
+ |
else subdet = 1; |
313 |
+ |
Int_t ptBin = 0; |
314 |
+ |
if (MuPt > 14.5) ptBin = 1; |
315 |
+ |
if (MuPt > 20.0) ptBin = 2; |
316 |
|
|
251 |
– |
// //-------------------------------------------------------------------------------------------------- |
252 |
– |
// Double_t MuonIDMVA::MVAValue(const Muon *ele, const Vertex *vertex) { |
317 |
|
|
318 |
< |
// if (!fIsInitialized) { |
319 |
< |
// std::cout << "Error: MuonIDMVA not properly initialized.\n"; |
320 |
< |
// return -9999; |
321 |
< |
// } |
322 |
< |
|
323 |
< |
// Int_t subdet = 0; |
324 |
< |
// if (ele->SCluster()->AbsEta() < 1.0) subdet = 0; |
325 |
< |
// else if (ele->SCluster()->AbsEta() < 1.479) subdet = 1; |
326 |
< |
// else subdet = 2; |
327 |
< |
// Int_t ptBin = 0; |
328 |
< |
// if (ele->Pt() > 20.0) ptBin = 1; |
329 |
< |
|
330 |
< |
// //set all input variables |
331 |
< |
// fMVAVar_EleSigmaIEtaIEta = ele->CoviEtaiEta() ; |
332 |
< |
// fMVAVar_EleDEtaIn = ele->DeltaEtaSuperClusterTrackAtVtx(); |
333 |
< |
// fMVAVar_EleDPhiIn = ele->DeltaPhiSuperClusterTrackAtVtx(); |
334 |
< |
// fMVAVar_EleHoverE = ele->HadronicOverEm(); |
335 |
< |
// fMVAVar_EleD0 = ele->BestTrk()->D0Corrected(*vertex); |
336 |
< |
// fMVAVar_EleDZ = ele->BestTrk()->DzCorrected(*vertex); |
337 |
< |
// fMVAVar_EleFBrem = ele->FBrem(); |
338 |
< |
// fMVAVar_EleEOverP = ele->ESuperClusterOverP(); |
339 |
< |
// fMVAVar_EleESeedClusterOverPout = ele->ESeedClusterOverPout(); |
340 |
< |
// if (!TMath::IsNaN(ele->SCluster()->Seed()->CoviPhiiPhi())) fMVAVar_EleSigmaIPhiIPhi = TMath::Sqrt(ele->SCluster()->Seed()->CoviPhiiPhi()); |
341 |
< |
// else fMVAVar_EleSigmaIPhiIPhi = ele->CoviEtaiEta(); |
342 |
< |
// fMVAVar_EleNBrem = ele->NumberOfClusters() - 1; |
343 |
< |
// fMVAVar_EleOneOverEMinusOneOverP = (1.0/(ele->SCluster()->Energy())) - 1.0 / ele->BestTrk()->P(); |
344 |
< |
// fMVAVar_EleESeedClusterOverPIn = ele->ESeedClusterOverPIn(); |
345 |
< |
// fMVAVar_EleIP3d = ele->Ip3dPV(); |
346 |
< |
// fMVAVar_EleIP3dSig = ele->Ip3dPVSignificance(); |
347 |
< |
|
348 |
< |
// Double_t mva = -9999; |
349 |
< |
// TMVA::Reader *reader = 0; |
350 |
< |
// Int_t MVABin = -1; |
351 |
< |
// if (subdet == 0 && ptBin == 0) MVABin = 0; |
352 |
< |
// if (subdet == 1 && ptBin == 0) MVABin = 1; |
353 |
< |
// if (subdet == 2 && ptBin == 0) MVABin = 2; |
354 |
< |
// if (subdet == 0 && ptBin == 1) MVABin = 3; |
355 |
< |
// if (subdet == 1 && ptBin == 1) MVABin = 4; |
292 |
< |
// if (subdet == 2 && ptBin == 1) MVABin = 5; |
293 |
< |
// assert(MVABin >= 0 && MVABin <= 5); |
294 |
< |
// reader = fTMVAReader[MVABin]; |
318 |
> |
//set all input variables |
319 |
> |
fMVAVar_MuTkNchi2 = MuTkNchi2; |
320 |
> |
fMVAVar_MuGlobalNchi2 = MuGlobalNchi2; |
321 |
> |
fMVAVar_MuNValidHits = MuNValidHits; |
322 |
> |
fMVAVar_MuNTrackerHits = MuNTrackerHits; |
323 |
> |
fMVAVar_MuNPixelHits = MuNPixelHits; |
324 |
> |
fMVAVar_MuNMatches = MuNMatches; |
325 |
> |
fMVAVar_MuD0 = MuD0; |
326 |
> |
fMVAVar_MuIP3d = MuIP3d; |
327 |
> |
fMVAVar_MuIP3dSig = MuIP3dSig; |
328 |
> |
fMVAVar_MuTrkKink = MuTrkKink; |
329 |
> |
fMVAVar_MuSegmentCompatibility = MuSegmentCompatibility; |
330 |
> |
fMVAVar_MuCaloCompatibility = MuCaloCompatibility; |
331 |
> |
fMVAVar_MuHadEnergyOverPt = MuHadEnergyOverPt; |
332 |
> |
fMVAVar_MuHoEnergyOverPt = MuHoEnergyOverPt; |
333 |
> |
fMVAVar_MuEmEnergyOverPt = MuEmEnergyOverPt; |
334 |
> |
fMVAVar_MuHadS9EnergyOverPt = MuHadS9EnergyOverPt; |
335 |
> |
fMVAVar_MuHoS9EnergyOverPt = MuHoS9EnergyOverPt; |
336 |
> |
fMVAVar_MuEmS9EnergyOverPt = MuEmS9EnergyOverPt; |
337 |
> |
fMVAVar_MuTrkIso03OverPt = MuTrkIso03OverPt; |
338 |
> |
fMVAVar_MuEMIso03OverPt = MuEMIso03OverPt; |
339 |
> |
fMVAVar_MuHadIso03OverPt = MuHadIso03OverPt; |
340 |
> |
fMVAVar_MuTrkIso05OverPt = MuTrkIso05OverPt; |
341 |
> |
fMVAVar_MuEMIso05OverPt = MuEMIso05OverPt; |
342 |
> |
fMVAVar_MuHadIso05OverPt = MuHadIso05OverPt; |
343 |
> |
|
344 |
> |
Double_t mva = -9999; |
345 |
> |
TMVA::Reader *reader = 0; |
346 |
> |
|
347 |
> |
Int_t MVABin = -1; |
348 |
> |
if (subdet == 0 && ptBin == 0) MVABin = 0; |
349 |
> |
if (subdet == 1 && ptBin == 0) MVABin = 1; |
350 |
> |
if (subdet == 0 && ptBin == 1) MVABin = 2; |
351 |
> |
if (subdet == 1 && ptBin == 1) MVABin = 3; |
352 |
> |
if (subdet == 0 && ptBin == 2) MVABin = 4; |
353 |
> |
if (subdet == 1 && ptBin == 2) MVABin = 5; |
354 |
> |
assert(MVABin >= 0 && MVABin <= 5); |
355 |
> |
reader = fTMVAReader[MVABin]; |
356 |
|
|
357 |
< |
// mva = reader->EvaluateMVA( fMethodname ); |
357 |
> |
mva = reader->EvaluateMVA( fMethodname ); |
358 |
> |
|
359 |
> |
if (printDebug) { |
360 |
> |
std::cout << "Debug Muon MVA: " |
361 |
> |
<< MuPt << " " << MuEta << " --> MVABin " << MVABin << " : " |
362 |
> |
<< fMVAVar_MuTkNchi2 << " " |
363 |
> |
<< fMVAVar_MuGlobalNchi2 << " " |
364 |
> |
<< fMVAVar_MuNValidHits << " " |
365 |
> |
<< fMVAVar_MuNTrackerHits << " " |
366 |
> |
<< fMVAVar_MuNPixelHits << " " |
367 |
> |
<< fMVAVar_MuNMatches << " " |
368 |
> |
<< fMVAVar_MuD0 << " " |
369 |
> |
<< fMVAVar_MuIP3d << " " |
370 |
> |
<< fMVAVar_MuIP3dSig << " " |
371 |
> |
<< fMVAVar_MuTrkKink << " " |
372 |
> |
<< fMVAVar_MuSegmentCompatibility << " " |
373 |
> |
<< fMVAVar_MuCaloCompatibility << " " |
374 |
> |
<< fMVAVar_MuHadEnergyOverPt << " " |
375 |
> |
<< fMVAVar_MuHoEnergyOverPt << " " |
376 |
> |
<< fMVAVar_MuEmEnergyOverPt << " " |
377 |
> |
<< fMVAVar_MuHadS9EnergyOverPt << " " |
378 |
> |
<< fMVAVar_MuHoS9EnergyOverPt << " " |
379 |
> |
<< fMVAVar_MuEmS9EnergyOverPt << " " |
380 |
> |
<< fMVAVar_MuTrkIso03OverPt << " " |
381 |
> |
<< fMVAVar_MuEMIso03OverPt << " " |
382 |
> |
<< fMVAVar_MuHadIso03OverPt << " " |
383 |
> |
<< fMVAVar_MuTrkIso05OverPt << " " |
384 |
> |
<< fMVAVar_MuEMIso05OverPt << " " |
385 |
> |
<< fMVAVar_MuHadIso05OverPt << " " |
386 |
> |
<< " === : === " |
387 |
> |
<< mva |
388 |
> |
<< std::endl; |
389 |
> |
} |
390 |
|
|
391 |
< |
// return mva; |
392 |
< |
// } |
391 |
> |
return mva; |
392 |
> |
} |
393 |
> |
|
394 |
> |
|
395 |
> |
|
396 |
> |
//-------------------------------------------------------------------------------------------------- |
397 |
> |
Double_t MuonIDMVA::MVAValue(const Muon *mu, const Vertex *vertex, MuonTools *fMuonTools, |
398 |
> |
const PFCandidateCol *PFCands, |
399 |
> |
const PileupEnergyDensityCol *PileupEnergyDensity, |
400 |
> |
Bool_t printDebug) { |
401 |
> |
|
402 |
> |
if (!fIsInitialized) { |
403 |
> |
std::cout << "Error: MuonIDMVA not properly initialized.\n"; |
404 |
> |
return -9999; |
405 |
> |
} |
406 |
> |
|
407 |
> |
const Track *muTrk=0; |
408 |
> |
if(mu->HasTrackerTrk()) { muTrk = mu->TrackerTrk(); } |
409 |
> |
else if(mu->HasStandaloneTrk()) { muTrk = mu->StandaloneTrk(); } |
410 |
> |
|
411 |
> |
Double_t muNchi2 = 0.0; |
412 |
> |
if(mu->HasGlobalTrk()) { muNchi2 = mu->GlobalTrk()->RChi2(); } |
413 |
> |
else if(mu->HasStandaloneTrk()) { muNchi2 = mu->StandaloneTrk()->RChi2(); } |
414 |
> |
else if(mu->HasTrackerTrk()) { muNchi2 = mu->TrackerTrk()->RChi2(); } |
415 |
> |
|
416 |
> |
Double_t ChargedIso03 = 0; |
417 |
> |
Double_t NeutralIso03_05Threshold = 0; |
418 |
> |
Double_t ChargedIso04 = 0; |
419 |
> |
Double_t NeutralIso04_05Threshold = 0; |
420 |
> |
ChargedIso03 = IsolationTools::PFMuonIsolation(mu, PFCands, vertex, 0.1, 99999, 0.3, 0.0, 0.0); |
421 |
> |
NeutralIso03_05Threshold = IsolationTools::PFMuonIsolation(mu, PFCands, vertex, 0.0, 0.5, 0.3, 0.0, 0.0); |
422 |
> |
ChargedIso04 = IsolationTools::PFMuonIsolation(mu, PFCands, vertex, 0.1, 99999, 0.4, 0.0, 0.0); |
423 |
> |
NeutralIso04_05Threshold = IsolationTools::PFMuonIsolation(mu, PFCands, vertex, 0.0, 0.5, 0.4, 0.0, 0.0); |
424 |
> |
|
425 |
> |
Double_t Rho = 0; |
426 |
> |
if (!(TMath::IsNaN(PileupEnergyDensity->At(0)->Rho()) || isinf(PileupEnergyDensity->At(0)->Rho()))) Rho = PileupEnergyDensity->At(0)->Rho(); |
427 |
> |
|
428 |
> |
Int_t subdet = 0; |
429 |
> |
if (fabs(muTrk->Eta()) < 1.479) subdet = 0; |
430 |
> |
else subdet = 1; |
431 |
> |
Int_t ptBin = 0; |
432 |
> |
if (muTrk->Pt() > 14.5) ptBin = 1; |
433 |
> |
if (muTrk->Pt() > 20.0) ptBin = 2; |
434 |
> |
|
435 |
> |
//set all input variables |
436 |
> |
fMVAVar_MuTkNchi2 = muTrk->RChi2(); |
437 |
> |
fMVAVar_MuGlobalNchi2 = muNchi2; |
438 |
> |
fMVAVar_MuNValidHits = mu->NValidHits(); |
439 |
> |
fMVAVar_MuNTrackerHits = muTrk->NHits(); |
440 |
> |
fMVAVar_MuNPixelHits = muTrk->NPixelHits(); |
441 |
> |
fMVAVar_MuNMatches = mu->NMatches(); |
442 |
> |
fMVAVar_MuD0 = muTrk->D0Corrected(*vertex); |
443 |
> |
fMVAVar_MuIP3d = mu->Ip3dPV(); |
444 |
> |
fMVAVar_MuIP3dSig = mu->Ip3dPVSignificance(); |
445 |
> |
fMVAVar_MuTrkKink = mu->TrkKink(); |
446 |
> |
fMVAVar_MuSegmentCompatibility = fMuonTools->GetSegmentCompatability(mu); |
447 |
> |
fMVAVar_MuCaloCompatibility = fMuonTools->GetCaloCompatability(mu, kTRUE, kTRUE); |
448 |
> |
fMVAVar_MuHadEnergyOverPt = (mu->HadEnergy() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuHadEnergy,muTrk->Eta()))/muTrk->Pt(); |
449 |
> |
fMVAVar_MuHoEnergyOverPt = (mu->HoEnergy() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuHoEnergy,muTrk->Eta()))/muTrk->Pt(); |
450 |
> |
fMVAVar_MuEmEnergyOverPt = (mu->EmEnergy() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuEmEnergy,muTrk->Eta()))/muTrk->Pt(); |
451 |
> |
fMVAVar_MuHadS9EnergyOverPt = (mu->HadS9Energy() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuHadS9Energy,muTrk->Eta()))/muTrk->Pt(); |
452 |
> |
fMVAVar_MuHoS9EnergyOverPt = (mu->HoS9Energy() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuHoS9Energy,muTrk->Eta()))/muTrk->Pt(); |
453 |
> |
fMVAVar_MuEmS9EnergyOverPt = (mu->EmS9Energy() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuEmS9Energy,muTrk->Eta()))/muTrk->Pt(); |
454 |
> |
fMVAVar_MuChargedIso03OverPt = (ChargedIso03 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuChargedIso03,muTrk->Eta()))/muTrk->Pt(); |
455 |
> |
fMVAVar_MuNeutralIso03OverPt = (NeutralIso03_05Threshold - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralIso03,muTrk->Eta()))/muTrk->Pt(); |
456 |
> |
fMVAVar_MuChargedIso04OverPt = (ChargedIso04 - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuChargedIso04,muTrk->Eta()))/muTrk->Pt(); |
457 |
> |
fMVAVar_MuNeutralIso04OverPt = (NeutralIso04_05Threshold - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuNeutralIso04,muTrk->Eta()))/muTrk->Pt(); |
458 |
> |
fMVAVar_MuTrkIso03OverPt = (mu->IsoR03SumPt() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuTrkIso03,muTrk->Eta()))/muTrk->Pt(); |
459 |
> |
fMVAVar_MuEMIso03OverPt = (mu->IsoR03EmEt() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuEMIso03,muTrk->Eta()))/muTrk->Pt(); |
460 |
> |
fMVAVar_MuHadIso03OverPt = (mu->IsoR03HadEt() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuHadIso03,muTrk->Eta()))/muTrk->Pt(); |
461 |
> |
fMVAVar_MuTrkIso05OverPt = (mu->IsoR05SumPt() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuTrkIso05,muTrk->Eta()))/muTrk->Pt(); |
462 |
> |
fMVAVar_MuEMIso05OverPt = (mu->IsoR05EmEt() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuEMIso05,muTrk->Eta()))/muTrk->Pt(); |
463 |
> |
fMVAVar_MuHadIso05OverPt = (mu->IsoR05HadEt() - Rho*MuonTools::MuonEffectiveArea(MuonTools::kMuHadIso05,muTrk->Eta()))/muTrk->Pt(); |
464 |
> |
|
465 |
> |
Double_t mva = -9999; |
466 |
> |
TMVA::Reader *reader = 0; |
467 |
> |
|
468 |
> |
Int_t MVABin = -1; |
469 |
> |
if (subdet == 0 && ptBin == 0) MVABin = 0; |
470 |
> |
if (subdet == 1 && ptBin == 0) MVABin = 1; |
471 |
> |
if (subdet == 0 && ptBin == 1) MVABin = 2; |
472 |
> |
if (subdet == 1 && ptBin == 1) MVABin = 3; |
473 |
> |
if (subdet == 0 && ptBin == 2) MVABin = 4; |
474 |
> |
if (subdet == 1 && ptBin == 2) MVABin = 5; |
475 |
> |
assert(MVABin >= 0 && MVABin <= 5); |
476 |
> |
reader = fTMVAReader[MVABin]; |
477 |
> |
|
478 |
> |
mva = reader->EvaluateMVA( fMethodname ); |
479 |
> |
|
480 |
> |
if (printDebug) { |
481 |
> |
std::cout << "Debug Muon MVA: " |
482 |
> |
<< mu->Pt() << " " << mu->Eta() << " " << mu->Phi() << " : " |
483 |
> |
<< muTrk->Pt() << " " << muTrk->Eta() << " --> MVABin " << MVABin << " : " |
484 |
> |
<< fMVAVar_MuTkNchi2 << " " |
485 |
> |
<< fMVAVar_MuGlobalNchi2 << " " |
486 |
> |
<< fMVAVar_MuNValidHits << " " |
487 |
> |
<< fMVAVar_MuNTrackerHits << " " |
488 |
> |
<< fMVAVar_MuNPixelHits << " " |
489 |
> |
<< fMVAVar_MuNMatches << " " |
490 |
> |
<< fMVAVar_MuD0 << " " |
491 |
> |
<< fMVAVar_MuIP3d << " " |
492 |
> |
<< fMVAVar_MuIP3dSig << " " |
493 |
> |
<< fMVAVar_MuTrkKink << " " |
494 |
> |
<< fMVAVar_MuSegmentCompatibility << " " |
495 |
> |
<< fMVAVar_MuCaloCompatibility << " " |
496 |
> |
<< fMVAVar_MuHadEnergyOverPt << " " |
497 |
> |
<< fMVAVar_MuHoEnergyOverPt << " " |
498 |
> |
<< fMVAVar_MuEmEnergyOverPt << " " |
499 |
> |
<< fMVAVar_MuHadS9EnergyOverPt << " " |
500 |
> |
<< fMVAVar_MuHoS9EnergyOverPt << " " |
501 |
> |
<< fMVAVar_MuEmS9EnergyOverPt << " " |
502 |
> |
<< fMVAVar_MuChargedIso03OverPt << " " |
503 |
> |
<< fMVAVar_MuNeutralIso03OverPt << " " |
504 |
> |
<< fMVAVar_MuChargedIso04OverPt << " " |
505 |
> |
<< fMVAVar_MuNeutralIso04OverPt << " " |
506 |
> |
<< fMVAVar_MuTrkIso03OverPt << " " |
507 |
> |
<< fMVAVar_MuEMIso03OverPt << " " |
508 |
> |
<< fMVAVar_MuHadIso03OverPt << " " |
509 |
> |
<< fMVAVar_MuTrkIso05OverPt << " " |
510 |
> |
<< fMVAVar_MuEMIso05OverPt << " " |
511 |
> |
<< fMVAVar_MuHadIso05OverPt << " " |
512 |
> |
<< " === : === " |
513 |
> |
<< mva |
514 |
> |
<< std::endl; |
515 |
> |
} |
516 |
> |
|
517 |
> |
return mva; |
518 |
> |
} |