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

Comparing UserCode/MPIAnalyzer/src/MPIntuple.cc (file contents):
Revision 1.2 by andrey, Fri May 21 22:30:38 2010 UTC vs.
Revision 1.7 by naodell, Sat May 29 05:20:11 2010 UTC

# Line 1 | Line 1
1 /*
2 Description: <one line class summary>
3
4 Implementation:
5     n-tuple creator for jet studies
6 */
7 //
1   // Original Author:  "Nathaniel Odell"
2   // Secondary Author: Steven Won
3   // With contributions from: Andrey Pozdnyakov
4   //         Created:  Thurs April 22  2010
5   // $Id$
13 //
14 //
15
6  
7   // system include files
8   #include <memory>
# Line 25 | Line 15
15   #include "FWCore/Framework/interface/EventSetup.h"
16   #include "FWCore/Framework/interface/Event.h"
17   #include "FWCore/Framework/interface/MakerMacros.h"
28
18   #include "FWCore/ParameterSet/interface/ParameterSet.h"
30
19   #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
20   #include "Geometry/Records/interface/CaloGeometryRecord.h"
21  
22 + // Jet and vertex functions
23   #include "DataFormats/JetReco/interface/CaloJet.h"
24   #include "DataFormats/JetReco/interface/CaloJetCollection.h"
25   #include "DataFormats/JetReco/interface/PFJet.h"
# Line 40 | Line 29
29   #include "DataFormats/JetReco/interface/Jet.h"
30   #include "DataFormats/VertexReco/interface/Vertex.h"
31   #include "DataFormats/VertexReco/interface/VertexFwd.h"
32 + #include "DataFormats/BTauReco/interface/JetTag.h"
33 +
34 + #include "DataFormats/Math/interface/deltaPhi.h"
35 +
36 + // Need to get correctors
37 + #include "JetMETCorrections/Objects/interface/JetCorrector.h"
38 +
39 + // ntuple storage classes
40 + #include "TCJet.h"
41 + #include "TCPrimaryVtx.h"
42  
43   // Need for HLT trigger info:
44   #include "FWCore/Common/interface/TriggerNames.h"
45   #include "DataFormats/Common/interface/TriggerResults.h"
46   #include "HLTrigger/HLTcore/interface/HLTConfigProvider.h"
48 //
47  
48 + //Root  stuff
49   #include "TROOT.h"
50   #include "TFile.h"
51   #include "TTree.h"
# Line 82 | Line 81 | class MPIntuple : public edm::EDAnalyzer
81        // ----------member data ---------------------------
82  
83    edm::InputTag PFJetHandle_;
85  edm::InputTag CaloJetHandle_;
86  edm::InputTag PFJetHandle_corr;
87  edm::InputTag CaloJetHandle_corr;
84    edm::InputTag GenJetHandle_;
85    edm::InputTag PrimaryVtxHandle_;
86 +  edm::InputTag triggerResultsTag_;
87  
88  
89    //  Counting variables   //
90  
91    int eventNumber, runNumber, lumiSection;
92  
93 <  TTree *sTree;
93 >  TTree* sTree;
94    TFile* ntupleFile;
95  
96 <  TClonesArray* jetP4_ak5PF;
100 <  TClonesArray* jetP4_ak5PF_corr;
101 <  TClonesArray* jetVtx3_ak5PF;
102 <  TClonesArray* jetVtx3_ak5PF_corr;
103 <  TClonesArray* jetP4_ak5Calo;
104 <  TClonesArray* jetP4_ak5Calo_corr;
105 <  TClonesArray* jetVtx3_ak5Calo;
106 <  TClonesArray* jetVtx3_ak5Calo_corr;
96 >  TClonesArray* jet_ak5PF;
97    TClonesArray* jetP4_ak5Gen;
98 <  TClonesArray* jetVtx3_ak5Gen;
109 <  TClonesArray* PrimaryVtx3;
98 >  TClonesArray* primaryVtx;
99  
100    bool doGenJets_;
112  bool doCaloJets_;
101    bool doPFJets_;
102 +  bool triggerHLT_;
103  
104    string rootfilename;
105  
106    //Triggers
107 <  std::string hlTriggerResults_;
108 <  edm::TriggerNames triggerNames;
120 <  std::string hltName_;
121 <  std::string  triggerName_;
107 >  string hlTriggerResults_, hltName_, triggerName_;
108 >  TriggerNames triggerNames;
109    HLTConfigProvider hltConfig_;
110 <  edm::InputTag triggerResultsTag_;
111 <  std::vector<std::string>  hlNames;
110 >  vector<string>  hlNames;
111 >  unsigned int triggerStatus;
112  
113  
114   };
# Line 129 | Line 116 | class MPIntuple : public edm::EDAnalyzer
116   MPIntuple::MPIntuple(const edm::ParameterSet& iConfig):
117  
118    PFJetHandle_(iConfig.getUntrackedParameter<edm::InputTag>("PFJetTag")),
132  CaloJetHandle_(iConfig.getUntrackedParameter<edm::InputTag>("CaloJetTag")),
133  PFJetHandle_corr(iConfig.getUntrackedParameter<edm::InputTag>("PFJetTag_corr")),
134  CaloJetHandle_corr(iConfig.getUntrackedParameter<edm::InputTag>("CaloJetTag_corr")),
119    GenJetHandle_(iConfig.getUntrackedParameter<edm::InputTag>("GenJetTag")),
120    PrimaryVtxHandle_(iConfig.getUntrackedParameter<edm::InputTag>("PrimaryVtxTag")),
121    doGenJets_(iConfig.getUntrackedParameter<bool>("doGenJets")),
138  doCaloJets_(iConfig.getUntrackedParameter<bool>("doCaloJets")),
122    doPFJets_(iConfig.getUntrackedParameter<bool>("doPFJets")),
123 +  triggerHLT_(iConfig.getUntrackedParameter<bool>("triggerHLT")),
124    rootfilename(iConfig.getUntrackedParameter<string>("rootfilename")),
125    hlTriggerResults_(iConfig.getUntrackedParameter<string>("HLTriggerResults","TriggerResults")),
126    hltName_(iConfig.getUntrackedParameter<string>("hltName","HLT"))
# Line 152 | Line 136 | MPIntuple::~MPIntuple()
136  
137   }
138  
155
139   //
140   // member functions
141   //
# Line 161 | Line 144 | MPIntuple::~MPIntuple()
144   void MPIntuple::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
145   {
146  
147 <  eventNumber = iEvent.id().event();
148 <  runNumber   = iEvent.id().run();
147 >  eventNumber  = iEvent.id().event();
148 >  runNumber    = iEvent.id().run();
149    lumiSection  = (unsigned int)iEvent.getLuminosityBlock().luminosityBlock();
150 +  //  isMC = iEvent.???();
151    
152 <  int PFcount = 0;
169 <  int Calocount = 0;
170 <  int PFcount_corr = 0;
171 <  int Calocount_corr = 0;
152 >  int PFcount  = 0;
153    int Gencount = 0;
154    int Vtxcount = 0;
155  
156    if(doPFJets_){
157 <    
157 >
158 >    edm::Handle<reco::JetTagCollection> bTagHandle1;
159 >    iEvent.getByLabel("trackCountingHighEffBJetTags", bTagHandle1);
160 >    const reco::JetTagCollection & bTags1 = *(bTagHandle1.product());
161 >    reco::JetTagCollection::const_iterator jet_it_1;
162 >
163 >    edm::Handle<reco::JetTagCollection> bTagHandle2;
164 >    iEvent.getByLabel("trackCountingHighPurBJetTags", bTagHandle2);
165 >    const reco::JetTagCollection & bTags2 = *(bTagHandle2.product());
166 >    reco::JetTagCollection::const_iterator jet_it_2;
167 >
168 >    const JetCorrector* correctorL2 = JetCorrector::getJetCorrector ("ak5PFL2Relative",iSetup);
169 >    const JetCorrector* correctorL3 = JetCorrector::getJetCorrector ("ak5PFL3Absolute",iSetup);
170 >
171      Handle<reco::PFJetCollection> PFJets;
172      iEvent.getByLabel(PFJetHandle_, PFJets);
173      
# Line 182 | Line 176 | void MPIntuple::analyze(const edm::Event
176      for(PFJetCollection::const_iterator jet_iter = PFJets->begin(); jet_iter!= PFJets->end(); ++jet_iter){
177        
178        reco::PFJet myJet = reco::PFJet(*jet_iter);
179 <      
179 >
180 > //      float scale2 = correctorL2->correction(myJet);
181 > //      float scale3 = correctorL3->correction(myJet);
182 >
183        if(myJet.et() > 5){
184 <        
185 <        new ((*jetP4_ak5PF)[PFcount]) TLorentzVector(myJet.px(), myJet.py(), myJet.pz(), myJet.energy());
186 <        new ((*jetVtx3_ak5PF)[PFcount]) TVector3(myJet.vx(), myJet.vy(), myJet.vz());
187 <        
184 >
185 >        for(jet_it_1 = bTags1.begin(); jet_it_1 != bTags1.end(); jet_it_1++) {
186 >           if( (fabs(jet_it_1->first->eta() - myJet.eta()) < .005) && (deltaPhi(jet_it_1->first->phi(),myJet.phi()) < .005)) break;
187 >        }
188 >
189 >        for(jet_it_2 = bTags2.begin(); jet_it_2 != bTags2.end(); jet_it_2++) {
190 >           if( (fabs(jet_it_2->first->eta() - myJet.eta()) < .005) && (deltaPhi(jet_it_2->first->phi(),myJet.phi()) < .005)) break;
191 >        }
192 >                
193 >        TCJet* jetCon = new ((*jet_ak5PF)[PFcount]) TCJet;
194 >      
195 >        jetCon->SetP4(myJet.px(), myJet.py(), myJet.pz(), myJet.energy());
196 >        jetCon->SetVtx(myJet.vx(), myJet.vy(), myJet.vz());
197 >
198 >        jetCon->SetChHadFrac(myJet.chargedHadronEnergyFraction());
199 >        jetCon->SetNeuHadFrac(myJet.neutralHadronEnergyFraction());
200 >        jetCon->SetChEmFrac(myJet.chargedEmEnergyFraction());
201 >        jetCon->SetNeuEmFrac(myJet.neutralEmEnergyFraction());
202 >
203 >        jetCon->SetNumConstit(myJet.chargedMultiplicity() + myJet.neutralMultiplicity());
204 >        jetCon->SetNumChPart(myJet.chargedMultiplicity());
205 >
206 >        jetCon->SetNumChPart(myJet.chargedMultiplicity());
207 >
208 >        if(jet_it_2 != bTags2.end()) jetCon->SetBDiscrTrkCountHiPure(jet_it_2->second);
209 >        if(jet_it_1 != bTags1.end()) jetCon->SetBDiscrTrkCountHiEff(jet_it_1->second);
210 >
211 >        float scale2 = correctorL2->correction(myJet);
212 >        myJet.scaleEnergy(scale2);
213 >        float scale3 = correctorL3->correction(myJet);
214 >        myJet.scaleEnergy(scale3);
215 >
216 >        //more corrections?
217 >
218 >        jetCon->SetJetCorr(2, scale2);
219 >        jetCon->SetJetCorr(3, scale3);
220 >
221 > //if(( (lumiSection==666690) && (eventNumber==2439)) ||
222 > //   ( (lumiSection==666702) && (eventNumber==3629)) ||
223 > //   ( (lumiSection==666702) && (eventNumber==3681)) ||
224 > //   ( (lumiSection==666709) && (eventNumber==4320)) ||
225 > //   ( (lumiSection==666709) && (eventNumber==4328)) ||
226 > //   ( (lumiSection==666724) && (eventNumber==5855)) ||
227 > //   ( (lumiSection==666742) && (eventNumber==7642)) ||
228 > //   ( (lumiSection==666754) && (eventNumber==8869)) ||
229 > //   ( (lumiSection==666670) && (eventNumber==466)) ||
230 > //   ( (lumiSection==666675) && (eventNumber==919)) ||
231 > //   ( (lumiSection==666718) && (eventNumber==5235)))
232 > //{
233 > //      std::cout << runNumber << " " << lumiSection << "  " << eventNumber << "\n";
234 > //      std::cout << "(" << myJet.pt() << "," << myJet.eta() << "," << myJet.phi() << ", [" << scale2 << ", " << scale3 << "]) " << std::endl;
235 > //      std::cout << "(" << jetCon->Pt(3) << "," << jetCon->P4(3).Eta() << "," << jetCon->P4(3).Phi() << "," << ", [" << jetCon->JetCorr(2) << ", " <<  jetCon->JetCorr(3)  << "]) " << std::endl;
236 > //}
237 >
238 >
239          ++PFcount;
240 <      }
241 <      
194 <    }
195 <    
196 <    
197 <    PFcount_corr = 0;
198 <    
199 <    Handle<reco::PFJetCollection> PFJets_corr;
200 <    iEvent.getByLabel(PFJetHandle_corr, PFJets_corr);
201 <    
202 <    for(PFJetCollection::const_iterator jet_iter = PFJets_corr->begin(); jet_iter!= PFJets_corr->end(); ++jet_iter){
203 <      
204 <      reco::PFJet myJet = reco::PFJet(*jet_iter);
205 <      
206 <      if(myJet.et() > 5){
207 <        
208 <        new ((*jetP4_ak5PF_corr)[PFcount_corr]) TLorentzVector(myJet.px(), myJet.py(), myJet.pz(), myJet.energy());
209 <        new ((*jetVtx3_ak5PF_corr)[PFcount_corr]) TVector3(myJet.vx(), myJet.vy(), myJet.vz());
210 <        
211 <        ++PFcount_corr;
212 <      }
213 <    }
214 <  }
215 <  
216 <  if(doCaloJets_){
217 <    
218 <    Calocount = 0;
219 <    
220 <    Handle<reco::CaloJetCollection> CaloJets;
221 <    iEvent.getByLabel(CaloJetHandle_, CaloJets);
222 <    
223 <    for(CaloJetCollection::const_iterator jet_iter = CaloJets->begin(); jet_iter!= CaloJets->end(); ++jet_iter){
224 <      
225 <      reco::CaloJet myJet = reco::CaloJet(*jet_iter);
226 <      
227 <      if(myJet.et() > 5){
228 <        
229 <        new ((*jetP4_ak5Calo)[Calocount]) TLorentzVector(myJet.px(), myJet.py(), myJet.pz(), myJet.energy());
230 <        new ((*jetVtx3_ak5Calo)[Calocount]) TVector3(myJet.vx(), myJet.vy(), myJet.vz());
231 <        
232 <        ++Calocount;
233 <        
234 <      }
235 <    }
236 <    
237 <    Handle<reco::CaloJetCollection> CaloJets_corr;
238 <    iEvent.getByLabel(CaloJetHandle_corr, CaloJets_corr);
239 <    
240 <    Calocount_corr = 0;
241 <    
242 <    for(CaloJetCollection::const_iterator jet_iter = CaloJets_corr->begin(); jet_iter!= CaloJets_corr->end(); ++jet_iter){
243 <      
244 <      reco::CaloJet myJet = reco::CaloJet(*jet_iter);
245 <      
246 <      if(myJet.et() > 5){
247 <        
248 <        new ((*jetP4_ak5Calo_corr)[Calocount_corr]) TLorentzVector(myJet.px(), myJet.py(), myJet.pz(), myJet.energy());
249 <        new ((*jetVtx3_ak5Calo_corr)[Calocount_corr]) TVector3(myJet.vx(), myJet.vy(), myJet.vz());
250 <        
251 <        ++Calocount_corr;
252 <      }
253 <    }
240 >      }      
241 >    }  
242    }
243    
244    if(doGenJets_){
# Line 263 | Line 251 | void MPIntuple::analyze(const edm::Event
251        
252        reco::GenJet myJet = reco::GenJet(*jet_iter);
253        
254 <      if(myJet.et() > 5){
254 >      if(myJet.pt() > 5){
255          
256          new ((*jetP4_ak5Gen)[Gencount]) TLorentzVector(myJet.px(), myJet.py(), myJet.pz(), myJet.energy());
269        new ((*jetVtx3_ak5Gen)[Gencount]) TVector3(myJet.vx(), myJet.vy(), myJet.vz());
257          
258          ++Gencount;
259          
260        }
261      }
262    }
276  
277  
278  Handle<reco::VertexCollection> primaryVtx;
279  iEvent.getByLabel(PrimaryVtxHandle_, primaryVtx);
263  
264 <  for(VertexCollection::const_iterator vtx_iter = primaryVtx->begin(); vtx_iter!= primaryVtx->end(); ++vtx_iter){
264 >
265 >  Handle<reco::VertexCollection> primaryVtcs;
266 >  iEvent.getByLabel(PrimaryVtxHandle_, primaryVtcs);
267 >
268 >  for(VertexCollection::const_iterator vtx_iter = primaryVtcs->begin(); vtx_iter!= primaryVtcs->end(); ++vtx_iter){
269      
270      reco::Vertex myVtx = reco::Vertex(*vtx_iter);
271      
272 <    new ((*PrimaryVtx3)[Vtxcount]) TVector3(myVtx.x(), myVtx.y(), myVtx.z());
273 <    
272 >    TCPrimaryVtx* vtxCon = new ((*primaryVtx)[Vtxcount]) TCPrimaryVtx;
273 >      
274 >    vtxCon->SetPosition(myVtx.x(), myVtx.y(), myVtx.z());
275 >    vtxCon->SetNDof(myVtx.ndof());
276 >    vtxCon->SetChi2(myVtx.chi2());
277 >            
278      ++Vtxcount;
279      
280    }
290  
291  
292  if(Calocount > 0 || Calocount_corr >0 || PFcount_corr > 0 || PFcount > 0 || Gencount > 0)  sTree -> Fill();
281  
294  jetP4_ak5PF->Clear();
295  jetP4_ak5PF_corr->Clear();
296  jetVtx3_ak5PF->Clear();
297  jetP4_ak5Calo->Clear();
298  jetP4_ak5Calo_corr->Clear();
299  jetVtx3_ak5Calo->Clear();
300  jetP4_ak5Gen->Clear();
301  jetVtx3_ak5Gen->Clear();
302  
282  
283 +  if(triggerHLT_){
284  
285 <  //----------  Filling HLT trigger bits!  ------------
285 >    //----------  Filling HLT trigger bits!  ------------
286  
287 <  edm::Handle<TriggerResults> hltR;
288 <  triggerResultsTag_ = InputTag(hlTriggerResults_,"",hltName_);
289 <  iEvent.getByLabel(triggerResultsTag_,hltR);
290 <  const edm::TriggerNames & triggerNames = iEvent.triggerNames(*hltR);
291 <  hlNames=triggerNames.triggerNames();
292 <  bool triggerPassed = false;
293 <  
294 <  for (uint iT=0; iT<hlNames.size(); ++iT)
295 <    {
296 <      triggerPassed = triggerDecision(hltR, iT);
297 <      cout<<"trigger name: "<<hlNames[iT]<<"  status: "<<triggerPassed<<endl;
287 >    edm::Handle<TriggerResults> hltR;
288 >    triggerResultsTag_ = InputTag(hlTriggerResults_,"",hltName_);
289 >    iEvent.getByLabel(triggerResultsTag_,hltR);
290 >    
291 >    const TriggerNames & triggerNames = iEvent.triggerNames(*hltR);
292 >    hlNames=triggerNames.triggerNames();
293 >    
294 >    string MPI_TriggerNames[32] = {"HLT_PixelTracks_Multiplicity70", "HLT_MinBiasBSC_NoBPTX", "HLT_PixelTracks_Multiplicity40","HLT_L1Tech_HCAL_HF", "HLT_IsoTrackHB_8E29", "HLT_IsoTrackHE_8E29", "HLT_L1Tech_RPC_TTU_RBst1_collisions", "HLT_L1_BscMinBiasOR_BptxPlusORMinus", "HLT_L1Tech_BSC_halo_forPhysicsBackground", "HLT_L1Tech_BSC_HighMultiplicity", "HLT_MinBiasPixel_DoubleIsoTrack5", "HLT_MinBiasPixel_DoubleTrack", "HLT_MinBiasPixel_SingleTrack", "HLT_ZeroBiasPixel_SingleTrack", "HLT_MinBiasBSC", "HLT_StoppedHSCP_8E29", "HLT_Jet15U_HcalNoiseFiltered", "HLT_QuadJet15U", "HLT_DiJetAve30U_8E29", "HLT_DiJetAve15U_8E29", "HLT_FwdJet20U", "HLT_Jet50U", "HLT_Jet30U", "HLT_Jet15U", "HLT_BTagMu_Jet10U", "HLT_DoubleJet15U_ForwardBackward", "HLT_BTagIP_Jet50U", "HLT_DoubleLooseIsoTau15", "HLT_SingleLooseIsoTau20", "HLT_HT100U", "HLT_MET100", "HLT_MET45"};
295 >    
296 >    bool triggerPassed = false;
297 >    triggerStatus = 0x0;
298 >    
299 >    for (uint i=0; i<hlNames.size(); ++i) {
300        
301 <      // ----------->> Fill them Here! <<----------------------
302 <    }
303 <  //----------         ------------------   ---------------  
304 <
305 <
301 >      triggerPassed = triggerDecision(hltR, i);
302 >      
303 >      if(triggerPassed){
304 >        
305 >        for (uint j = 0; j != 32; ++j){
306 >          
307 >          if (hlNames[i] == MPI_TriggerNames[j])
308 >            {
309 >              //            cout<<"trigger name: "<<hlNames[i]<<"list: "<<dec<<j+1<<endl;
310 >              triggerStatus |= 0x01 << j;
311 >              
312 >            }
313 >        }
314 >      }
315 >    }
316 >  }
317 >  //  cout<< "total status: "<<hex<<triggerStatus<<endl;
318 >  
319 >  if(PFcount > 0 || Gencount > 0 || Vtxcount > 0);  sTree -> Fill();
320 >  
321 >  jet_ak5PF->Clear();
322 >  primaryVtx->Clear();
323 >  jetP4_ak5Gen->Clear();
324  
325   }
326  
# Line 330 | Line 330 | void  MPIntuple::beginJob()
330   {
331    
332    ntupleFile           = new TFile(rootfilename.c_str(), "RECREATE");
333 <  sTree                = new TTree("dpsTree", "Tree for Jets");
333 >  sTree                = new TTree("mpiTree", "Tree for Jets");
334    
335 <  jetP4_ak5PF          = new TClonesArray("TLorentzVector");
336 <  jetVtx3_ak5PF        = new TClonesArray("TVector3");
337 <  jetP4_ak5Calo        = new TClonesArray("TLorentzVector");
338 <  jetVtx3_ak5Calo      = new TClonesArray("TVector3");
339 <  jetP4_ak5PF_corr     = new TClonesArray("TLorentzVector");
340 <  jetVtx3_ak5PF_corr   = new TClonesArray("TVector3");
341 <  jetP4_ak5Calo_corr   = new TClonesArray("TLorentzVector");
342 <  jetVtx3_ak5Calo_corr = new TClonesArray("TVector3");
335 >  jet_ak5PF            = new TClonesArray("TCJet");
336    jetP4_ak5Gen         = new TClonesArray("TLorentzVector");
337 <  jetVtx3_ak5Gen       = new TClonesArray("TVector3");
345 <  PrimaryVtx3          = new TClonesArray("TVector3");
337 >  primaryVtx           = new TClonesArray("TCPrimaryVtx");
338  
339 <  sTree->Branch("jetP4_ak5PF",&jetP4_ak5PF, 6400, 0);
348 <  sTree->Branch("jetP4_ak5PF_corr",&jetP4_ak5PF_corr, 6400, 0);
349 <  sTree->Branch("jetVtx3_ak5PF",&jetVtx3_ak5PF, 6400, 0);
350 <  sTree->Branch("jetVtx3_ak5PF_corr",&jetVtx3_ak5PF, 6400, 0);
351 <  sTree->Branch("jetP4_ak5Calo",&jetP4_ak5Calo, 6400, 0);
352 <  sTree->Branch("jetP4_ak5Calo_corr",&jetP4_ak5Calo_corr, 6400, 0);
353 <  sTree->Branch("jetVtx3_ak5Calo",&jetVtx3_ak5Calo, 6400, 0);
354 <  sTree->Branch("jetVtx3_ak5Calo_corr",&jetVtx3_ak5Calo, 6400, 0);
339 >  sTree->Branch("jet_ak5PF",&jet_ak5PF, 6400, 0);
340    sTree->Branch("jetP4_ak5Gen",&jetP4_ak5Gen, 6400, 0);
341 <  sTree->Branch("jetVtx3_ak5Gen",&jetVtx3_ak5Gen, 6400, 0);
357 <  sTree->Branch("PrimaryVtx",&PrimaryVtx3, 6400, 0);
341 >  sTree->Branch("primaryVtx",&primaryVtx, 6400, 0);
342  
343    sTree->Branch("eventNumber",&eventNumber, "eventNumber/I");
344    sTree->Branch("runNumber",&runNumber, "runNumber/I");
345    sTree->Branch("lumiSection",&lumiSection, "lumiSection/I");
346 +  sTree->Branch("triggerStatus",&triggerStatus, "triggerStatus/i");
347 +  //  sTree->Branch("isMC",&isMC,"isMC/O");
348 +
349  
350   }
351  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines