Electron Charge Misidentification studies 7/2/09: SUSY SS synchronization

  • Purpose: change used cut functions to get in line with SUSY SS analysis
    • use tag: fkw_ss_090721

OLD: 22X with old WW style cuts

Show code  Hide code 

  // file loop
  TIter fileIter(listOfFiles);
  TFile *currentFile = 0;
  while ( currentFile = (TFile*)fileIter.Next() ) {
    TFile f(currentFile->GetTitle());
    TTree *tree = (TTree*)f.Get("Events");
    cms2.Init(tree);
    
    //Event Loop
    unsigned int nEvents = tree->GetEntries();
    // nEvents = 100;
    for( unsigned int event = 0; event < nEvents; ++event) {
      cms2.GetEntry(event);
      ++nEventsTotal;
      
      if ( nEventsTotal%10000 == 0 ) {
   std::cout << "Event: " << nEventsTotal << endl;
      }

      // loop over true electrons
      for ( unsigned int els = 0;
       els < genps_p4().size();
       ++els ) {

   // check for true electron
   if ( TMath::Abs(genps_id()[els]) != 11 ) continue;

   // check for pT >= 10 GeV
   if ( genps_p4()[els].pt() < 10. ) continue;

   // fill true histrograms
   els_pt_sim->Fill(genps_p4()[els].pt());
   els_eta_sim->Fill(genps_p4()[els].eta());

      }

      // loop over reco electrons
      for (unsigned int els = 0; 
           els < els_p4().size(); 
      ++els) {

   // cuts

   // check for pT >= 10 GeV
   if ( els_p4()[els].pt() < 10. ) continue;

   if ( !goodElectronIsolated(els,true) ) continue;
   if ( conversionElectron(els) ) continue;

   // check how many electrons don't have an associated track
   els_trkId->Fill(els_trkidx().at(els));

   // tmp charge variable
   double charge = els_charge().at(els);

   // if electron has associated track and track charge is not equal to electron charge, veto
    int trk = els_trkidx().at(els);
   if ( (trk >= 0) && (charge != trks_charge().at(trk)) ) {
     continue;
   }

   // exclude reco electron which is not a true electron
   if ( abs(els_mc_id()[els]) != 11 ) continue;

   // fill reco
   els_pt_reco->Fill(els_p4().at(els).Pt());
   els_eta_reco->Fill(els_p4().at(els).eta());

   // fill reco_corCharge
   if ( (charge == -1 && els_mc_id().at(els) == 11) || (charge == 1 && els_mc_id().at(els) == -11) ) {
     els_pt_reco_corCharge->Fill(els_p4().at(els).Pt());
     els_eta_reco_corCharge->Fill(els_p4().at(els).eta());
   }

   // fill recosim
   els_pt_recosim->Fill(els_mc_p4().at(els).Pt());
   els_eta_recosim->Fill(els_mc_p4().at(els).eta());

   // correct charge identified
   if ( (charge == -1 && els_mc_id().at(els) == 11) || (charge == 1 && els_mc_id().at(els) == -11) ) {

     els_pt_recosim_corCharge->Fill(els_mc_p4().at(els).Pt());
     els_eta_recosim_corCharge->Fill(els_mc_p4().at(els).eta());

     // incorrect charge identified
   } else {

     els_pt_recosim_incorCharge->Fill(els_mc_p4().at(els).Pt());
     els_eta_recosim_incorCharge->Fill(els_mc_p4().at(els).eta());
   }

      }
      
    }
    
  }

comment reco efficiency [%] barrel reco efficiency [%] forward reco efficiency [%] charge misidentification rate [%] barrel charge misidentification rate [%] forward charge misidentification rate [%]
OLD 79.643 86.434 68.898 0.414 0.138 0.901


NEW: 22X with new SUSY SS style cuts

Show code  Hide code 

  // file loop
  TIter fileIter(listOfFiles);
  TFile *currentFile = 0;
  while ( currentFile = (TFile*)fileIter.Next() ) {
    TFile f(currentFile->GetTitle());
    TTree *tree = (TTree*)f.Get("Events");
    cms2.Init(tree);
    
    //Event Loop
    unsigned int nEvents = tree->GetEntries();
    // nEvents = 100;
    for( unsigned int event = 0; event < nEvents; ++event) {
      cms2.GetEntry(event);
      ++nEventsTotal;
      
      if ( nEventsTotal%10000 == 0 ) {
   std::cout << "Event: " << nEventsTotal << endl;
      }

      // loop over true electrons
      for ( unsigned int els = 0;
       els < genps_p4().size();
       ++els ) {

   // check that electron is final state electron
   if ( genps_status()[els] != 1 ) continue;
   
   // check for true electron
   if ( TMath::Abs(genps_id()[els]) != 11 ) continue;

   // fill true histrograms
   els_pt_sim->Fill(genps_p4()[els].pt());
   els_eta_sim->Fill(genps_p4()[els].eta());

      }

      // loop over reco electrons
      for (unsigned int els = 0; 
           els < els_p4().size(); 
      ++els) {

   // cuts

   // SUSY cuts, replace
   // if ( !goodElectronIsolated(els) ) continue;
   // with corresponding cuts
        if ( !GoodSusyLeptonID(11,els) ) continue;
   if ( !PassSusyLeptonIsolation(11,els) ) continue;

   // SUSY cuts, replace
   // if ( conversionElectron(els) ) continue;
   // with corresponding cuts
   if ( conversionElectron(els) ) continue;

   // check how many electrons don't have an associated track
   els_trkId->Fill(els_trkidx().at(els));
   // tmp charge variable
   double charge = els_charge().at(els);
   
   // SUSY cuts, replace
   // if electron has associated track and track charge is not equal to electron charge, veto
    // int trk = els_trkidx().at(els);
   // if ( (trk >= 0) && (charge != trks_charge().at(trk)) ) {
   //  continue;
   // }
   // with corresponding cuts
   if ( isChargeFlip(els) ) continue;

   // fill reco
   els_pt_reco->Fill(els_p4().at(els).Pt());
   els_eta_reco->Fill(els_p4().at(els).eta());

   // fill reco_corCharge
   if ( (charge == -1 && els_mc_id().at(els) == 11) || (charge == 1 && els_mc_id().at(els) == -11) ) {
     els_pt_reco_corCharge->Fill(els_p4().at(els).Pt());
     els_eta_reco_corCharge->Fill(els_p4().at(els).eta());
   }

   // exclude reco which has no true electron match
   if ( abs(els_mc_id()[els]) != 11 ) continue;

   // fill recosim
   els_pt_recosim->Fill(els_mc_p4().at(els).Pt());
   els_eta_recosim->Fill(els_mc_p4().at(els).eta());

   // correct charge identified
   if ( (charge == -1 && els_mc_id().at(els) == 11) || (charge == 1 && els_mc_id().at(els) == -11) ) {

     els_pt_recosim_corCharge->Fill(els_mc_p4().at(els).Pt());
     els_eta_recosim_corCharge->Fill(els_mc_p4().at(els).eta());

     // incorrect charge identified
   } else {

     els_pt_recosim_incorCharge->Fill(els_mc_p4().at(els).Pt());
     els_eta_recosim_incorCharge->Fill(els_mc_p4().at(els).eta());
   }

      }
      
    }
    
  }

comment reco efficiency [%] barrel reco efficiency [%] forward reco efficiency [%] charge misidentification rate [%] barrel charge misidentification rate [%] forward charge misidentification rate [%]
NEW 79.318 88.113 66.252 0.343 0.118 0.763


Comparison OLD vs. NEW

comment reco efficiency [%] barrel reco efficiency [%] forward reco efficiency [%] charge misidentification rate [%] barrel charge misidentification rate [%] forward charge misidentification rate [%]
OLD 79.643 86.434 68.898 0.414 0.138 0.901
NEW 79.318 88.113 66.252 0.343 0.118 0.763

New tag

  • all changes are on top of tag
    • fkw_ss_090721 for CMS/NtupleMacros
  • changes are tagged in
    • gutsche_090722_SUSY
Topic revision: r1 - 22 Jul 2009 - 02:24:02 - OliverGutsche

tip TWiki Tip of the Day
Custom rendered bullets
The RenderListPlugin can render bulleted lists in a variety of different ways. Use % nop RENDERLIST ... Read on Read more

 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback