ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbbAnalysis/HbbAnalyzer/plugins/HbbAnalyzerNew.cc
(Generate patch)

Comparing UserCode/VHbbAnalysis/HbbAnalyzer/plugins/HbbAnalyzerNew.cc (file contents):
Revision 1.3 by tboccali, Thu Jun 9 06:51:57 2011 UTC vs.
Revision 1.11 by tboccali, Mon Jul 18 13:14:05 2011 UTC

# Line 18 | Line 18 | Implementation:
18   //
19  
20   #include "VHbbAnalysis/HbbAnalyzer/interface/HbbAnalyzerNew.h"
21 < #include "VHbbAnalysis/HbbAnalyzer/interface/VHbbEvent.h"
21 > #include "VHbbAnalysis/VHbbDataFormats/interface/VHbbEvent.h"
22 > #include "VHbbAnalysis/VHbbDataFormats/interface/VHbbEventAuxInfo.h"
23 >
24 > #include "DataFormats/GeometryVector/interface/VectorUtil.h"
25 >
26  
27   #define GENPTOLOR(a) TLorentzVector((a).px(), (a).py(), (a).pz(), (a).energy())
28   #define GENPTOLORP(a) TLorentzVector((a)->px(), (a)->py(), (a)->pz(), (a)->energy())
29  
30   HbbAnalyzerNew::HbbAnalyzerNew(const edm::ParameterSet& iConfig):
31 <  eleLabel_(iConfig.getUntrackedParameter<edm::InputTag>("electronTag")),
32 <  muoLabel_(iConfig.getUntrackedParameter<edm::InputTag>("muonTag")),
33 <  jetLabel_(iConfig.getUntrackedParameter<edm::InputTag>("jetTag")),
34 <  subjetLabel_(iConfig.getUntrackedParameter<edm::InputTag>("subjetTag")),
35 <  simplejet1Label_(iConfig.getUntrackedParameter<edm::InputTag>("simplejet1Tag")),
36 <  simplejet2Label_(iConfig.getUntrackedParameter<edm::InputTag>("simplejet2Tag")),
37 <  simplejet3Label_(iConfig.getUntrackedParameter<edm::InputTag>("simplejet3Tag")),
38 <  simplejet4Label_(iConfig.getUntrackedParameter<edm::InputTag>("simplejet4Tag")),
39 <  tauLabel_(iConfig.getUntrackedParameter<edm::InputTag>("tauTag")),
40 <  metLabel_(iConfig.getUntrackedParameter<edm::InputTag>("metTag")),
41 <  phoLabel_(iConfig.getUntrackedParameter<edm::InputTag>("photonTag")),
42 <  dimuLabel_(iConfig.getUntrackedParameter<edm::InputTag>("dimuTag")),
43 <  dielecLabel_(iConfig.getUntrackedParameter<edm::InputTag>("dielecTag")),
44 <  hltResults_(iConfig.getUntrackedParameter<edm::InputTag>("hltResultsTag")),
45 <  runOnMC_(iConfig.getParameter<bool>("runOnMC")) {
42 <
31 >  eleLabel_(iConfig.getParameter<edm::InputTag>("electronTag")),
32 >  muoLabel_(iConfig.getParameter<edm::InputTag>("muonTag")),
33 >  jetLabel_(iConfig.getParameter<edm::InputTag>("jetTag")),
34 >  subjetLabel_(iConfig.getParameter<edm::InputTag>("subjetTag")),
35 >  simplejet1Label_(iConfig.getParameter<edm::InputTag>("simplejet1Tag")),
36 >  simplejet2Label_(iConfig.getParameter<edm::InputTag>("simplejet2Tag")),
37 >  simplejet3Label_(iConfig.getParameter<edm::InputTag>("simplejet3Tag")),
38 >  simplejet4Label_(iConfig.getParameter<edm::InputTag>("simplejet4Tag")),
39 >  tauLabel_(iConfig.getParameter<edm::InputTag>("tauTag")),
40 >  metLabel_(iConfig.getParameter<edm::InputTag>("metTag")),
41 >  phoLabel_(iConfig.getParameter<edm::InputTag>("photonTag")),
42 >  dimuLabel_(iConfig.getParameter<edm::InputTag>("dimuTag")),
43 >  dielecLabel_(iConfig.getParameter<edm::InputTag>("dielecTag")),
44 >  hltResults_(iConfig.getParameter<edm::InputTag>("hltResultsTag")),
45 >  runOnMC_(iConfig.getParameter<bool>("runOnMC")), verbose_(iConfig.getUntrackedParameter<bool>("verbose")) {
46  
47    //
48    // put the setwhatproduced etc etc
49  
50    produces<VHbbEvent>();
51 +  produces<VHbbEventAuxInfo>();
52  
53  
54   }
# Line 69 | Line 73 | HbbAnalyzerNew::produce(edm::Event& iEve
73    using namespace reco;
74    
75    
76 <  std::auto_ptr<VHbbEvent> hbbInfo( new VHbbEvent() );
76 >  std::auto_ptr<VHbbEvent> hbbInfo( new VHbbEvent() );  
77 >  std::auto_ptr<VHbbEventAuxInfo> auxInfo( new VHbbEventAuxInfo() );
78    
79    //
80    // ??
# Line 92 | Line 97 | HbbAnalyzerNew::produce(edm::Event& iEve
97      TString trigName=triggerNames_.triggerName(itrig);
98      bool accept = hltresults->accept(itrig);
99  
100 <    if (accept){(hbbInfo->triggerInfo.flag)[itrig] = 1;}
101 <    else { (hbbInfo->triggerInfo.flag)[itrig] = 0;}
100 >    if (accept){(auxInfo->triggerInfo.flag)[itrig] = 1;}
101 >    else { (auxInfo->triggerInfo.flag)[itrig] = 0;}
102  
103      //    std::cout << "%HLTInfo --  Number of HLT Triggers: " << ntrigs << std::endl;
104      //    std::cout << "%HLTInfo --  HLTTrigger(" << itrig << "): " << trigName << " = " << accept << std::endl;
# Line 204 | Line 209 | HbbAnalyzerNew::produce(edm::Event& iEve
209    int itrig26=-99;
210    if(goodIsoMu17v6!=0) itrig26 = triggerNames_.triggerIndex("HLT_IsoMu17_v6");
211    
212 <  if (itrig1!=-99 && hltresults->accept(itrig1))  hbbInfo->triggerInfo.triggerMu9=1; else hbbInfo->triggerInfo.triggerMu9=0;
213 <  if (itrig2!=-99 && hltresults->accept(itrig2))  hbbInfo->triggerInfo.triggerIsoMu9=1; else hbbInfo->triggerInfo.triggerIsoMu9=0;
214 <  if (itrig3!=-99 && hltresults->accept(itrig3))  hbbInfo->triggerInfo.triggerIsoMu13_3=1; else hbbInfo->triggerInfo.triggerIsoMu13_3=0;
215 <  if (itrig4!=-99 && hltresults->accept(itrig4))  hbbInfo->triggerInfo.triggerMu11=1; else hbbInfo->triggerInfo.triggerMu11=0;
216 <  if (itrig5!=-99 && hltresults->accept(itrig5))  hbbInfo->triggerInfo.triggerDoubleMu3=1; else hbbInfo->triggerInfo.triggerDoubleMu3=0;
217 <  if (itrig6!=-99 && hltresults->accept(itrig6))  hbbInfo->triggerInfo.triggerDoubleMu3_2=1; else hbbInfo->triggerInfo.triggerDoubleMu3_2=0;
218 <  if (itrig7!=-99 && hltresults->accept(itrig7))  hbbInfo->triggerInfo.triggerMu15=1; else hbbInfo->triggerInfo.triggerMu15=0;
219 <  if (itrig8!=-99 && hltresults->accept(itrig8))  hbbInfo->triggerInfo.triggerMu15_1=1; else hbbInfo->triggerInfo.triggerMu15_1=0;  
220 <  
221 <  if (itrig9!=-99 && hltresults->accept(itrig9))  hbbInfo->triggerInfo.triggerDoubleElec10=1; else hbbInfo->triggerInfo.triggerDoubleElec10=0;  
222 <  if (itrig10!=-99 && hltresults->accept(itrig10))  hbbInfo->triggerInfo.triggerDoubleElec15_1=1; else hbbInfo->triggerInfo.triggerDoubleElec15_1=0;  
223 <  if (itrig11!=-99 && hltresults->accept(itrig11))  hbbInfo->triggerInfo.triggerDoubleElec17_1=1; else hbbInfo->triggerInfo.triggerDoubleElec17_1=0;  
224 <  if (itrig12!=-99 && hltresults->accept(itrig12))  hbbInfo->triggerInfo.triggerMet100_1=1; else hbbInfo->triggerInfo.triggerMet100_1=0;
225 <  
226 <  if (itrig13!=-99 && hltresults->accept(itrig13))  hbbInfo->triggerInfo.triggerSingleEle1=1; else hbbInfo->triggerInfo.triggerSingleEle1=0;
227 <  if (itrig14!=-99 && hltresults->accept(itrig14))  hbbInfo->triggerInfo.triggerSingleEle2=1; else hbbInfo->triggerInfo.triggerSingleEle2=0;
228 <  if (itrig15!=-99 && hltresults->accept(itrig15))  hbbInfo->triggerInfo.triggerSingleEle3=1; else hbbInfo->triggerInfo.triggerSingleEle3=0;
229 <  if (itrig16!=-99 && hltresults->accept(itrig16))  hbbInfo->triggerInfo.triggerSingleEle4=1; else hbbInfo->triggerInfo.triggerSingleEle4=0;
230 <  
231 <  if (itrig17!=-99 && hltresults->accept(itrig17))  hbbInfo->triggerInfo.triggerBtagMu1=1; else hbbInfo->triggerInfo.triggerBtagMu1=0;  
232 <  if (itrig18!=-99 && hltresults->accept(itrig18))  hbbInfo->triggerInfo.triggerBtagMu2=1; else hbbInfo->triggerInfo.triggerBtagMu2=0;
233 <  if (itrig19!=-99 && hltresults->accept(itrig19))  hbbInfo->triggerInfo.triggerBtagMu0=1; else hbbInfo->triggerInfo.triggerBtagMu0=0;
234 <  if (itrig20!=-99 && hltresults->accept(itrig20))  hbbInfo->triggerInfo.triggerBtagMu11=1; else hbbInfo->triggerInfo.triggerBtagMu11=0;
235 <  if (itrig21!=-99 && hltresults->accept(itrig21))  hbbInfo->triggerInfo.triggerBtagMuJet1=1; else hbbInfo->triggerInfo.triggerBtagMuJet1=0;
236 <  if (itrig22!=-99 && hltresults->accept(itrig22))  hbbInfo->triggerInfo.triggerBtagMuJet2=1; else hbbInfo->triggerInfo.triggerBtagMuJet2=0;
237 <  if (itrig23!=-99 && hltresults->accept(itrig23))  hbbInfo->triggerInfo.triggerBtagMuJet3=1; else hbbInfo->triggerInfo.triggerBtagMuJet3=0;
238 <  if (itrig231!=-99 && hltresults->accept(itrig231))  hbbInfo->triggerInfo.triggerBtagMuJet4=1; else hbbInfo->triggerInfo.triggerBtagMuJet4=0;
239 <  
240 <  if (itrig24!=-99 && hltresults->accept(itrig24))  hbbInfo->triggerInfo.triggerIsoMu15=1; else hbbInfo->triggerInfo.triggerIsoMu15=0;
241 <  if (itrig25!=-99 && hltresults->accept(itrig25))  hbbInfo->triggerInfo.triggerIsoMu17v5=1; else hbbInfo->triggerInfo.triggerIsoMu17v5=0;
242 <  if (itrig26!=-99 && hltresults->accept(itrig26))  hbbInfo->triggerInfo.triggerIsoMu17v6=1; else hbbInfo->triggerInfo.triggerIsoMu17v6=0;
243 <  
244 <  if (itrig1==-99)  hbbInfo->triggerInfo.triggerMu9=-99;
245 <  if (itrig2==-99)  hbbInfo->triggerInfo.triggerIsoMu9=-99;
246 <  if (itrig3==-99)  hbbInfo->triggerInfo.triggerIsoMu13_3=-99;
247 <  if (itrig4==-99)  hbbInfo->triggerInfo.triggerMu11=-99;
248 <  if (itrig5==-99)  hbbInfo->triggerInfo.triggerDoubleMu3=-99;
249 <  if (itrig6==-99)  hbbInfo->triggerInfo.triggerDoubleMu3_2=-99;
250 <  if (itrig7==-99)  hbbInfo->triggerInfo.triggerMu15=-99;
251 <  if (itrig8==-99)  hbbInfo->triggerInfo.triggerMu15_1=-99;
252 <
253 <  if (itrig9==-99)  hbbInfo->triggerInfo.triggerDoubleElec10=-99;
254 <  if (itrig10==-99)  hbbInfo->triggerInfo.triggerDoubleElec15_1=-99;
255 <  if (itrig11==-99)  hbbInfo->triggerInfo.triggerDoubleElec17_1=-99;
256 <  if (itrig12==-99) hbbInfo->triggerInfo.triggerMet100_1=-99;
257 <
258 <  if (itrig13==-99) hbbInfo->triggerInfo.triggerSingleEle1=-99;
259 <  if (itrig14==-99) hbbInfo->triggerInfo.triggerSingleEle2=-99;
260 <  if (itrig15==-99) hbbInfo->triggerInfo.triggerSingleEle3=-99;
261 <  if (itrig16==-99) hbbInfo->triggerInfo.triggerSingleEle4=-99;
262 <
263 <  if(itrig17==-99)  hbbInfo->triggerInfo.triggerBtagMu1=-99;  
264 <  if(itrig18==-99)  hbbInfo->triggerInfo.triggerBtagMu2=-99;
265 <  if(itrig19==-99)  hbbInfo->triggerInfo.triggerBtagMu0=-99;
266 <  if(itrig20==-99)  hbbInfo->triggerInfo.triggerBtagMu11=-99;
267 <  if(itrig21==-99)  hbbInfo->triggerInfo.triggerBtagMuJet1=-99;
268 <  if(itrig22==-99)  hbbInfo->triggerInfo.triggerBtagMuJet2=-99;
269 <  if(itrig23==-99)  hbbInfo->triggerInfo.triggerBtagMuJet3=-99;
270 <  if(itrig231==-99)  hbbInfo->triggerInfo.triggerBtagMuJet4=-99;
271 <
272 <  if(itrig24==-99)  hbbInfo->triggerInfo.triggerIsoMu15=-99;
273 <  if(itrig25==-99)  hbbInfo->triggerInfo.triggerIsoMu17v5=-99;
274 <  if(itrig26==-99)  hbbInfo->triggerInfo.triggerIsoMu17v6=-99;
212 >  if (itrig1!=-99 && hltresults->accept(itrig1))  auxInfo->triggerInfo.triggerMu9=1; else auxInfo->triggerInfo.triggerMu9=0;
213 >  if (itrig2!=-99 && hltresults->accept(itrig2))  auxInfo->triggerInfo.triggerIsoMu9=1; else auxInfo->triggerInfo.triggerIsoMu9=0;
214 >  if (itrig3!=-99 && hltresults->accept(itrig3))  auxInfo->triggerInfo.triggerIsoMu13_3=1; else auxInfo->triggerInfo.triggerIsoMu13_3=0;
215 >  if (itrig4!=-99 && hltresults->accept(itrig4))  auxInfo->triggerInfo.triggerMu11=1; else auxInfo->triggerInfo.triggerMu11=0;
216 >  if (itrig5!=-99 && hltresults->accept(itrig5))  auxInfo->triggerInfo.triggerDoubleMu3=1; else auxInfo->triggerInfo.triggerDoubleMu3=0;
217 >  if (itrig6!=-99 && hltresults->accept(itrig6))  auxInfo->triggerInfo.triggerDoubleMu3_2=1; else auxInfo->triggerInfo.triggerDoubleMu3_2=0;
218 >  if (itrig7!=-99 && hltresults->accept(itrig7))  auxInfo->triggerInfo.triggerMu15=1; else auxInfo->triggerInfo.triggerMu15=0;
219 >  if (itrig8!=-99 && hltresults->accept(itrig8))  auxInfo->triggerInfo.triggerMu15_1=1; else auxInfo->triggerInfo.triggerMu15_1=0;  
220 >  
221 >  if (itrig9!=-99 && hltresults->accept(itrig9))  auxInfo->triggerInfo.triggerDoubleElec10=1; else auxInfo->triggerInfo.triggerDoubleElec10=0;  
222 >  if (itrig10!=-99 && hltresults->accept(itrig10))  auxInfo->triggerInfo.triggerDoubleElec15_1=1; else auxInfo->triggerInfo.triggerDoubleElec15_1=0;  
223 >  if (itrig11!=-99 && hltresults->accept(itrig11))  auxInfo->triggerInfo.triggerDoubleElec17_1=1; else auxInfo->triggerInfo.triggerDoubleElec17_1=0;  
224 >  if (itrig12!=-99 && hltresults->accept(itrig12))  auxInfo->triggerInfo.triggerMet100_1=1; else auxInfo->triggerInfo.triggerMet100_1=0;
225 >  
226 >  if (itrig13!=-99 && hltresults->accept(itrig13))  auxInfo->triggerInfo.triggerSingleEle1=1; else auxInfo->triggerInfo.triggerSingleEle1=0;
227 >  if (itrig14!=-99 && hltresults->accept(itrig14))  auxInfo->triggerInfo.triggerSingleEle2=1; else auxInfo->triggerInfo.triggerSingleEle2=0;
228 >  if (itrig15!=-99 && hltresults->accept(itrig15))  auxInfo->triggerInfo.triggerSingleEle3=1; else auxInfo->triggerInfo.triggerSingleEle3=0;
229 >  if (itrig16!=-99 && hltresults->accept(itrig16))  auxInfo->triggerInfo.triggerSingleEle4=1; else auxInfo->triggerInfo.triggerSingleEle4=0;
230 >  
231 >  if (itrig17!=-99 && hltresults->accept(itrig17))  auxInfo->triggerInfo.triggerBtagMu1=1; else auxInfo->triggerInfo.triggerBtagMu1=0;  
232 >  if (itrig18!=-99 && hltresults->accept(itrig18))  auxInfo->triggerInfo.triggerBtagMu2=1; else auxInfo->triggerInfo.triggerBtagMu2=0;
233 >  if (itrig19!=-99 && hltresults->accept(itrig19))  auxInfo->triggerInfo.triggerBtagMu0=1; else auxInfo->triggerInfo.triggerBtagMu0=0;
234 >  if (itrig20!=-99 && hltresults->accept(itrig20))  auxInfo->triggerInfo.triggerBtagMu11=1; else auxInfo->triggerInfo.triggerBtagMu11=0;
235 >  if (itrig21!=-99 && hltresults->accept(itrig21))  auxInfo->triggerInfo.triggerBtagMuJet1=1; else auxInfo->triggerInfo.triggerBtagMuJet1=0;
236 >  if (itrig22!=-99 && hltresults->accept(itrig22))  auxInfo->triggerInfo.triggerBtagMuJet2=1; else auxInfo->triggerInfo.triggerBtagMuJet2=0;
237 >  if (itrig23!=-99 && hltresults->accept(itrig23))  auxInfo->triggerInfo.triggerBtagMuJet3=1; else auxInfo->triggerInfo.triggerBtagMuJet3=0;
238 >  if (itrig231!=-99 && hltresults->accept(itrig231))  auxInfo->triggerInfo.triggerBtagMuJet4=1; else auxInfo->triggerInfo.triggerBtagMuJet4=0;
239 >  
240 >  if (itrig24!=-99 && hltresults->accept(itrig24))  auxInfo->triggerInfo.triggerIsoMu15=1; else auxInfo->triggerInfo.triggerIsoMu15=0;
241 >  if (itrig25!=-99 && hltresults->accept(itrig25))  auxInfo->triggerInfo.triggerIsoMu17v5=1; else auxInfo->triggerInfo.triggerIsoMu17v5=0;
242 >  if (itrig26!=-99 && hltresults->accept(itrig26))  auxInfo->triggerInfo.triggerIsoMu17v6=1; else auxInfo->triggerInfo.triggerIsoMu17v6=0;
243 >  
244 >  if (itrig1==-99)  auxInfo->triggerInfo.triggerMu9=-99;
245 >  if (itrig2==-99)  auxInfo->triggerInfo.triggerIsoMu9=-99;
246 >  if (itrig3==-99)  auxInfo->triggerInfo.triggerIsoMu13_3=-99;
247 >  if (itrig4==-99)  auxInfo->triggerInfo.triggerMu11=-99;
248 >  if (itrig5==-99)  auxInfo->triggerInfo.triggerDoubleMu3=-99;
249 >  if (itrig6==-99)  auxInfo->triggerInfo.triggerDoubleMu3_2=-99;
250 >  if (itrig7==-99)  auxInfo->triggerInfo.triggerMu15=-99;
251 >  if (itrig8==-99)  auxInfo->triggerInfo.triggerMu15_1=-99;
252 >
253 >  if (itrig9==-99)  auxInfo->triggerInfo.triggerDoubleElec10=-99;
254 >  if (itrig10==-99)  auxInfo->triggerInfo.triggerDoubleElec15_1=-99;
255 >  if (itrig11==-99)  auxInfo->triggerInfo.triggerDoubleElec17_1=-99;
256 >  if (itrig12==-99) auxInfo->triggerInfo.triggerMet100_1=-99;
257 >
258 >  if (itrig13==-99) auxInfo->triggerInfo.triggerSingleEle1=-99;
259 >  if (itrig14==-99) auxInfo->triggerInfo.triggerSingleEle2=-99;
260 >  if (itrig15==-99) auxInfo->triggerInfo.triggerSingleEle3=-99;
261 >  if (itrig16==-99) auxInfo->triggerInfo.triggerSingleEle4=-99;
262 >
263 >  if(itrig17==-99)  auxInfo->triggerInfo.triggerBtagMu1=-99;  
264 >  if(itrig18==-99)  auxInfo->triggerInfo.triggerBtagMu2=-99;
265 >  if(itrig19==-99)  auxInfo->triggerInfo.triggerBtagMu0=-99;
266 >  if(itrig20==-99)  auxInfo->triggerInfo.triggerBtagMu11=-99;
267 >  if(itrig21==-99)  auxInfo->triggerInfo.triggerBtagMuJet1=-99;
268 >  if(itrig22==-99)  auxInfo->triggerInfo.triggerBtagMuJet2=-99;
269 >  if(itrig23==-99)  auxInfo->triggerInfo.triggerBtagMuJet3=-99;
270 >  if(itrig231==-99)  auxInfo->triggerInfo.triggerBtagMuJet4=-99;
271 >
272 >  if(itrig24==-99)  auxInfo->triggerInfo.triggerIsoMu15=-99;
273 >  if(itrig25==-99)  auxInfo->triggerInfo.triggerIsoMu17v5=-99;
274 >  if(itrig26==-99)  auxInfo->triggerInfo.triggerIsoMu17v6=-99;
275  
276    //  MinDRMu=-99.,MCBestMuId=-99,MCBestMuMomId=-99,MCBestMuGMomId=-99;
277    //  for(int i=0;i<50;i++) {DeltaRMu[i]=-99;}
# Line 301 | Line 306 | HbbAnalyzerNew::produce(edm::Event& iEve
306    const Vertex &RecVtx = (*recVtxs)[VtxIn];
307    const Vertex &RecVtxFirst = (*recVtxs)[0];
308    
309 <  hbbInfo->pvInfo.firstPVInPT2 = TVector3(RecVtxFirst.x(), RecVtxFirst.y(), RecVtxFirst.z());
310 <  hbbInfo->pvInfo.firstPVInProb = TVector3(RecVtx.x(), RecVtx.y(), RecVtx.z());
309 >  auxInfo->pvInfo.firstPVInPT2 = TVector3(RecVtxFirst.x(), RecVtxFirst.y(), RecVtxFirst.z());
310 >  auxInfo->pvInfo.firstPVInProb = TVector3(RecVtx.x(), RecVtx.y(), RecVtx.z());
311  
312      
313    edm::Handle<double> rhoHandle;
314    iEvent.getByLabel(edm::InputTag("kt6PFJets", "rho"),rhoHandle); // configure srcRho = cms.InputTag('kt6PFJets")
315 <  hbbInfo->puInfo.rho = *rhoHandle;
315 >  auxInfo->puInfo.rho = *rhoHandle;
316    
317    //// real start
318    
# Line 515 | Line 520 | HbbAnalyzerNew::produce(edm::Event& iEve
520      VHbbEvent::SimpleJet sj;
521      sj.flavour = jet_iter->partonFlavour();
522  
518
523      sj.tche=jet_iter->bDiscriminator("trackCountingHighEffBJetTags");
524      sj.tchp=jet_iter->bDiscriminator("trackCountingHighPurBJetTags");
525      sj.jp=jet_iter->bDiscriminator("jetProbabilityBJetTags");
# Line 526 | Line 530 | HbbAnalyzerNew::produce(edm::Event& iEve
530      sj.charge=jet_iter->jetCharge();
531      sj.ntracks=jet_iter->associatedTracks().size();
532      sj.fourMomentum=GENPTOLORP(jet_iter);
533 +    sj.chargedTracksFourMomentum=(getChargedTracksMomentum(&*(jet_iter)));
534 +    
535 +    //
536 +    // add tVector
537 +    //
538 +    sj.tVector = getTvect(&(*jet_iter));
539  
540      Particle::LorentzVector p4Jet = jet_iter->p4();
541  
# Line 537 | Line 547 | HbbAnalyzerNew::produce(edm::Event& iEve
547          if(abs(id)<=6 || id==21 || id==23 || abs(id)==24){
548            double bb1DR=TMath::Sqrt((p.eta()-p4Jet.eta())*(p.eta()-p4Jet.eta())+
549                                     (p.phi()-p4Jet.phi())*(p.phi()-p4Jet.phi()));
550 <          if(bb1DR<minb1DR) {minb1DR=bb1DR; sj.b1BestMCid=id; if(p.mother()!=0) sj.b1BestMCmomid=p.mother()->pdgId();}
550 >          if(bb1DR<minb1DR) {minb1DR=bb1DR; sj.bestMCid=id; if(p.mother()!=0) sj.bestMCmomid=p.mother()->pdgId();}
551          }
552        }
553      } //isMC    
# Line 562 | Line 572 | HbbAnalyzerNew::produce(edm::Event& iEve
572      sj.charge=jet_iter->jetCharge();
573      sj.ntracks=jet_iter->associatedTracks().size();
574      sj.fourMomentum=GENPTOLORP(jet_iter);
575 +    sj.chargedTracksFourMomentum=(getChargedTracksMomentum(&*(jet_iter)));
576 +    sj.tVector = getTvect(&(*jet_iter));
577  
578      Particle::LorentzVector p4Jet = jet_iter->p4();
579  
# Line 573 | Line 585 | HbbAnalyzerNew::produce(edm::Event& iEve
585          if(abs(id)<=6 || id==21 || id==23 || abs(id)==24){
586            double bb2DR=TMath::Sqrt((p.eta()-p4Jet.eta())*(p.eta()-p4Jet.eta())+
587                                     (p.phi()-p4Jet.phi())*(p.phi()-p4Jet.phi()));
588 <          if(bb2DR<minb2DR) {minb2DR=bb2DR; sj.b1BestMCid=id; if(p.mother()!=0) sj.b1BestMCmomid=p.mother()->pdgId();}
588 >          if(bb2DR<minb2DR) {minb2DR=bb2DR; sj.bestMCid=id; if(p.mother()!=0) sj.bestMCmomid=p.mother()->pdgId();}
589          }
590        }
591      }   //isMC
# Line 625 | Line 637 | HbbAnalyzerNew::produce(edm::Event& iEve
637        hj.subFourMomentum.push_back(GENPTOLORP(icandJet));
638        hj.etaSub.push_back(icandJet->eta());
639        hj.phiSub.push_back(icandJet->phi());
628
640      
641      }
642      hbbInfo->hardJets.push_back(hj);
# Line 650 | Line 661 | HbbAnalyzerNew::produce(edm::Event& iEve
661      VHbbEvent::SimpleJet sj;
662  
663      sj.flavour = subjet_iter->partonFlavour();
664 <    
664 >    sj.tVector = getTvect(&(*subjet_iter));
665      sj.tche=subjet_iter->bDiscriminator("trackCountingHighEffBJetTags");
666      sj.tchp=subjet_iter->bDiscriminator("trackCountingHighPurBJetTags");
667      sj.jp=subjet_iter->bDiscriminator("jetProbabilityBJetTags");
# Line 661 | Line 672 | HbbAnalyzerNew::produce(edm::Event& iEve
672      sj.charge=subjet_iter->jetCharge();
673      sj.ntracks=subjet_iter->associatedTracks().size();
674      sj.fourMomentum=GENPTOLORP(subjet_iter);
675 <
675 >    sj.fourMomentum=(getChargedTracksMomentum(&*(subjet_iter)));
676      hbbInfo->subJets.push_back(sj);
677  
678    }
# Line 671 | Line 682 | HbbAnalyzerNew::produce(edm::Event& iEve
682    // met is calomet
683    //
684  
674
675  for(edm::View<pat::MET>::const_iterator met = mets.begin(); met!=mets.end(); ++met){
676    hbbInfo->calomet.sumEt=met->sumEt();
677    hbbInfo->calomet.metSig=met->mEtSig();
678    hbbInfo->calomet.eLong=met->e_longitudinal();
679    hbbInfo->calomet.fourMomentum=GENPTOLORP(met);
680  }
681
685    edm::Handle<edm::View<pat::MET> > metTCHandle;
686    iEvent.getByLabel("patMETsTC",metTCHandle);
687    edm::View<pat::MET> metsTC = *metTCHandle;
688 <  for(edm::View<pat::MET>::const_iterator metTC = metsTC.begin(); metTC!=metsTC.end(); ++metTC){
689 <    hbbInfo->calomet.sumEt=metTC->sumEt();
690 <    hbbInfo->calomet.metSig=metTC->mEtSig();
691 <    hbbInfo->calomet.eLong=metTC->e_longitudinal();
692 <    hbbInfo->calomet.fourMomentum=GENPTOLORP(metTC);
688 >  if(metsTC.size()){
689 >    hbbInfo->tcmet.sumEt=(metsTC[0]).sumEt();
690 >    hbbInfo->tcmet.metSig=(metsTC[0]).mEtSig();
691 >    hbbInfo->tcmet.eLong=(metsTC[0]).e_longitudinal();
692 >    hbbInfo->tcmet.fourMomentum=GENPTOLOR((metsTC[0]));
693 >    if (verbose_)     std::cout <<" METTC "<<     hbbInfo->tcmet.metSig <<" " <<     hbbInfo->tcmet.sumEt<<std::endl;
694    }
695 +  
696 +  if(mets.size()){
697 +    hbbInfo->calomet.sumEt=(mets[0]).sumEt();
698 +    hbbInfo->calomet.metSig=(mets[0]).mEtSig();
699 +    hbbInfo->calomet.eLong=(mets[0]).e_longitudinal();
700 +    hbbInfo->calomet.fourMomentum=GENPTOLOR((mets[0]));
701 +    if (verbose_)     std::cout <<" METTC "<<     hbbInfo->calomet.metSig <<" " <<     hbbInfo->calomet.sumEt<<std::endl;
702 +  }
703 +
704 +  
705    edm::Handle<edm::View<pat::MET> > metPFHandle;
706    iEvent.getByLabel("patMETsPF",metPFHandle);
707    edm::View<pat::MET> metsPF = *metPFHandle;
708 <  for(edm::View<pat::MET>::const_iterator metPF = metsPF.begin(); metPF!=metsPF.end(); ++metPF){
709 <    hbbInfo->calomet.sumEt=metPF->sumEt();
710 <    hbbInfo->calomet.metSig=metPF->mEtSig();
711 <    hbbInfo->calomet.eLong=metPF->e_longitudinal();
712 <    hbbInfo->calomet.fourMomentum=GENPTOLORP(metPF);
708 >
709 >  if(metsPF.size()){
710 >    hbbInfo->pfmet.sumEt=(metsPF[0]).sumEt();
711 >    hbbInfo->pfmet.metSig=(metsPF[0]).mEtSig();
712 >    hbbInfo->pfmet.eLong=(metsPF[0]).e_longitudinal();
713 >    hbbInfo->pfmet.fourMomentum=GENPTOLOR((metsPF[0]));
714 >    if (verbose_)     std::cout <<" METTC "<<     hbbInfo->pfmet.metSig <<" " <<     hbbInfo->pfmet.sumEt<<std::endl;
715    }
716  
717  
718 +  if(verbose_){
719 +    std::cout << "METs: calomet "<<mets.size()<<" tcmet "<<metsTC.size()<<" pfmet "<<metsPF.size()<<std::endl;  
720 +  }
721 +
722 +  std::cout << " INPUT MUONS "<<muons.size()<<std::endl;
723  
724    for(edm::View<pat::Muon>::const_iterator mu = muons.begin(); mu!=muons.end(); ++mu){
725      VHbbEvent::MuonInfo mf;
# Line 732 | Line 753 | HbbAnalyzerNew::produce(edm::Event& iEve
753        const reco::HitPattern& q = gTrack->hitPattern();
754        mf.globChi2=gTrack.get()->normalizedChi2();
755        mf.globNHits=q.numberOfValidMuonHits();
756 +      mf. validMuStations = q. muonStationsWithValidHits();
757      }else{
758        mf.globChi2=-99;
759        mf.globNHits=-99;
760      }
761 +    //
762 +    // add stamuon
763 +
764 +    //    if (mu->isStandAloneMuon()) {
765 +    //      reco::TrackRef sta = mu->standAloneMuon();
766 +    //      
767 +    //    }
768 +
769  
770      //     int muInfo[12];
771      //     fillMuBlock(mu,  muInfo);
# Line 750 | Line 780 | HbbAnalyzerNew::produce(edm::Event& iEve
780      hbbInfo->muInfo.push_back(mf);
781    }
782  
783 <
783 >  std::cout << " INPUT electrons "<<electrons.size()<<std::endl;
784    for(edm::View<pat::Electron>::const_iterator elec = electrons.begin(); elec!=electrons.end(); ++elec){
785      VHbbEvent::ElectronInfo ef;
786      ef.fourMomentum=GENPTOLORP(elec);
# Line 763 | Line 793 | HbbAnalyzerNew::produce(edm::Event& iEve
793      ef.hIso=elec->hcalIso();
794      Geom::Phi<double> deltaphi(elec->superCluster()->phi()-atan2(hbbInfo->calomet.fourMomentum.Py(),hbbInfo->calomet.fourMomentum.Px()));
795      ef.acop = deltaphi.value();
796 <    
796 >    //
797 >    // fill eleids
798 >    //    
799 >    ef.id95 = elec->electronID("simpleEleId95cIso");
800 >    ef.id85 = elec->electronID("simpleEleId85cIso");
801 >    ef.id70 = elec->electronID("simpleEleId70cIso");
802 >    ef.id95r = elec->electronID("simpleEleId95relIso");
803 >    ef.id70r = elec->electronID("simpleEleId70relIso");
804 >    ef.id85r = elec->electronID("simpleEleId85relIso");
805 >
806      if(runOnMC_){
807        const GenParticle* elecMc = elec->genLepton();
808        if(elecMc!=0){
# Line 775 | Line 814 | HbbAnalyzerNew::produce(edm::Event& iEve
814      hbbInfo->eleInfo.push_back(ef);
815    }
816  
817 +
818 +  std::cout << " INPUT taus "<<taus.size()<<std::endl;
819    for(edm::View<pat::Tau>::const_iterator tau = taus.begin(); tau!=taus.end(); ++tau){
820      VHbbEvent::TauInfo tf;
821      tf.fourMomentum=GENPTOLORP(tau);
# Line 864 | Line 905 | HbbAnalyzerNew::produce(edm::Event& iEve
905          const reco::HitPattern& q = gTrack->hitPattern();
906          df.daughter1.globNHits=q.numberOfValidMuonHits();
907          df.daughter1.globChi2=gTrack.get()->normalizedChi2();
908 +        df.daughter1.validMuStations = q. muonStationsWithValidHits();
909        }
910        if(muonDau1.isGlobalMuon()){
911          TrackRef gTrack = muonDau1.globalTrack();
912          const reco::HitPattern& q = gTrack->hitPattern();
913          df.daughter2.globNHits=q.numberOfValidMuonHits();
914          df.daughter2.globChi2=gTrack.get()->normalizedChi2();
915 +        df.daughter2.validMuStations = q. muonStationsWithValidHits();
916        }
917    
918      }
# Line 902 | Line 945 | HbbAnalyzerNew::produce(edm::Event& iEve
945      df.daughter1.hIso = elecDau0.hcalIso();
946      df.daughter2.hIso = elecDau1.hcalIso();
947      
948 <    
948 >    // ids
949 >    df.daughter1.id95 = elecDau0.electronID("simpleEleId95cIso");
950 >    df.daughter1.id85 = elecDau0.electronID  ("simpleEleId85cIso");
951 >    df.daughter1.id70 = elecDau0.electronID  ("simpleEleId70cIso");
952 >    df.daughter1.id95r = elecDau0.electronID ("simpleEleId95relIso");
953 >    df.daughter1.id85r = elecDau0.electronID ("simpleEleId85relIso");
954 >    df.daughter1.id70r = elecDau0.electronID ("simpleEleId70relIso");
955 >
956 >
957 >    df.daughter2.id95 = elecDau1.electronID("simpleEleId95cIso");
958 >    df.daughter2.id85 = elecDau1.electronID  ("simpleEleId85cIso");
959 >    df.daughter2.id70 = elecDau1.electronID  ("simpleEleId70cIso");
960 >    df.daughter2.id95r = elecDau1.electronID ("simpleEleId95relIso");
961 >    df.daughter2.id85r = elecDau1.electronID ("simpleEleId85relIso");
962 >    df.daughter2.id70r = elecDau1.electronID ("simpleEleId70relIso");
963 >
964      hbbInfo->diElectronInfo.push_back(df);
965      
966    }
967 +   if (verbose_){
968 +     std::cout <<" Pushing hbbInfo "<<std::endl;
969 +     std::cout <<" SimpleJets1 = "<<hbbInfo->simpleJets.size()<<std::endl<<
970 +       " SimpleJets2 = "<<hbbInfo->simpleJets2.size()<<std::endl<<
971 +       " SubJets = "<<hbbInfo->subJets.size()<<std::endl<<
972 +       " HardJets = "<<hbbInfo->hardJets.size()<<std::endl<<
973 +       " Muons = "<<hbbInfo->muInfo.size()<<std::endl<<
974 +       " Electrons = "<<hbbInfo->eleInfo.size()<<std::endl<<
975 +       " Taus = "<<hbbInfo->tauInfo.size()<<std::endl<<
976 +       " Electrons = "<<hbbInfo->eleInfo.size()<<std::endl<<
977 +       "--------------------- "<<std::endl;
978 +  }
979 +
980 +
981    iEvent.put(hbbInfo);
982  
983 +
984   }
985    
986   void
# Line 941 | Line 1014 | void
1014   HbbAnalyzerNew::endJob() {
1015   }
1016  
1017 + TVector2 HbbAnalyzerNew::getTvect( const pat::Jet* patJet ){
1018 +
1019 +  TVector2 t_Vect(0,0);
1020 +  TVector2 null(0,0);
1021 +  TVector2 ci(0,0);
1022 +  TLorentzVector pi(0,0,0,0);
1023 +  TLorentzVector J(0,0,0,0);
1024 +  TVector2 r(0,0);
1025 +  double patJetpfcPt = 1e10;
1026 +  double r_mag = 1e10;
1027 +  unsigned int nOfconst = 0;
1028 +
1029 +
1030 +  if (patJet->isPFJet() == false) {
1031 +    return t_Vect;
1032 +  }
1033 +  
1034 +
1035 +  //re-reconstruct the jet direction with the charged tracks
1036 +  std::vector<reco::PFCandidatePtr>
1037 +    patJetpfc = patJet->getPFConstituents();
1038 +  for(size_t idx = 0; idx < patJetpfc.size(); idx++){
1039 +    if( patJetpfc.at(idx)->charge() != 0 ){
1040 +      pi.SetPtEtaPhiE( patJetpfc.at(idx)->pt(), patJetpfc.at(idx)->eta(), patJetpfc.at(idx)->phi(), patJetpfc.at(idx)->energy() );
1041 +      J += pi;
1042 +      nOfconst++;
1043 +    }
1044 +  }
1045 + // if there are less than two charged tracks do not calculate the pull (there is not enough info). It returns a null vector
1046 +
1047 +  if( nOfconst < 2 )
1048 +    return null;
1049 +  
1050 +
1051 +
1052 +  TVector2 v_J( J.Rapidity(), J.Phi() );
1053 + //calculate TVector using only charged tracks
1054 +  for(size_t idx = 0; idx < patJetpfc.size(); idx++){
1055 +    if( patJetpfc.at(idx)->charge() != 0  ){
1056 +      patJetpfcPt = patJetpfc.at(idx)->pt();
1057 +      pi.SetPtEtaPhiE( patJetpfc.at(idx)->pt(), patJetpfc.at(idx)->eta(), patJetpfc.at(idx)->phi(), patJetpfc.at(idx)->energy() );
1058 +      r.Set( pi.Rapidity() - J.Rapidity(), Geom::deltaPhi( patJetpfc.at(idx)->phi(), J.Phi() ) );
1059 +      r_mag = r.Mod();
1060 +      t_Vect += ( patJetpfcPt / J.Pt() ) * r_mag * r;
1061 +    }
1062 +  }
1063 +
1064 +  
1065 +  return t_Vect;
1066 +  
1067 + }
1068 +
1069 + TLorentzVector HbbAnalyzerNew::getChargedTracksMomentum(const pat::Jet* patJet ){
1070 +  //  return TLorentzVector();
1071 +  TLorentzVector pi(0,0,0,0);
1072 +  TLorentzVector v_j1(0,0,0,0);
1073 +
1074 +
1075 +  //  std::cout <<"fff ECCCCCCOOOOO "<<patJet->isPFJet()<<std::endl;
1076 +
1077 +  if (patJet->isPFJet() == false ){
1078 +      v_j1 = GENPTOLORP(patJet);
1079 +      return v_j1;
1080 +  }
1081 +  std::vector<reco::PFCandidatePtr>
1082 +    j1pfc = patJet->getPFConstituents();
1083 +  for(size_t idx = 0; idx < j1pfc.size(); idx++){
1084 +    if( j1pfc.at(idx)->charge() != 0 ){
1085 +      pi.SetPtEtaPhiE( j1pfc.at(idx)->pt(), j1pfc.at(idx)->eta(), j1pfc.at(idx)->phi(), j1pfc.at(idx)->energy() );
1086 +      v_j1 += pi;
1087 +    }
1088 +  }
1089 +  return v_j1;
1090 +  //re-
1091 + }
1092 +
1093   //define this as a plug-in
1094   DEFINE_FWK_MODULE(HbbAnalyzerNew);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines