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.7 by tboccali, Tue Jun 14 15:55:44 2011 UTC vs.
Revision 1.17 by arizzi, Wed Aug 10 13:35:43 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  
# Line 41 | Line 42 | HbbAnalyzerNew::HbbAnalyzerNew(const edm
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")) {
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 71 | 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 94 | 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 206 | 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 291 | Line 294 | HbbAnalyzerNew::produce(edm::Event& iEve
294    Handle<reco::VertexCollection> recVtxs;
295    iEvent.getByLabel("offlinePrimaryVertices", recVtxs);
296    
297 +  auxInfo->pvInfo.nVertices = recVtxs->size();
298 +
299    for(size_t i = 0; i < recVtxs->size(); ++ i) {
300      const Vertex &vtx = (*recVtxs)[i];
301      double RecVtxProb=TMath::Prob(vtx.chi2(),vtx.ndof());
# Line 303 | Line 308 | HbbAnalyzerNew::produce(edm::Event& iEve
308    const Vertex &RecVtx = (*recVtxs)[VtxIn];
309    const Vertex &RecVtxFirst = (*recVtxs)[0];
310    
311 <  hbbInfo->pvInfo.firstPVInPT2 = TVector3(RecVtxFirst.x(), RecVtxFirst.y(), RecVtxFirst.z());
312 <  hbbInfo->pvInfo.firstPVInProb = TVector3(RecVtx.x(), RecVtx.y(), RecVtx.z());
311 >  auxInfo->pvInfo.firstPVInPT2 = TVector3(RecVtxFirst.x(), RecVtxFirst.y(), RecVtxFirst.z());
312 >  auxInfo->pvInfo.firstPVInProb = TVector3(RecVtx.x(), RecVtx.y(), RecVtx.z());
313  
314      
315    edm::Handle<double> rhoHandle;
316 <  iEvent.getByLabel(edm::InputTag("kt6PFJets", "rho"),rhoHandle); // configure srcRho = cms.InputTag('kt6PFJets")
312 <  hbbInfo->puInfo.rho = *rhoHandle;
316 >  iEvent.getByLabel(edm::InputTag("kt6PFJets", "rho"),rhoHandle);   auxInfo->puInfo.rho = *rhoHandle;
317    
318    //// real start
319    
# Line 322 | Line 326 | HbbAnalyzerNew::produce(edm::Event& iEve
326    if(runOnMC_){
327      
328      int Hin=-99,Win=-99,Zin=-99,bin=-99,bbarin=-99;
325    
329      iEvent.getByLabel("genParticles", genParticles);
330      
331      for(size_t i = 0; i < genParticles->size(); ++ i) {
332 +      int Hin=-99,Win=-99,Zin=-99,bin=-99,bbarin=-99;
333 +      
334        const GenParticle & p = (*genParticles)[i];
335        int id = p.pdgId();
336        int st = p.status();  
337 <        
337 >      
338        if(id==25){
339 <          
339 >        
340          /*          int wh=0;
341                      int nMoth = p.numberOfMothers();
342                      for(size_t jj = 0; jj < nMoth; ++ jj) {
# Line 342 | Line 347 | HbbAnalyzerNew::produce(edm::Event& iEve
347                      if(abs(Wmomdau->pdgId())==24) wh++;
348                      }
349                      }
350 <                      
350 >                    
351                      if(wh==0) continue;
352          */
353 +        VHbbEventAuxInfo::ParticleMCInfo htemp;
354          Hin=i;
355 <        hbbInfo->mcH.status=st;
356 <        hbbInfo->mcH.charge=p.charge();
357 <        if(p.mother(0)!=0) hbbInfo->mcH.momid=p.mother(0)->pdgId();
358 <        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) hbbInfo->mcH.gmomid=p.mother(0)->mother(0)->pdgId();
359 <        hbbInfo->mcH.fourMomentum = GENPTOLOR(p);
355 >        htemp.status=st;
356 >        htemp.charge=p.charge();
357 >        if(p.mother(0)!=0) htemp.momid=p.mother(0)->pdgId();
358 >        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) htemp.gmomid=p.mother(0)->mother(0)->pdgId();
359 >        htemp.p4 = GENPTOLOR(p);
360            
361          int ndau = p.numberOfDaughters();
362          for(int j = 0; j < ndau; ++ j) {
363            const Candidate * Hdau = p.daughter( j );
364 <          hbbInfo->mcH.dauid.push_back(Hdau->pdgId());
365 <          hbbInfo->mcH.dauFourMomentum.push_back(GENPTOLORP(Hdau));
364 >          htemp.dauid.push_back(Hdau->pdgId());
365 >          htemp.dauFourMomentum.push_back(GENPTOLORP(Hdau));
366          }
367 +        (auxInfo->mcH).push_back(htemp);
368        }
369          
370          
371        if(abs(id)==24){
372            
373          Win=i;
374 <        hbbInfo->mcW.status=st;
375 <        hbbInfo->mcW.charge=p.charge();
376 <        if(p.mother(0)!=0) hbbInfo->mcW.momid=p.mother(0)->pdgId();
377 <        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) hbbInfo->mcW.gmomid=p.mother(0)->mother(0)->pdgId();
378 <        hbbInfo->mcW.fourMomentum=GENPTOLOR(p);
374 >        VHbbEventAuxInfo::ParticleMCInfo wtemp;
375 >        wtemp.status=st;
376 >        wtemp.charge=p.charge();
377 >        if(p.mother(0)!=0) wtemp.momid=p.mother(0)->pdgId();
378 >        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) wtemp.gmomid=p.mother(0)->mother(0)->pdgId();
379 >        wtemp.p4=GENPTOLOR(p);
380  
381          int ndau = p.numberOfDaughters();
382          for(int j = 0; j < ndau; ++ j) {
383            const Candidate * Wdau = p.daughter( j );
384 <          hbbInfo->mcW.dauid.push_back(Wdau->pdgId());
385 <          hbbInfo->mcW.dauFourMomentum.push_back(GENPTOLORP(Wdau));
384 >          wtemp.dauid.push_back(Wdau->pdgId());
385 >          wtemp.dauFourMomentum.push_back(GENPTOLORP(Wdau));
386          }
387 +        auxInfo->mcW.push_back(wtemp);
388        }
389          
390        if(abs(id)==23){
391  
392          Zin=i;
393 <        hbbInfo->mcZ.status=st;
394 <        hbbInfo->mcZ.charge=p.charge();
395 <        if(p.mother(0)!=0) hbbInfo->mcZ.momid=p.mother(0)->pdgId();
396 <        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) hbbInfo->mcZ.gmomid=p.mother(0)->mother(0)->pdgId();
397 <        hbbInfo->mcZ.fourMomentum=GENPTOLOR(p);
393 >        VHbbEventAuxInfo::ParticleMCInfo ztemp;
394 >        ztemp.status=st;
395 >        ztemp.charge=p.charge();
396 >        if(p.mother(0)!=0) ztemp.momid=p.mother(0)->pdgId();
397 >        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) ztemp.gmomid=p.mother(0)->mother(0)->pdgId();
398 >        ztemp.p4=GENPTOLOR(p);
399  
400          int ndau = p.numberOfDaughters();
401          for(int j = 0; j < ndau; ++ j) {
402            const Candidate * Zdau = p.daughter( j );
403 <          hbbInfo->mcZ.dauid.push_back(Zdau->pdgId());
404 <          hbbInfo->mcZ.dauFourMomentum.push_back(GENPTOLOR(p));
403 >          ztemp.dauid.push_back(Zdau->pdgId());
404 >          ztemp.dauFourMomentum.push_back(GENPTOLOR(p));
405          }
406 +        auxInfo->mcZ.push_back(ztemp);
407        }
408        //
409        // binfo
410        //
411 <
411 >      
412        
413        if(id==5){
414          bin=i;
415 <        hbbInfo->mcB.status=st;
416 <        hbbInfo->mcB.charge=p.charge();
417 <        if(p.mother(0)!=0) hbbInfo->mcB.momid=p.mother(0)->pdgId();
418 <        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) hbbInfo->mcB.gmomid=p.mother(0)->mother(0)->pdgId();
415 >        VHbbEventAuxInfo::ParticleMCInfo btemp;
416 >        btemp.status=st;
417 >        btemp.charge=p.charge();
418 >        if(p.mother(0)!=0) btemp.momid=p.mother(0)->pdgId();
419 >        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) btemp.gmomid=p.mother(0)->mother(0)->pdgId();
420 >        auxInfo->mcB.push_back(btemp);
421        }
422        
423        if(id==-5){
424          bbarin=i;
425 <        hbbInfo->mcBbar.status=st;
426 <        hbbInfo->mcBbar.charge=p.charge();
427 <        if(p.mother(0)!=0) hbbInfo->mcBbar.momid=p.mother(0)->pdgId();
428 <        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) hbbInfo->mcBbar.gmomid=p.mother(0)->mother(0)->pdgId();
429 <      }
425 >        VHbbEventAuxInfo::ParticleMCInfo bbtemp;
426 >        
427 >        bbtemp.status=st;
428 >        bbtemp.charge=p.charge();
429 >        if(p.mother(0)!=0) bbtemp.momid=p.mother(0)->pdgId();
430 >        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) bbtemp.gmomid=p.mother(0)->mother(0)->pdgId();
431 >        auxInfo->mcBbar.push_back(bbtemp);
432 >     }
433        
434        if(abs(id)==4){
435 <        hbbInfo->mcC.status=st;
436 <        hbbInfo->mcC.charge=p.charge();
437 <        if(p.mother(0)!=0) hbbInfo->mcC.momid=p.mother(0)->pdgId();
438 <        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) hbbInfo->mcC.gmomid=p.mother(0)->mother(0)->pdgId();
435 >        VHbbEventAuxInfo::ParticleMCInfo ctemp;
436 >        ctemp.status=st;
437 >        ctemp.charge=p.charge();
438 >        if(p.mother(0)!=0) ctemp.momid=p.mother(0)->pdgId();
439 >        if(p.mother(0)!=0 && p.mother(0)->mother(0)!=0) ctemp.gmomid=p.mother(0)->mother(0)->pdgId();
440 >        auxInfo->mcC.push_back(ctemp);  
441        }
442 <
443 <
426 <    }
427 <
428 <
429 <    if(bin!=-99 && bbarin!=-99){
442 >    
443 >      if(bin!=-99 && bbarin!=-99){
444        const Candidate & bGen = (*genParticles)[bin];
445        const Candidate & bbarGen = (*genParticles)[bbarin];
446 <      hbbInfo->mcB.fourMomentum=GENPTOLOR(bGen);
447 <      hbbInfo->mcBbar.fourMomentum=GENPTOLOR(bbarGen);
446 >      ((auxInfo->mcB).back()).p4=GENPTOLOR(bGen);
447 >     ((auxInfo->mcBbar).back()).p4=GENPTOLOR(bbarGen);
448        
449        int nHDaubdau = bGen.numberOfDaughters();
450        for(int j = 0; j < nHDaubdau; ++ j) {
451          const Candidate * Bdau = bGen.daughter( j );
452 <        hbbInfo->mcB.dauid.push_back(Bdau->pdgId());
453 <        hbbInfo->mcB.dauFourMomentum.push_back(GENPTOLORP(Bdau));
452 >        ((auxInfo->mcB).back()).dauid.push_back(Bdau->pdgId());
453 >        ((auxInfo->mcB).back()).dauFourMomentum.push_back(GENPTOLORP(Bdau));
454        }
455        int nHDaubbardau = bbarGen.numberOfDaughters();
456        for(int j = 0; j < nHDaubbardau; ++ j) {
457          const Candidate * Bbardau = bbarGen.daughter( j );
458 <        hbbInfo->mcBbar.dauid.push_back(Bbardau->pdgId());
459 <        hbbInfo->mcBbar.dauFourMomentum.push_back(GENPTOLORP(Bbardau));
458 >        ((auxInfo->mcBbar).back()).dauid.push_back(Bbardau->pdgId());
459 >        ((auxInfo->mcBbar).back()).dauFourMomentum.push_back(GENPTOLORP(Bbardau));
460        }
461 <
462 <  
461 >      
462 >    }
463  
464      }
465  
# Line 526 | Line 540 | HbbAnalyzerNew::produce(edm::Event& iEve
540      sj.csvmva=jet_iter->bDiscriminator("combinedSecondaryVertexMVABJetTags");
541      sj.charge=jet_iter->jetCharge();
542      sj.ntracks=jet_iter->associatedTracks().size();
543 <    sj.fourMomentum=GENPTOLORP(jet_iter);
543 >    sj.p4=GENPTOLORP(jet_iter);
544      sj.chargedTracksFourMomentum=(getChargedTracksMomentum(&*(jet_iter)));
545      
546      //
# Line 568 | Line 582 | HbbAnalyzerNew::produce(edm::Event& iEve
582      sj.csvmva=jet_iter->bDiscriminator("combinedSecondaryVertexMVABJetTags");
583      sj.charge=jet_iter->jetCharge();
584      sj.ntracks=jet_iter->associatedTracks().size();
585 <    sj.fourMomentum=GENPTOLORP(jet_iter);
585 >    sj.p4=GENPTOLORP(jet_iter);
586      sj.chargedTracksFourMomentum=(getChargedTracksMomentum(&*(jet_iter)));
587      sj.tVector = getTvect(&(*jet_iter));
588  
# Line 622 | Line 636 | HbbAnalyzerNew::produce(edm::Event& iEve
636      //    if(printJet) {std::cout << "NsubJets: " << constituents.size() << "\n";}
637      VHbbEvent::HardJet hj;
638      hj.constituents=constituents.size();
639 <    hj.fourMomentum =GENPTOLORP(jet_iter);
639 >    hj.p4 =GENPTOLORP(jet_iter);
640  
641      for (unsigned int iJC(0); iJC<constituents.size(); ++iJC ){
642        Jet::Constituent icandJet = constituents[iJC];
# Line 668 | Line 682 | HbbAnalyzerNew::produce(edm::Event& iEve
682      sj.csvmva=subjet_iter->bDiscriminator("combinedSecondaryVertexMVABJetTags");
683      sj.charge=subjet_iter->jetCharge();
684      sj.ntracks=subjet_iter->associatedTracks().size();
685 <    sj.fourMomentum=GENPTOLORP(subjet_iter);
686 <    sj.fourMomentum=(getChargedTracksMomentum(&*(subjet_iter)));
685 >    sj.p4=GENPTOLORP(subjet_iter);
686 >    sj.p4=(getChargedTracksMomentum(&*(subjet_iter)));
687      hbbInfo->subJets.push_back(sj);
688  
689    }
# Line 679 | Line 693 | HbbAnalyzerNew::produce(edm::Event& iEve
693    // met is calomet
694    //
695  
682
683  for(edm::View<pat::MET>::const_iterator met = mets.begin(); met!=mets.end(); ++met){
684    hbbInfo->calomet.sumEt=met->sumEt();
685    hbbInfo->calomet.metSig=met->mEtSig();
686    hbbInfo->calomet.eLong=met->e_longitudinal();
687    hbbInfo->calomet.fourMomentum=GENPTOLORP(met);
688  }
689
696    edm::Handle<edm::View<pat::MET> > metTCHandle;
697    iEvent.getByLabel("patMETsTC",metTCHandle);
698    edm::View<pat::MET> metsTC = *metTCHandle;
699 <  for(edm::View<pat::MET>::const_iterator metTC = metsTC.begin(); metTC!=metsTC.end(); ++metTC){
700 <    hbbInfo->calomet.sumEt=metTC->sumEt();
701 <    hbbInfo->calomet.metSig=metTC->mEtSig();
702 <    hbbInfo->calomet.eLong=metTC->e_longitudinal();
703 <    hbbInfo->calomet.fourMomentum=GENPTOLORP(metTC);
699 >  if(metsTC.size()){
700 >    hbbInfo->tcmet.sumEt=(metsTC[0]).sumEt();
701 >    hbbInfo->tcmet.metSig=(metsTC[0]).mEtSig();
702 >    hbbInfo->tcmet.eLong=(metsTC[0]).e_longitudinal();
703 >    hbbInfo->tcmet.p4=GENPTOLOR((metsTC[0]));
704 >    if (verbose_)     std::cout <<" METTC "<<     hbbInfo->tcmet.metSig <<" " <<     hbbInfo->tcmet.sumEt<<std::endl;
705 >  }
706 >  
707 >  if(mets.size()){
708 >    hbbInfo->calomet.sumEt=(mets[0]).sumEt();
709 >    hbbInfo->calomet.metSig=(mets[0]).mEtSig();
710 >    hbbInfo->calomet.eLong=(mets[0]).e_longitudinal();
711 >    hbbInfo->calomet.p4=GENPTOLOR((mets[0]));
712 >    if (verbose_)     std::cout <<" METTC "<<     hbbInfo->calomet.metSig <<" " <<     hbbInfo->calomet.sumEt<<std::endl;
713    }
714 +
715 +  
716    edm::Handle<edm::View<pat::MET> > metPFHandle;
717    iEvent.getByLabel("patMETsPF",metPFHandle);
718    edm::View<pat::MET> metsPF = *metPFHandle;
719 <  for(edm::View<pat::MET>::const_iterator metPF = metsPF.begin(); metPF!=metsPF.end(); ++metPF){
720 <    hbbInfo->calomet.sumEt=metPF->sumEt();
721 <    hbbInfo->calomet.metSig=metPF->mEtSig();
722 <    hbbInfo->calomet.eLong=metPF->e_longitudinal();
723 <    hbbInfo->calomet.fourMomentum=GENPTOLORP(metPF);
719 >
720 >  if(metsPF.size()){
721 >    hbbInfo->pfmet.sumEt=(metsPF[0]).sumEt();
722 >    hbbInfo->pfmet.metSig=(metsPF[0]).mEtSig();
723 >    hbbInfo->pfmet.eLong=(metsPF[0]).e_longitudinal();
724 >    hbbInfo->pfmet.p4=GENPTOLOR((metsPF[0]));
725 >    if (verbose_)     std::cout <<" METTC "<<     hbbInfo->pfmet.metSig <<" " <<     hbbInfo->pfmet.sumEt<<std::endl;
726    }
727  
728  
729 +  if(verbose_){
730 +    std::cout << "METs: calomet "<<mets.size()<<" tcmet "<<metsTC.size()<<" pfmet "<<metsPF.size()<<std::endl;  
731 +  }
732 +
733 +  std::cout << " INPUT MUONS "<<muons.size()<<std::endl;
734  
735    for(edm::View<pat::Muon>::const_iterator mu = muons.begin(); mu!=muons.end(); ++mu){
736      VHbbEvent::MuonInfo mf;
737 <    mf.fourMomentum =GENPTOLORP( mu);
737 >    mf.p4 =GENPTOLORP( mu);
738      mf.charge=mu->charge();
739      mf.tIso=mu->trackIso();
740      mf.eIso=mu->ecalIso();
741      mf.hIso=mu->hcalIso();
742 <    Geom::Phi<double> deltaphi(mu->phi()-atan2(mf.fourMomentum.Px(), mf.fourMomentum.Py()));
742 >    mf.pfChaIso=mu->chargedHadronIso();
743 >    mf.pfPhoIso=mu->photonIso();
744 >    mf.pfNeuIso=mu->neutralHadronIso();
745 >    Geom::Phi<double> deltaphi(mu->phi()-atan2(mf.p4.Px(), mf.p4.Py()));
746      double acop = deltaphi.value();
747      mf.acop=acop;
748  
# Line 740 | Line 767 | HbbAnalyzerNew::produce(edm::Event& iEve
767        const reco::HitPattern& q = gTrack->hitPattern();
768        mf.globChi2=gTrack.get()->normalizedChi2();
769        mf.globNHits=q.numberOfValidMuonHits();
770 +      mf. validMuStations = q. muonStationsWithValidHits();
771      }else{
772        mf.globChi2=-99;
773        mf.globNHits=-99;
774      }
775 +    //
776 +    // add stamuon
777 +
778 +    //    if (mu->isStandAloneMuon()) {
779 +    //      reco::TrackRef sta = mu->standAloneMuon();
780 +    //      
781 +    //    }
782 +
783  
784      //     int muInfo[12];
785      //     fillMuBlock(mu,  muInfo);
# Line 758 | Line 794 | HbbAnalyzerNew::produce(edm::Event& iEve
794      hbbInfo->muInfo.push_back(mf);
795    }
796  
797 <
797 >  std::cout << " INPUT electrons "<<electrons.size()<<std::endl;
798    for(edm::View<pat::Electron>::const_iterator elec = electrons.begin(); elec!=electrons.end(); ++elec){
799      VHbbEvent::ElectronInfo ef;
800 <    ef.fourMomentum=GENPTOLORP(elec);
800 >    ef.p4=GENPTOLORP(elec);
801      ef.scEta =elec->superCluster()->eta();
802      ef.scPhi =elec->superCluster()->phi();
803      //    if(ElecEta[eleccont]!=0) ElecEt[eleccont]=elec->superCluster()->energy()/cosh(elec->superCluster()->eta());
# Line 769 | Line 805 | HbbAnalyzerNew::produce(edm::Event& iEve
805      ef.tIso=elec->trackIso();
806      ef.eIso=elec->ecalIso();
807      ef.hIso=elec->hcalIso();
808 <    Geom::Phi<double> deltaphi(elec->superCluster()->phi()-atan2(hbbInfo->calomet.fourMomentum.Py(),hbbInfo->calomet.fourMomentum.Px()));
808 >    ef.pfChaIso=elec->chargedHadronIso();
809 >    ef.pfPhoIso=elec->photonIso();
810 >    ef.pfNeuIso=elec->neutralHadronIso();
811 >
812 >    Geom::Phi<double> deltaphi(elec->superCluster()->phi()-atan2(hbbInfo->calomet.p4.Py(),hbbInfo->calomet.p4.Px()));
813      ef.acop = deltaphi.value();
814 <    
814 >    //
815 >    // fill eleids
816 >    //    
817 > /*    ef.id95 = elec->electronID("simpleEleId95cIso");
818 >    ef.id85 = elec->electronID("simpleEleId85cIso");
819 >    ef.id70 = elec->electronID("simpleEleId70cIso");
820 >    ef.id95r = elec->electronID("simpleEleId95relIso");
821 >    ef.id70r = elec->electronID("simpleEleId70relIso");
822 >    ef.id85r = elec->electronID("simpleEleId85relIso");
823 > */
824 >    ef.id95 =elec->electronID("eidVBTFCom95");
825 >    ef.id95r=elec->electronID("eidVBTFRel95");
826 >    ef.id85 =elec->electronID("eidVBTFCom85");
827 >    ef.id85r=elec->electronID("eidVBTFRel85");
828 >    ef.id80 =elec->electronID("eidVBTFCom80");
829 >    ef.id80r=elec->electronID("eidVBTFRel80");
830 >    ef.id70 =elec->electronID("eidVBTFCom70");
831 >    ef.id70r=elec->electronID("eidVBTFRel70");
832 >
833      if(runOnMC_){
834        const GenParticle* elecMc = elec->genLepton();
835        if(elecMc!=0){
# Line 783 | Line 841 | HbbAnalyzerNew::produce(edm::Event& iEve
841      hbbInfo->eleInfo.push_back(ef);
842    }
843  
844 +
845 +  std::cout << " INPUT taus "<<taus.size()<<std::endl;
846    for(edm::View<pat::Tau>::const_iterator tau = taus.begin(); tau!=taus.end(); ++tau){
847      VHbbEvent::TauInfo tf;
848 <    tf.fourMomentum=GENPTOLORP(tau);
848 >    tf.p4=GENPTOLORP(tau);
849      tf.charge=tau->charge();
850      tf.tIso=tau->trackIso();
851      tf.eIso=tau->ecalIso();
852      tf.hIso=tau->hcalIso();
853 <    Geom::Phi<double> deltaphi(tau->phi()-atan2(hbbInfo->calomet.fourMomentum.Py(),hbbInfo->calomet.fourMomentum.Px()));
853 >    Geom::Phi<double> deltaphi(tau->phi()-atan2(hbbInfo->calomet.p4.Py(),hbbInfo->calomet.p4.Px()));
854      double acop = deltaphi.value();
855      tf.acop=acop;
856      tf.idbyIso=tau->tauID("byIsolation");
# Line 809 | Line 869 | HbbAnalyzerNew::produce(edm::Event& iEve
869    for( size_t i = 0; i < dimuons->size(); i++ ) {
870      VHbbEvent::DiMuonInfo df;
871      const Candidate & dimuonCand = (*dimuons)[ i ];
872 <    df.fourMomentum= GENPTOLOR(dimuonCand);
872 >    df.p4= GENPTOLOR(dimuonCand);
873      const Candidate * lep0 = dimuonCand.daughter( 0 );
874      const Candidate * lep1 = dimuonCand.daughter( 1 );
875      // needed to access specific methods of pat::Muon
876      const pat::Muon & muonDau0 = dynamic_cast<const pat::Muon &>(*lep0->masterClone());
877      const pat::Muon & muonDau1 = dynamic_cast<const pat::Muon &>(*lep1->masterClone());
878      
879 <    df.daughter1.fourMomentum=GENPTOLOR(muonDau0);
880 <    df.daughter2.fourMomentum=GENPTOLOR(muonDau1);
879 >    df.daughter1.p4=GENPTOLOR(muonDau0);
880 >    df.daughter2.p4=GENPTOLOR(muonDau1);
881      
882      df.daughter1.tIso= muonDau0.trackIso();
883      df.daughter2.tIso= muonDau1.trackIso();
# Line 872 | Line 932 | HbbAnalyzerNew::produce(edm::Event& iEve
932          const reco::HitPattern& q = gTrack->hitPattern();
933          df.daughter1.globNHits=q.numberOfValidMuonHits();
934          df.daughter1.globChi2=gTrack.get()->normalizedChi2();
935 +        df.daughter1.validMuStations = q. muonStationsWithValidHits();
936        }
937        if(muonDau1.isGlobalMuon()){
938          TrackRef gTrack = muonDau1.globalTrack();
939          const reco::HitPattern& q = gTrack->hitPattern();
940          df.daughter2.globNHits=q.numberOfValidMuonHits();
941          df.daughter2.globChi2=gTrack.get()->normalizedChi2();
942 +        df.daughter2.validMuStations = q. muonStationsWithValidHits();
943        }
944    
945      }
# Line 889 | Line 951 | HbbAnalyzerNew::produce(edm::Event& iEve
951      VHbbEvent::DiElectronInfo df;
952      const Candidate & dielecCand = (*dielectrons)[ i ];
953  
954 <    df.fourMomentum=GENPTOLOR(dielecCand);
954 >    df.p4=GENPTOLOR(dielecCand);
955  
956      // accessing the daughters of the dimuon candidate
957      const Candidate * lep0 = dielecCand.daughter( 0 );
# Line 898 | Line 960 | HbbAnalyzerNew::produce(edm::Event& iEve
960      const pat::Electron & elecDau0 = dynamic_cast<const pat::Electron &>(*lep0->masterClone());
961      const pat::Electron & elecDau1 = dynamic_cast<const pat::Electron &>(*lep1->masterClone());
962  
963 <    df.daughter1.fourMomentum = GENPTOLOR(elecDau0);
964 <    df.daughter2.fourMomentum = GENPTOLOR(elecDau1);
963 >    df.daughter1.p4 = GENPTOLOR(elecDau0);
964 >    df.daughter2.p4= GENPTOLOR(elecDau1);
965  
966      df.daughter1.tIso = elecDau0.trackIso();
967      df.daughter2.tIso = elecDau1.trackIso();
# Line 910 | Line 972 | HbbAnalyzerNew::produce(edm::Event& iEve
972      df.daughter1.hIso = elecDau0.hcalIso();
973      df.daughter2.hIso = elecDau1.hcalIso();
974      
975 <    
975 >    // ids
976 >    /*df.daughter1.id95 = elecDau0.electronID("simpleEleId95cIso");
977 >    df.daughter1.id85 = elecDau0.electronID  ("simpleEleId85cIso");
978 >    df.daughter1.id70 = elecDau0.electronID  ("simpleEleId70cIso");
979 >    df.daughter1.id95r = elecDau0.electronID ("simpleEleId95relIso");
980 >    df.daughter1.id85r = elecDau0.electronID ("simpleEleId85relIso");
981 >    df.daughter1.id70r = elecDau0.electronID ("simpleEleId70relIso");
982 >
983 >
984 >    df.daughter2.id95 = elecDau1.electronID("simpleEleId95cIso");
985 >    df.daughter2.id85 = elecDau1.electronID  ("simpleEleId85cIso");
986 >    df.daughter2.id70 = elecDau1.electronID  ("simpleEleId70cIso");
987 >    df.daughter2.id95r = elecDau1.electronID ("simpleEleId95relIso");
988 >    df.daughter2.id85r = elecDau1.electronID ("simpleEleId85relIso");
989 >    df.daughter2.id70r = elecDau1.electronID ("simpleEleId70relIso");
990 > */
991      hbbInfo->diElectronInfo.push_back(df);
992      
993    }
994 +   if (verbose_){
995 +     std::cout <<" Pushing hbbInfo "<<std::endl;
996 +     std::cout <<" SimpleJets1 = "<<hbbInfo->simpleJets.size()<<std::endl<<
997 +       " SimpleJets2 = "<<hbbInfo->simpleJets2.size()<<std::endl<<
998 +       " SubJets = "<<hbbInfo->subJets.size()<<std::endl<<
999 +       " HardJets = "<<hbbInfo->hardJets.size()<<std::endl<<
1000 +       " Muons = "<<hbbInfo->muInfo.size()<<std::endl<<
1001 +       " Electrons = "<<hbbInfo->eleInfo.size()<<std::endl<<
1002 +       " Taus = "<<hbbInfo->tauInfo.size()<<std::endl<<
1003 +       " Electrons = "<<hbbInfo->eleInfo.size()<<std::endl<<
1004 +       "--------------------- "<<std::endl;
1005 +  }
1006 +
1007 +
1008    iEvent.put(hbbInfo);
1009 +  iEvent.put(auxInfo);
1010 +
1011  
1012   }
1013    

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines