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.8 by naodell, Fri Jun 11 23:01:47 2010 UTC vs.
Revision 1.11 by devildog, Fri Jul 9 17:09:10 2010 UTC

# Line 18 | Line 18
18   #include "FWCore/ParameterSet/interface/ParameterSet.h"
19   #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
20   #include "Geometry/Records/interface/CaloGeometryRecord.h"
21 + #include "DataFormats/Math/interface/deltaPhi.h"
22  
23   // Jet and vertex functions
24   #include "DataFormats/JetReco/interface/CaloJet.h"
# Line 30 | 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 "RecoVertex/PrimaryVertexProducer/interface/VertexHigherPtSquared.h"
35  
36 < #include "DataFormats/Math/interface/deltaPhi.h"
36 > //GenParticles
37 > #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
38  
39   // Need to get correctors
40   #include "JetMETCorrections/Objects/interface/JetCorrector.h"
# Line 77 | Line 80 | class MPIntuple : public edm::EDAnalyzer
80        virtual void endJob() ;
81  
82    bool triggerDecision(edm::Handle<edm::TriggerResults> &hltR, int iTrigger);
83 +  double sumPtSquared(const Vertex & v);
84  
85        // ----------member data ---------------------------
86  
# Line 84 | Line 88 | class MPIntuple : public edm::EDAnalyzer
88    edm::InputTag GenJetHandle_;
89    edm::InputTag PrimaryVtxHandle_;
90    edm::InputTag triggerResultsTag_;
91 <
91 >  edm::InputTag genParticles_;
92  
93    //  Counting variables   //
94  
# Line 95 | Line 99 | class MPIntuple : public edm::EDAnalyzer
99  
100    TClonesArray* jet_ak5PF;
101    TClonesArray* jetP4_ak5Gen;
102 +  TClonesArray* genParticleP4;
103    TClonesArray* primaryVtx;
104  
105    bool doGenJets_;
# Line 118 | Line 123 | MPIntuple::MPIntuple(const edm::Paramete
123    PFJetHandle_(iConfig.getUntrackedParameter<edm::InputTag>("PFJetTag")),
124    GenJetHandle_(iConfig.getUntrackedParameter<edm::InputTag>("GenJetTag")),
125    PrimaryVtxHandle_(iConfig.getUntrackedParameter<edm::InputTag>("PrimaryVtxTag")),
126 +  genParticles_(iConfig.getUntrackedParameter<edm::InputTag>("genParticleTag")),
127    doGenJets_(iConfig.getUntrackedParameter<bool>("doGenJets")),
128    doPFJets_(iConfig.getUntrackedParameter<bool>("doPFJets")),
129    triggerHLT_(iConfig.getUntrackedParameter<bool>("triggerHLT")),
# Line 125 | Line 131 | MPIntuple::MPIntuple(const edm::Paramete
131    hlTriggerResults_(iConfig.getUntrackedParameter<string>("HLTriggerResults","TriggerResults")),
132    hltName_(iConfig.getUntrackedParameter<string>("hltName","HLT"))
133   {
134 <  //edm::TriggerNames
129 <  // triggerNames(iConfig);
134 >
135  
136   }
137  
# Line 136 | Line 141 | MPIntuple::~MPIntuple()
141  
142   }
143  
144 + double MPIntuple::sumPtSquared(const Vertex & v)
145 + {
146 +  double sum = 0.;
147 +  double pT;
148 +  for (Vertex::trackRef_iterator it = v.tracks_begin(); it != v.tracks_end(); it++) {
149 +    pT = (**it).pt();
150 +    double epT=(**it).ptError(); pT=pT>epT ? pT-epT : 0;
151 +
152 +    sum += pT*pT;
153 +  }
154 +  return sum;
155 + }
156 +
157   //
158   // member functions
159   //
# Line 150 | Line 168 | void MPIntuple::analyze(const edm::Event
168    bunchCross   = (unsigned int)iEvent.bunchCrossing();
169    isRealData   = iEvent.isRealData();
170  
171 <  int PFcount  = 0;
172 <  int Gencount = 0;
173 <  int Vtxcount = 0;
171 >  int PFcount   = 0;
172 >  int Gencount  = 0;
173 >  int GenPcount = 0;
174 >  int Vtxcount  = 0;
175  
176    if(doPFJets_){
177  
# Line 219 | Line 238 | void MPIntuple::analyze(const edm::Event
238          jetCon->SetJetCorr(2, scale2);
239          jetCon->SetJetCorr(3, scale3);
240  
222 //if(( (lumiSection==666690) && (eventNumber==2439)) ||
223 //   ( (lumiSection==666702) && (eventNumber==3629)) ||
224 //   ( (lumiSection==666702) && (eventNumber==3681)) ||
225 //   ( (lumiSection==666709) && (eventNumber==4320)) ||
226 //   ( (lumiSection==666709) && (eventNumber==4328)) ||
227 //   ( (lumiSection==666724) && (eventNumber==5855)) ||
228 //   ( (lumiSection==666742) && (eventNumber==7642)) ||
229 //   ( (lumiSection==666754) && (eventNumber==8869)) ||
230 //   ( (lumiSection==666670) && (eventNumber==466)) ||
231 //   ( (lumiSection==666675) && (eventNumber==919)) ||
232 //   ( (lumiSection==666718) && (eventNumber==5235)))
233 //{
234 //      std::cout << runNumber << " " << lumiSection << "  " << eventNumber << "\n";
235 //      std::cout << "(" << myJet.pt() << "," << myJet.eta() << "," << myJet.phi() << ", [" << scale2 << ", " << scale3 << "]) " << std::endl;
236 //      std::cout << "(" << jetCon->Pt(3) << "," << jetCon->P4(3).Eta() << "," << jetCon->P4(3).Phi() << "," << ", [" << jetCon->JetCorr(2) << ", " <<  jetCon->JetCorr(3)  << "]) " << std::endl;
237 //}
238
239
241          ++PFcount;
242        }      
243      }  
244    }
245    
246 <  if(doGenJets_){
246 >  if(!isRealData){
247      
248 +    Handle<reco::GenParticleCollection > genpcoll;
249 +    iEvent.getByLabel(genParticles_, genpcoll);
250 +
251      Handle<reco::GenJetCollection> GenJets;
252      iEvent.getByLabel(GenJetHandle_, GenJets);
253      
# Line 260 | Line 264 | void MPIntuple::analyze(const edm::Event
264          
265        }
266      }
263  }
264
267  
268 +    for(reco::GenParticleCollection::const_iterator iGen = genpcoll->begin(); iGen!=genpcoll->end(); ++iGen) {
269 +    
270 +      reco::GenParticle p = reco::GenParticle(*iGen);
271 +            
272 +      new ((*genParticleP4)[GenPcount]) TLorentzVector(p.px(), p.py(), p.pz(), p.energy());
273 +    
274 +      ++GenPcount;
275 +
276 +    }
277 +    
278 +    
279 +  }
280 +  
281 +  
282    Handle<reco::VertexCollection> primaryVtcs;
283    iEvent.getByLabel(PrimaryVtxHandle_, primaryVtcs);
284 <
284 >  
285    for(VertexCollection::const_iterator vtx_iter = primaryVtcs->begin(); vtx_iter!= primaryVtcs->end(); ++vtx_iter){
286      
287      reco::Vertex myVtx = reco::Vertex(*vtx_iter);
288 <    
288 >    if(!myVtx.isValid() || myVtx.isFake()) continue;
289      TCPrimaryVtx* vtxCon = new ((*primaryVtx)[Vtxcount]) TCPrimaryVtx;
290        
291      vtxCon->SetPosition(myVtx.x(), myVtx.y(), myVtx.z());
292      vtxCon->SetNDof(myVtx.ndof());
293      vtxCon->SetChi2(myVtx.chi2());
294 <            
294 > //placeholders
295 > //    vtxCon->SetNTracks(myVtx.tracksSize());
296 > //    vtxCon->SetTracksSumPtSquared(sumPtSquared(*myVtx));
297 >    int test1 = myVtx.tracksSize();
298 >    double test2 = sumPtSquared(myVtx);
299      ++Vtxcount;
300      
301    }
# Line 292 | Line 312 | void MPIntuple::analyze(const edm::Event
312      const TriggerNames & triggerNames = iEvent.triggerNames(*hltR);
313      hlNames=triggerNames.triggerNames();
314      
315 <    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"};
315 >    string MPI_TriggerNames[] = {"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"};
316      
317      bool triggerPassed = false;
318      triggerStatus = 0x0;
# Line 335 | Line 355 | void  MPIntuple::beginJob()
355    
356    jet_ak5PF            = new TClonesArray("TCJet");
357    jetP4_ak5Gen         = new TClonesArray("TLorentzVector");
358 +  genParticleP4        = new TClonesArray("TLorentzVector");
359    primaryVtx           = new TClonesArray("TCPrimaryVtx");
360  
361    sTree->Branch("jet_ak5PF",&jet_ak5PF, 6400, 0);
362    sTree->Branch("jetP4_ak5Gen",&jetP4_ak5Gen, 6400, 0);
363 +  sTree->Branch("genParticleP4",&genParticleP4, 6400, 0);
364    sTree->Branch("primaryVtx",&primaryVtx, 6400, 0);
365  
366    sTree->Branch("eventNumber",&eventNumber, "eventNumber/I");

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines