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.13 by naodell, Fri Jul 23 12:45:32 2010 UTC vs.
Revision 1.15 by naodell, Tue Oct 12 19:03:10 2010 UTC

# Line 20 | Line 20
20   #include "Geometry/Records/interface/CaloGeometryRecord.h"
21   #include "DataFormats/Math/interface/deltaPhi.h"
22  
23 < // Jet and vertex functions
23 > // Libraries for objects
24   #include "DataFormats/JetReco/interface/CaloJet.h"
25   #include "DataFormats/JetReco/interface/CaloJetCollection.h"
26   #include "DataFormats/JetReco/interface/PFJet.h"
# Line 31 | Line 31
31   #include "DataFormats/VertexReco/interface/Vertex.h"
32   #include "DataFormats/VertexReco/interface/VertexFwd.h"
33   #include "DataFormats/BTauReco/interface/JetTag.h"
34 + #include "DataFormats/TrackReco/interface/Track.h"
35   //#include "RecoVertex/PrimaryVertexProducer/interface/VertexHigherPtSquared.h"
36  
37   //GenParticles
# Line 50 | Line 51
51  
52   //Root  stuff
53   #include "TROOT.h"
54 + #include "TH1.h"
55 + #include "TProfile.h"
56   #include "TFile.h"
57   #include "TTree.h"
58   #include "TString.h"
# Line 112 | Line 115 | class MPIntuple : public edm::EDAnalyzer
115    vector<string>  hlNames;
116    unsigned int triggerStatus;
117  
118 +  //Histograms
119 +  TH1F * h1_trackZ;
120 +  TProfile * p1_nVtcs;
121 +
122 +
123  
124   };
125  
# Line 158 | Line 166 | double MPIntuple::sumPtSquared(const Ver
166   void MPIntuple::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
167   {
168  
169 +
170    eventNumber  = iEvent.id().event();
171    runNumber    = iEvent.id().run();
172    lumiSection  = (unsigned int)iEvent.getLuminosityBlock().luminosityBlock();
# Line 180 | Line 189 | void MPIntuple::analyze(const edm::Event
189      const reco::JetTagCollection & bTags2 = *(bTagHandle2.product());
190      reco::JetTagCollection::const_iterator jet_it_2;
191  
192 +
193      const JetCorrector* correctorL2 = JetCorrector::getJetCorrector ("ak5PFL2Relative",iSetup);
194      const JetCorrector* correctorL3 = JetCorrector::getJetCorrector ("ak5PFL3Absolute",iSetup);
195  
# Line 191 | Line 201 | void MPIntuple::analyze(const edm::Event
201      for(PFJetCollection::const_iterator jet_iter = PFJets->begin(); jet_iter!= PFJets->end(); ++jet_iter){
202        
203        reco::PFJet myJet = reco::PFJet(*jet_iter);
194
195 //      float scale2 = correctorL2->correction(myJet);
196 //      float scale3 = correctorL3->correction(myJet);
197
204        if(myJet.et() > 5){
205  
206          for(jet_it_1 = bTags1.begin(); jet_it_1 != bTags1.end(); jet_it_1++) {
# Line 208 | Line 214 | void MPIntuple::analyze(const edm::Event
214          TCJet* jetCon = new ((*jet_ak5PF)[PFcount]) TCJet;
215        
216          jetCon->SetP4(myJet.px(), myJet.py(), myJet.pz(), myJet.energy());
217 <        jetCon->SetVtx(myJet.vx(), myJet.vy(), myJet.vz());
217 >        jetCon->SetVtx(-999.0, -999.0, -999.0);
218  
219          jetCon->SetChHadFrac(myJet.chargedHadronEnergyFraction());
220          jetCon->SetNeuHadFrac(myJet.neutralHadronEnergyFraction());
# Line 233 | Line 239 | void MPIntuple::analyze(const edm::Event
239          jetCon->SetJetCorr(2, scale2);
240          jetCon->SetJetCorr(3, scale3);
241  
242 +        //get associated tracks
243 +
244 +        const reco::TrackRefVector &tracks = myJet.getTrackRefs();
245 +
246 +        float sumTrackZ = 0;
247 +        float meanTrackZ = -999;
248 +        int nAssociatedTracks = 0;
249 +
250 +        if(myJet.pt() > 5){
251 +
252 +          for(TrackRefVector::const_iterator iTrack = tracks.begin(); iTrack != tracks.end(); ++iTrack){
253 +
254 +            const reco::Track& myTrack = **iTrack;
255 +
256 +            sumTrackZ += myTrack.vz();
257 +            ++nAssociatedTracks;
258 +
259 +          }
260 +
261 +          meanTrackZ = sumTrackZ/nAssociatedTracks;
262 +
263 +          for(TrackRefVector::const_iterator iTrack = tracks.begin(); iTrack != tracks.end(); ++iTrack){
264 +
265 +            const reco::Track& myTrack = **iTrack;
266 +
267 +            h1_trackZ->Fill(meanTrackZ - myTrack.vz());
268 +
269 +          }
270 +
271 +        }
272 +
273 +        jetCon->SetVtx(0, 0, meanTrackZ);
274 +
275          ++PFcount;
276        }      
277      }  
# Line 278 | Line 317 | void MPIntuple::analyze(const edm::Event
317      
318    }
319  
320 +  p1_nVtcs->Fill(runNumber, Vtxcount);
321  
322    if(triggerHLT_){
323  
# Line 314 | Line 354 | void MPIntuple::analyze(const edm::Event
354      }
355    }
356    //  cout<< "total status: "<<hex<<triggerStatus<<endl;
357 <  
358 <  if((PFcount > 3 || Gencount > 3) && Vtxcount > 0)  sTree -> Fill();
359 <  
357 >
358 >
359 >
360 >  if((PFcount > 3 || Gencount > 3) && Vtxcount > 0) sTree -> Fill();
361 >
362    jet_ak5PF->Clear();
363    primaryVtx->Clear();
364    jetP4_ak5Gen->Clear();
# Line 330 | Line 372 | void  MPIntuple::beginJob()
372    
373    ntupleFile           = new TFile(rootfilename.c_str(), "RECREATE");
374    sTree                = new TTree("mpiTree", "Tree for Jets");
375 <  
375 >
376 >  h1_trackZ            = new TH1F("h1_trackZ", "#Delta z for associated tracks", 50, -0.2, 0.2);
377 >  p1_nVtcs             = new TProfile("p1_nVtcs", "<N> per run", 5200.0, 132300.0, 137500.0, 0.0, 6.0);
378 >
379    jet_ak5PF            = new TClonesArray("TCJet");
380    jetP4_ak5Gen         = new TClonesArray("TLorentzVector");
381    primaryVtx           = new TClonesArray("TCPrimaryVtx");
382  
383 +
384    sTree->Branch("jet_ak5PF",&jet_ak5PF, 6400, 0);
385    sTree->Branch("jetP4_ak5Gen",&jetP4_ak5Gen, 6400, 0);
386    sTree->Branch("primaryVtx",&primaryVtx, 6400, 0);
# Line 351 | Line 397 | void  MPIntuple::beginJob()
397   // ------------ method called once each job just after ending the event loop  ------------
398   void MPIntuple::endJob()
399   {
400 +
401 +  h1_trackZ->Write();
402 +  p1_nVtcs->Write();
403 +
404    ntupleFile->Write();
405    ntupleFile->Close();
406  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines