ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/src/ElectronTools.cc
(Generate patch)

Comparing UserCode/MitPhysics/Utils/src/ElectronTools.cc (file contents):
Revision 1.2 by sixie, Sat Apr 10 19:51:58 2010 UTC vs.
Revision 1.4 by ceballos, Wed May 12 19:06:22 2010 UTC

# Line 238 | Line 238 | Bool_t ElectronTools::PassConversionFilt
238      if (ConversionMatchFound == kTRUE){
239        isGoodConversion =  (conversions->At(ifc)->Prob() > 1e-6) &&
240          (conversions->At(ifc)->Lxy() > 0) &&
241 +        (conversions->At(ifc)->Lz() > 0) &&
242          (conversions->At(ifc)->Position().Rho() > 2.0);
243  
244        if (isGoodConversion == kTRUE) {
# Line 338 | Line 339 | Bool_t ElectronTools::PassSpikeRemovalFi
339      
340    return passSpikeRemovalFilter;
341   }
342 +
343 + //--------------------------------------------------------------------------------------------------
344 + Int_t ElectronTools::Classify(const Electron *ele) {
345 +  
346 +  double eta = ele->AbsEta();
347 +  double eOverP = ele->ESuperClusterOverP();
348 +  double fBrem  = ele->FBrem();
349 +
350 +  int cat = -1;
351 +  if (ele->IsEB()) {
352 +    if ((fBrem >= 0.12) && (eOverP > 0.9) && (eOverP < 1.2))
353 +      cat = 0;
354 +    else if ((ele->IsTrackerDriven()) && (!ele->IsEcalDriven()))
355 +      cat = 8;
356 +    else if (fBrem < 0.12)
357 +      cat = 1;
358 +    else if ((eta >  .445   && eta <  .45  ) ||
359 +             (eta >  .79    && eta <  .81  ) ||
360 +             (eta > 1.137   && eta < 1.157 ) ||
361 +             (eta > 1.47285 && eta < 1.4744))
362 +      cat = 6;
363 +    else
364 +      cat = 2;
365 +  } else {
366 +    if ((fBrem >= 0.2) && (eOverP > 0.82) && (eOverP < 1.22))
367 +      cat = 3;
368 +    else if ((ele->IsTrackerDriven()) && (!ele->IsEcalDriven()))
369 +      cat = 8;
370 +    else if (fBrem < 0.2)
371 +      cat = 4;
372 +    else if (eta > 1.5 && eta <  1.58)
373 +      cat = 7;
374 +    else
375 +      cat = 5;
376 +  }
377 +
378 +  return cat;
379 + }
380 +
381 + //--------------------------------------------------------------------------------------------------
382 + Int_t ElectronTools::PassTightId(const Electron *ele, const VertexCol *vertices,
383 +                                 const DecayParticleCol *conversions, const Int_t typeCuts){
384 +
385 +  Double_t scEt   = ele->SCluster()->Et();
386 +  Double_t eOverP = ele->ESuperClusterOverP();
387 +
388 +  Double_t fBrem = ele->FBrem();
389 +  Double_t hOverE = ele->HadronicOverEm();
390 +  Double_t sigmaee = ele->CoviEtaiEta();
391 +  Double_t deltaPhiIn = TMath::Abs(ele->DeltaPhiSuperClusterTrackAtVtx());
392 +  Double_t deltaEtaIn = TMath::Abs(ele->DeltaEtaSuperClusterTrackAtVtx());
393 +  Double_t eSeedOverPin = ele->ESeedClusterOverPIn();
394 +
395 +  Int_t mishits = ele->BestTrk()->NExpectedHitsInner();
396 +  Double_t tkIso   = ele->TrackIsolationDr03();
397 +  Double_t ecalIso = ele->EcalRecHitIsoDr04();
398 +  Double_t ecalIsoPed = (ele->IsEB())?std::max(0.,ecalIso-1.):ecalIso;
399 +  Double_t hcalIso  = ele->HcalTowerSumEtDr04();
400 +  Double_t hcalIso1 = ele->HcalDepth1TowerSumEtDr04();
401 +  Double_t hcalIso2 = ele->HcalDepth2TowerSumEtDr04();
402 +  Double_t e25Max = ele->E25Max();
403 +  Double_t e15 = ele->E15();
404 +  Double_t e55 = ele->E55();
405 +  Double_t e25Maxoe55 = e25Max/e55;
406 +  Double_t e15oe55 = e15/e55;
407 +
408 +  int cat = Classify(ele);
409 +  int eb;
410 +
411 +  if (ele->IsEB())
412 +    eb = 0;
413 +  else
414 +    eb = 1;
415 +
416 +  Int_t result = 0.;
417 +  
418 +  Int_t bin = 0;
419 +  if (scEt < 20.)
420 +    bin = 2;
421 +  else if (scEt > 30.)
422 +    bin = 0;
423 +  else
424 +    bin = 1;
425 +
426 +  if (fBrem > 0)
427 +    eSeedOverPin = eSeedOverPin + fBrem;
428 +
429 +  if(typeCuts == 3 || typeCuts == 4){
430 +  // Loose robust cuts
431 +    Double_t robustlooseEleIDCuts[52] = {
432 +       0.05,  0.0103,  0.8, 0.00688, -1, -1, 7.33, 4.68, 9999., 9999., 9999.,9999., 9999.,9999., 9999., 9999.,9999., 9999., 0.000, -9999., 9999., 9999., 9999, -1, 0, 0,
433 +       0.0389, 0.0307, 0.7, 0.00944, -1, -1, 7.76, 3.09,  2.23, 9999., 9999.,9999., 9999.,9999., 9999., 9999.,9999., 9999., 0.000, -9999., 9999., 9999., 9999, -1, 0, 0
434 +    };
435 +  // Tight robust cuts
436 +    Double_t robusttightEleIDCuts[52] = {
437 +        0.0201, 0.0102, 0.0211, 0.00606, -1, -1, 2.34, 3.24, 4.51, 9999., 9999.,9999., 9999.,9999., 9999., 9999.,9999., 9999., 0.000, -9999., 9999., 9999., 9999, -1, 0, 0,
438 +        0.00253, 0.0291, 0.022, 0.0032, -1, -1, 0.826, 2.7, 0.255, 9999., 9999.,9999., 9999.,9999., 9999., 9999.,9999., 9999., 0.000, -9999., 9999., 9999., 9999, -1, 0, 0
439 +    };                            
440 +    Double_t cut[52];
441 +    if     (typeCuts == 3) {
442 +      memcpy(cut  ,robustlooseEleIDCuts  ,sizeof(cut));
443 +    }
444 +    else {
445 +      memcpy(cut  ,robusttightEleIDCuts  ,sizeof(cut));
446 +    }
447 +
448 +    if ((tkIso > cut[26*eb+6]) || (ecalIso > cut[26*eb+7]) || (hcalIso > cut[26*eb+8]) || (hcalIso1 > cut[26*eb+9]) || (hcalIso2 > cut[26*eb+10]) ||
449 +        (tkIso/ele->Pt() > cut[26*eb+11]) || (ecalIso/ele->Pt() > cut[26*eb+12]) || (hcalIso/ele->Pt() > cut[26*eb+13]) ||
450 +        ((tkIso+ecalIso+hcalIso)>cut[26*eb+14]) || (((tkIso+ecalIso+hcalIso)/ ele->Pt()) > cut[26*eb+15]) ||
451 +        ((tkIso+ecalIsoPed+hcalIso)>cut[26*eb+16]) || (((tkIso+ecalIsoPed+hcalIso)/ ele->Pt()) > cut[26*eb+17])  )
452 +      result = 0.;
453 +    else
454 +      result = 2.;
455 +
456 +    if (hOverE > cut[26*eb+0])
457 +      return result;    
458 +
459 +    if (sigmaee > cut[26*eb+1])
460 +      return result;    
461 +
462 +    if (fabs(deltaPhiIn) > cut[26*eb+2])
463 +      return result;    
464 +
465 +    if (fabs(deltaEtaIn) > cut[26*eb+3])
466 +      return result;    
467 +    
468 +    if (e25Maxoe55 < cut[26*eb+4] && e15oe55 < cut[26*eb+5])
469 +      return result;
470 +    // some extra electron id cuts
471 +    if (sigmaee < cut[26*eb+18]) // inverted sigmaee cut - spike removal related
472 +      return result;
473 +
474 +    if (  eOverP < cut[26*eb+19] ||  eOverP > cut[26*eb+20]) // lower and upper cut in E/P
475 +      return result;
476 +    
477 +    result = result + 1;
478 +
479 +    Double_t d0_real = 99999;
480 +    for(UInt_t i0 = 0; i0 < vertices->GetEntries(); i0++) {
481 +      Double_t pD0 = ele->GsfTrk()->D0Corrected(*vertices->At(i0));
482 +      if(TMath::Abs(pD0) < TMath::Abs(d0_real)) d0_real = TMath::Abs(pD0);
483 +    }
484 +    if (d0_real > cut[26*eb+21])
485 +      return result;
486 +
487 +    if (mishits > cut[26*eb+22]) // expected missing hits
488 +      return result;
489 +
490 +    Bool_t passConvVeto = PassConversionFilter(ele, conversions, kTRUE);
491 +    if (passConvVeto == kFALSE)
492 +      return result;
493 +      
494 +    result += 4;
495 +  }
496 +  else if(typeCuts == 0 || typeCuts == 1 || typeCuts == 2){
497 +    // Loose cuts
498 +  Double_t cutdcotdistLoose[27] = {
499 +  3.98e-02, 3.97e-02, 4.01e-02, 3.99e-02, 3.97e-02, 3.94e-02, 3.82e-02, 3.93e-02, 3.88e-02,
500 +  3.89e-02, 1.58e-02, 4.18e-03, 3.94e-02, 3.85e-02, 3.86e-02, 2.14e-02, 2.65e-02, 1.33e-02,
501 +  2.86e-02, 3.19e-02, 1.04e-02, 3.86e-02, 3.25e-02, 3.00e-02, 4.77e-04, 3.55e-02, 2.32e-02
502 +  };
503 +  Double_t cutdetainLoose[27] = {
504 +  9.57e-03, 4.87e-03, 1.49e-02, 1.47e-02, 9.13e-03, 1.68e-02, 1.32e-02, 5.18e-02, 3.00e-02,
505 +  9.38e-03, 3.72e-03, 9.06e-03, 1.31e-02, 6.65e-03, 1.23e-02, 1.30e-02, 2.32e-02, 1.18e-02,
506 +  1.07e-02, 3.82e-03, 8.96e-03, 1.40e-02, 6.64e-03, 1.22e-02, 1.20e-02, 2.09e-02, 2.18e-03
507 +  };
508 +  Double_t cutdphiinLoose[27] = {
509 +  4.10e-02, 2.72e-01, 3.69e-01, 4.70e-02, 2.74e-01, 2.91e-01, 3.30e-01, 4.98e-01, 6.38e-01,
510 +  5.95e-02, 9.63e-02, 3.24e-01, 6.87e-02, 6.17e-02, 2.82e-01, 9.06e-02, 2.93e-01, 2.29e-01,
511 +  8.14e-02, 5.19e-02, 2.99e-01, 1.14e-01, 6.05e-02, 3.03e-01, 1.16e-01, 2.56e-01, 4.63e-02
512 +  };
513 +  Double_t cuteseedopcorLoose[27] = {
514 +  7.81e-01, 2.96e-01, 4.81e-01, 9.03e-01, 1.68e-01, 6.44e-01, 1.06e-01, 2.83e-01, 4.65e-01,
515 +  5.99e-01, 3.33e-01, 5.45e-01, 8.17e-01, 7.82e-01, 6.75e-01, 4.17e-01, 8.24e-01, 8.79e-01,
516 +  5.16e-01, 9.38e-01, 8.10e-01, 8.17e-01, 8.50e-01, 5.06e-01, 4.30e-01, 8.33e-01, 7.36e-01
517 +  };
518 +  Double_t cutetLoose[27] = {
519 +  -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05,
520 +  -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05,
521 +   1.20e+01,  1.20e+01,  1.20e+01,  1.20e+01,  1.20e+01,  1.20e+01,  1.20e+01,  1.20e+01,  1.42e+01
522 +  };
523 +  Double_t cutfmishitsLoose[27] = {
524 +  4.50e+00, 1.50e+00, 1.50e+00, 2.50e+00, 2.50e+00, 1.50e+00, 2.50e+00, 2.50e+00, 1.50e+00,
525 +  2.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 5.00e-01, 5.00e-01, 2.50e+00, 2.50e+00, 5.00e-01,
526 +  2.50e+00, 1.50e+00, 5.00e-01, 1.50e+00, 1.50e+00, 5.00e-01, 2.50e+00, 5.00e-01, 1.50e+00
527 +  };
528 +  Double_t cuthoeLoose[27] = {
529 +  1.65e-01, 7.55e-02, 1.43e-01, 3.70e-01, 5.01e-02, 1.25e-01, 4.06e-01, 2.69e+00, 5.58e-01,
530 +  2.37e-01, 5.43e-02, 1.47e-01, 3.68e-01, 3.12e-02, 1.20e-01, 6.06e-01, 2.81e+00, 1.07e+00,
531 +  1.04e-01, 6.22e-02, 5.73e-02, 2.97e-01, 2.10e-02, 3.08e-02, 5.46e-01, 4.71e+00, 8.00e-01
532 +  };
533 +  Double_t cutip_gsfLoose[27] = {
534 +  4.31e-02, 7.19e-02, 1.40e-01, 8.68e-02, 1.45e-01, 1.57e-01, 9.21e-01, 1.62e-01, 1.86e-01,
535 +  2.09e-02, 4.59e-02, 9.03e-02, 3.65e-02, 1.49e-01, 9.89e-02, 6.24e-02, 1.88e-01, 1.31e-01,
536 +  1.22e-02, 1.23e-02, 7.07e-02, 1.65e-02, 1.23e-01, 6.70e-02, 4.77e-02, 5.92e-02, 1.84e-02
537 +  };
538 +  Double_t cutiso_sumLoose[27] = {
539 +  3.17e+01, 9.85e+00, 8.88e+00, 1.13e+01, 6.05e+00, 7.19e+00, 7.65e+00, 9.84e+00, 3.45e+00,
540 +  1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05,
541 +  1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05
542 +  };
543 +  Double_t cutiso_sumoetLoose[27] = {
544 +  2.58e+01, 1.48e+01, 1.14e+01, 1.93e+01, 7.10e+00, 9.51e+00, 1.09e+01, 9.71e+00, 3.86e+00,
545 +  2.31e+01, 1.58e+01, 1.24e+01, 1.72e+01, 7.37e+00, 8.98e+00, 1.51e+01, 1.31e+01, 6.20e+00,
546 +  2.12e+01, 2.14e+01, 1.75e+01, 1.56e+01, 9.62e+00, 1.06e+01, 2.00e+01, 2.23e+01, 1.37e+01
547 +  };
548 +  Double_t cutseeLoose[27] = {
549 +  1.82e-02, 1.29e-02, 1.68e-02, 3.73e-02, 3.14e-02, 3.30e-02, 1.53e-02, 3.97e-02, 8.41e+00,
550 +  1.62e-02, 1.07e-02, 1.40e-02, 3.62e-02, 3.21e-02, 3.53e-02, 1.19e-02, 3.72e-02, 5.04e+01,
551 +  1.59e-02, 1.12e-02, 1.38e-02, 3.98e-02, 3.27e-02, 4.07e-02, 1.04e-02, 4.42e-02, 1.19e-02
552 +  };
553 +
554 +    // Medium cuts
555 +  Double_t cutdcotdistMedium[27] = {
556 +  3.93e-02, 3.01e-02, 3.32e-02, 3.94e-02, 3.91e-02, 3.90e-02, 3.70e-02, 3.88e-02, 3.90e-02,
557 +  3.21e-02, 7.36e-04, 1.95e-04, 3.76e-02, 2.35e-02, 1.13e-02, 1.96e-02, 1.62e-02, 1.04e-03,
558 +  1.34e-03, 2.56e-02, 1.31e-03, 3.26e-02, 8.21e-03, 1.60e-02, 5.17e-03, 2.63e-02, 1.80e-03
559 +  };
560 +  Double_t cutdetainMedium[27] = {
561 +  7.95e-03, 3.91e-03, 9.04e-03, 1.46e-02, 7.02e-03, 1.09e-02, 1.10e-02, 3.87e-02, 1.81e-02,
562 +  9.29e-03, 3.31e-03, 6.94e-03, 1.31e-02, 5.39e-03, 9.18e-03, 1.22e-02, 1.63e-02, 2.82e-03,
563 +  1.11e-02, 4.09e-03, 6.89e-03, 1.08e-02, 5.78e-03, 9.06e-03, 1.19e-02, 1.50e-02, 1.31e-03
564 +  };
565 +  Double_t cutdphiinMedium[27] = {
566 +  4.03e-02, 9.76e-02, 3.24e-01, 4.70e-02, 2.36e-01, 2.73e-01, 3.10e-01, 3.98e-01, 6.38e-01,
567 +  5.53e-02, 5.50e-02, 3.21e-01, 6.57e-02, 2.58e-02, 1.14e-01, 5.92e-02, 2.68e-01, 2.61e-02,
568 +  7.99e-02, 2.47e-02, 1.72e-01, 5.64e-02, 2.45e-02, 8.58e-02, 6.44e-02, 7.18e-02, 3.48e-02
569 +  };
570 +  Double_t cuteseedopcorMedium[27] = {
571 +  7.85e-01, 3.53e-01, 5.77e-01, 9.03e-01, 1.66e-01, 6.43e-01, 1.78e-01, 3.24e-01, 9.02e-01,
572 +  8.15e-01, 9.11e-01, 8.94e-01, 8.48e-01, 8.70e-01, 9.50e-01, 5.34e-01, 9.19e-01, 9.61e-01,
573 +  4.57e-01, 9.51e-01, 9.53e-01, 8.22e-01, 8.74e-01, 9.18e-01, 8.08e-01, 9.19e-01, 1.02e+00
574 +  };
575 +  Double_t cutetMedium[27] = {
576 +  -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05,
577 +  -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05,
578 +   1.20e+01,  1.20e+01,  1.20e+01,  1.22e+01,  1.22e+01,  1.22e+01,  1.20e+01,  1.23e+01,  1.84e+01
579 +  };
580 +  Double_t cutfmishitsMedium[27] = {
581 +  2.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 2.50e+00, 2.50e+00, 1.50e+00,
582 +  2.50e+00, 1.50e+00, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, 2.50e+00, 5.00e-01, 5.00e-01,
583 +  2.50e+00, 1.50e+00, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, 2.50e+00
584 +  };
585 +  Double_t cuthoeMedium[27] = {
586 +  9.79e-02, 5.42e-02, 1.13e-01, 3.61e-01, 3.73e-02, 7.61e-02, 3.45e-01, 2.69e+00, 4.05e-01,
587 +  1.11e-01, 4.66e-02, 1.39e-01, 3.59e-01, 2.34e-02, 5.75e-02, 6.10e-01, 1.35e+00, 6.35e-01,
588 +  6.07e-02, 5.34e-02, 2.97e-02, 1.16e-01, 1.45e-02, 1.92e-02, 1.30e-01, 5.37e+00, 5.06e-01
589 +  };
590 +  Double_t cutip_gsfMedium[27] = {
591 +  3.95e-02, 5.29e-02, 1.15e-01, 4.56e-02, 1.31e-01, 1.27e-01, 3.13e-01, 9.50e-02, 1.58e-01,
592 +  1.41e-02, 2.00e-02, 5.52e-02, 2.97e-02, 7.65e-02, 4.84e-02, 4.15e-02, 1.73e-01, 1.31e-02,
593 +  1.01e-02, 9.93e-03, 3.60e-02, 1.17e-02, 1.89e-02, 3.43e-02, 1.83e-02, 2.27e-02, 3.30e-03
594 +  };
595 +  Double_t cutiso_sumMedium[27] = {
596 +  1.48e+01, 8.45e+00, 6.96e+00, 8.73e+00, 4.11e+00, 4.97e+00, 5.36e+00, 5.83e+00, 1.89e+00,
597 +  1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05,
598 +  1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05
599 +  };
600 +  Double_t cutiso_sumoetMedium[27] = {
601 +  1.74e+01, 1.13e+01, 8.29e+00, 1.42e+01, 4.72e+00, 6.09e+00, 7.07e+00, 8.32e+00, 2.32e+00,
602 +  1.49e+01, 1.28e+01, 1.01e+01, 1.13e+01, 6.51e+00, 6.93e+00, 1.16e+01, 1.01e+01, 6.16e+00,
603 +  1.40e+01, 1.49e+01, 1.24e+01, 1.02e+01, 6.59e+00, 7.29e+00, 1.51e+01, 1.61e+01, 1.38e+01
604 +  };
605 +  Double_t cutseeMedium[27] = {
606 +  1.53e-02, 1.11e-02, 1.39e-02, 3.31e-02, 3.08e-02, 3.15e-02, 1.26e-02, 3.18e-02, 4.42e-01,
607 +  1.45e-02, 1.04e-02, 1.28e-02, 3.50e-02, 3.02e-02, 3.18e-02, 1.14e-02, 3.36e-02, 3.94e+00,
608 +  1.56e-02, 1.06e-02, 1.28e-02, 3.75e-02, 3.16e-02, 3.65e-02, 9.67e-03, 3.61e-02, 9.56e-03
609 +  };
610 +
611 +    // Tight cuts
612 +  Double_t cutdcotdistTight[27] = {
613 +  3.93e-02, 2.56e-02, 8.20e-03, 3.94e-02, 3.85e-02, 3.92e-02, 3.27e-02, 3.71e-02, 3.82e-02,
614 +  2.40e-02, 3.57e-03, 9.45e-03, 3.35e-02, 2.38e-02, 5.29e-04, 1.75e-02, 2.63e-03, 8.06e-05,
615 +  4.87e-04, 2.91e-02, 3.85e-03, 1.94e-02, 6.72e-03, 8.84e-03, 2.41e-04, 2.04e-03, 1.80e-03
616 +  };
617 +  Double_t cutdetainTight[27] = {
618 +  8.57e-03, 3.40e-03, 6.56e-03, 1.05e-02, 6.56e-03, 9.98e-03, 1.04e-02, 1.48e-02, 1.44e-02,
619 +  7.71e-03, 2.59e-03, 5.21e-03, 9.40e-03, 4.25e-03, 8.49e-03, 1.18e-02, 2.29e-02, 1.90e-03,
620 +  8.70e-03, 3.62e-03, 4.92e-03, 9.33e-03, 4.80e-03, 7.72e-03, 1.19e-02, 4.61e-03, 1.34e-03
621 +  };
622 +  Double_t cutdphiinTight[27] = {
623 +  4.05e-02, 5.29e-02, 2.45e-01, 4.05e-02, 4.87e-02, 2.44e-01, 2.85e-01, 2.27e-01, 1.36e-01,
624 +  5.49e-02, 3.41e-02, 1.54e-01, 6.24e-02, 1.87e-02, 3.97e-02, 5.33e-02, 9.76e-02, 7.28e-03,
625 +  4.25e-02, 2.14e-02, 9.01e-02, 5.30e-02, 1.76e-02, 2.48e-02, 6.61e-02, 2.61e-02, 3.48e-02
626 +  };
627 +  Double_t cuteseedopcorTight[27] = {
628 +  7.82e-01, 3.83e-01, 6.00e-01, 9.11e-01, 1.63e-01, 6.39e-01, 5.58e-01, 5.55e-01, 9.62e-01,
629 +  8.35e-01, 9.66e-01, 9.67e-01, 9.23e-01, 8.97e-01, 9.79e-01, 6.25e-01, 9.60e-01, 1.00e+00,
630 +  5.51e-01, 9.67e-01, 9.87e-01, 8.21e-01, 8.56e-01, 1.01e+00, 9.40e-01, 1.01e+00, 1.03e+00
631 +  };
632 +  Double_t cutetTight[27] = {
633 +  -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05,
634 +  -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05, -1.00e+05,
635 +   1.37e+01,  1.32e+01,  1.36e+01,  1.42e+01,  1.43e+01,  1.41e+01,  1.30e+01,  1.75e+01,  1.83e+01
636 +  };
637 +  Double_t cutfmishitsTight[27] = {
638 +  2.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 1.50e+00, 5.00e-01, 2.50e+00, 5.00e-01, 5.00e-01,
639 +  2.50e+00, 1.50e+00, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, -5.00e-01,
640 +  2.50e+00, 1.50e+00, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, 5.00e-01, 2.50e+00
641 +  };
642 +  Double_t cuthoeTight[27] = {
643 +  7.61e-02, 3.97e-02, 1.07e-01, 1.22e-01, 2.28e-02, 6.10e-02, 1.19e-01, 2.69e+00, 3.14e-01,
644 +  9.01e-02, 4.94e-02, 1.01e-01, 7.59e-02, 1.53e-02, 3.38e-02, 5.41e-01, 1.10e+00, 6.97e-01,
645 +  4.83e-02, 4.88e-02, 2.45e-02, 3.91e-02, 9.84e-03, 1.38e-02, 1.89e-01, 7.10e-01, 4.39e-01
646 +  };
647 +  Double_t cutip_gsfTight[27] = {
648 +  2.45e-02, 4.31e-02, 6.38e-02, 3.33e-02, 7.65e-02, 1.36e-01, 6.79e-01, 9.98e-02, 4.62e-02,
649 +  1.31e-02, 1.45e-02, 4.60e-02, 1.53e-02, 3.43e-02, 2.58e-02, 2.82e-02, 1.29e-01, 3.21e-03,
650 +  8.51e-03, 7.46e-03, 1.77e-02, 1.06e-02, 1.18e-02, 1.13e-02, 1.22e-02, 2.26e-02, 5.29e-03
651 +  };
652 +  Double_t cutiso_sumTight[27] = {
653 +  1.14e+01, 8.08e+00, 6.16e+00, 6.73e+00, 3.18e+00, 4.36e+00, 4.40e+00, 5.30e+00, 1.34e+00,
654 +  1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05,
655 +  1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05, 1.00e+05
656 +  };
657 +  Double_t cutiso_sumoetTight[27] = {
658 +  1.36e+01, 1.02e+01, 7.07e+00, 9.77e+00, 3.57e+00, 4.85e+00, 6.13e+00, 7.89e+00, 2.14e+00,
659 +  1.12e+01, 1.18e+01, 7.73e+00, 8.18e+00, 4.85e+00, 5.05e+00, 1.13e+01, 7.16e+00, 5.76e+00,
660 +  1.04e+01, 1.12e+01, 1.05e+01, 7.53e+00, 5.51e+00, 6.08e+00, 1.21e+01, 1.31e+01, 1.41e+01
661 +  };
662 +  Double_t cutseeTight[27] = {
663 +  1.42e-02, 1.05e-02, 1.25e-02, 3.24e-02, 3.08e-02, 3.01e-02, 1.10e-02, 2.71e-02, 4.69e-02,
664 +  1.33e-02, 1.04e-02, 1.15e-02, 3.31e-02, 2.96e-02, 3.08e-02, 9.90e-03, 2.74e-02, 3.16e-01,
665 +  1.45e-02, 1.05e-02, 1.10e-02, 3.37e-02, 2.97e-02, 3.01e-02, 9.40e-03, 2.77e-02, 9.39e-03
666 +  };
667 +
668 +    Double_t cutdcotdist[27];
669 +    Double_t cutdetain[27];
670 +    Double_t cutdphiin[27];
671 +    Double_t cuteseedopcor[27];
672 +    Double_t cutet[27];
673 +    Double_t cutfmishits[27];
674 +    Double_t cuthoe[27];
675 +    Double_t cutip_gsf[27];
676 +    Double_t cutiso_sum[27];
677 +    Double_t cutiso_sumoet[27];
678 +    Double_t cutsee[27];
679 +    if     (typeCuts == 0) {
680 +      memcpy(cutdcotdist  ,cutdcotdistLoose  ,sizeof(cutdcotdistLoose));
681 +      memcpy(cutdetain    ,cutdetainLoose       ,sizeof(cutdetainLoose));
682 +      memcpy(cutdphiin    ,cutdphiinLoose       ,sizeof(cutdphiinLoose));
683 +      memcpy(cuteseedopcor,cuteseedopcorLoose,sizeof(cuteseedopcorLoose));
684 +      memcpy(cutet        ,cutetLoose   ,sizeof(cutetLoose));
685 +      memcpy(cutfmishits  ,cutfmishitsLoose  ,sizeof(cutfmishitsLoose));
686 +      memcpy(cuthoe       ,cuthoeLoose  ,sizeof(cuthoeLoose));
687 +      memcpy(cutip_gsf    ,cutip_gsfLoose       ,sizeof(cutip_gsfLoose));
688 +      memcpy(cutiso_sum   ,cutiso_sumLoose      ,sizeof(cutiso_sumLoose));
689 +      memcpy(cutiso_sumoet,cutiso_sumoetLoose,sizeof(cutiso_sumoetLoose));
690 +      memcpy(cutsee       ,cutseeLoose  ,sizeof(cutseeLoose));
691 +    }
692 +    else if(typeCuts == 1) {
693 +      memcpy(cutdcotdist  ,cutdcotdistMedium  ,sizeof(cutdcotdistMedium));
694 +      memcpy(cutdetain    ,cutdetainMedium      ,sizeof(cutdetainMedium));
695 +      memcpy(cutdphiin    ,cutdphiinMedium      ,sizeof(cutdphiinMedium));
696 +      memcpy(cuteseedopcor,cuteseedopcorMedium,sizeof(cuteseedopcorMedium));
697 +      memcpy(cutet        ,cutetMedium  ,sizeof(cutetMedium));
698 +      memcpy(cutfmishits  ,cutfmishitsMedium  ,sizeof(cutfmishitsMedium));
699 +      memcpy(cuthoe       ,cuthoeMedium ,sizeof(cuthoeMedium));
700 +      memcpy(cutip_gsf    ,cutip_gsfMedium      ,sizeof(cutip_gsfMedium));
701 +      memcpy(cutiso_sum   ,cutiso_sumMedium     ,sizeof(cutiso_sumMedium));
702 +      memcpy(cutiso_sumoet,cutiso_sumoetMedium,sizeof(cutiso_sumoetMedium));
703 +      memcpy(cutsee       ,cutseeMedium ,sizeof(cutseeMedium));
704 +    }
705 +    else {
706 +      memcpy(cutdcotdist  ,cutdcotdistTight  ,sizeof(cutdcotdistTight));
707 +      memcpy(cutdetain    ,cutdetainTight       ,sizeof(cutdetainTight));
708 +      memcpy(cutdphiin    ,cutdphiinTight       ,sizeof(cutdphiinTight));
709 +      memcpy(cuteseedopcor,cuteseedopcorTight,sizeof(cuteseedopcorTight));
710 +      memcpy(cutet        ,cutetTight   ,sizeof(cutetTight));
711 +      memcpy(cutfmishits  ,cutfmishitsTight  ,sizeof(cutfmishitsTight));
712 +      memcpy(cuthoe       ,cuthoeTight  ,sizeof(cuthoeTight));
713 +      memcpy(cutip_gsf    ,cutip_gsfTight       ,sizeof(cutip_gsfTight));
714 +      memcpy(cutiso_sum   ,cutiso_sumTight      ,sizeof(cutiso_sumTight));
715 +      memcpy(cutiso_sumoet,cutiso_sumoetTight,sizeof(cutiso_sumoetTight));
716 +      memcpy(cutsee       ,cutseeTight  ,sizeof(cutseeTight));
717 +    }
718 +
719 +    Double_t iso_sum = tkIso + ecalIso + hcalIso;
720 +    Double_t iso_sum_corrected = iso_sum*pow(40./scEt, 2);
721 +    if ((iso_sum < cutiso_sum[cat+bin*9]) &&
722 +        (iso_sum_corrected < cutiso_sumoet[cat+bin*9]))
723 +      result += 2;
724 +
725 +    if (fBrem > -2) {
726 +      if ((hOverE < cuthoe[cat+bin*9]) and
727 +          (sigmaee < cutsee[cat+bin*9]) and
728 +          (fabs(deltaPhiIn) < cutdphiin[cat+bin*9]) and
729 +          (fabs(deltaEtaIn) < cutdetain[cat+bin*9]) and
730 +          (eSeedOverPin > cuteseedopcor[cat+bin*9]) and
731 +          (scEt > cutet[cat+bin*9]))
732 +        result += 1.;
733 +    }
734 +
735 +    Double_t d0_real = 99999;
736 +    for(UInt_t i0 = 0; i0 < vertices->GetEntries(); i0++) {
737 +      Double_t pD0 = ele->GsfTrk()->D0Corrected(*vertices->At(i0));
738 +      if(TMath::Abs(pD0) < TMath::Abs(d0_real)) d0_real = TMath::Abs(pD0);
739 +    }
740 +    if (d0_real < cutip_gsf[cat+bin*9])
741 +      result += 4;
742 +
743 +    Bool_t passConvVeto = PassConversionFilter(ele, conversions, kTRUE);
744 +    if (mishits < cutfmishits[cat+bin*9] &&
745 +        passConvVeto)
746 +      result += 8;
747 +  } // classbased
748 +
749 +  return result;
750 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines