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.7 by naodell, Sat May 29 05:20:11 2010 UTC vs.
Revision 1.13 by naodell, Fri Jul 23 12:45:32 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_;
87
88
91    //  Counting variables   //
92  
93 <  int eventNumber, runNumber, lumiSection;
93 >  int eventNumber, runNumber, lumiSection, bunchCross;
94  
95    TTree* sTree;
96    TFile* ntupleFile;
# Line 100 | Line 102 | class MPIntuple : public edm::EDAnalyzer
102    bool doGenJets_;
103    bool doPFJets_;
104    bool triggerHLT_;
105 <
105 >  bool isRealData;
106    string rootfilename;
107  
108    //Triggers
# Line 125 | Line 127 | MPIntuple::MPIntuple(const edm::Paramete
127    hlTriggerResults_(iConfig.getUntrackedParameter<string>("HLTriggerResults","TriggerResults")),
128    hltName_(iConfig.getUntrackedParameter<string>("hltName","HLT"))
129   {
130 <  //edm::TriggerNames
129 <  // triggerNames(iConfig);
130 >
131  
132   }
133  
# Line 136 | Line 137 | MPIntuple::~MPIntuple()
137  
138   }
139  
140 + double MPIntuple::sumPtSquared(const Vertex & v)
141 + {
142 +  double sum = 0.;
143 +  double pT;
144 +  for (Vertex::trackRef_iterator it = v.tracks_begin(); it != v.tracks_end(); it++) {
145 +    pT = (**it).pt();
146 +    double epT=(**it).ptError(); pT=pT>epT ? pT-epT : 0;
147 +
148 +    sum += pT*pT;
149 +  }
150 +  return sum;
151 + }
152 +
153   //
154   // member functions
155   //
# Line 147 | Line 161 | void MPIntuple::analyze(const edm::Event
161    eventNumber  = iEvent.id().event();
162    runNumber    = iEvent.id().run();
163    lumiSection  = (unsigned int)iEvent.getLuminosityBlock().luminosityBlock();
164 <  //  isMC = iEvent.???();
165 <  
166 <  int PFcount  = 0;
167 <  int Gencount = 0;
168 <  int Vtxcount = 0;
164 >  bunchCross   = (unsigned int)iEvent.bunchCrossing();
165 >  isRealData   = iEvent.isRealData();
166 >
167 >  int PFcount   = 0;
168 >  int Gencount  = 0;
169 >  int Vtxcount  = 0;
170  
171    if(doPFJets_){
172  
# Line 218 | Line 233 | void MPIntuple::analyze(const edm::Event
233          jetCon->SetJetCorr(2, scale2);
234          jetCon->SetJetCorr(3, scale3);
235  
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
236          ++PFcount;
237        }      
238      }  
239    }
240    
241 <  if(doGenJets_){
241 >  if(!isRealData){
242      
243 +
244      Handle<reco::GenJetCollection> GenJets;
245      iEvent.getByLabel(GenJetHandle_, GenJets);
246      
# Line 258 | Line 256 | void MPIntuple::analyze(const edm::Event
256          ++Gencount;
257          
258        }
259 <    }
259 >    }    
260    }
261 <
262 <
261 >  
262 >  
263    Handle<reco::VertexCollection> primaryVtcs;
264    iEvent.getByLabel(PrimaryVtxHandle_, primaryVtcs);
265 <
265 >  
266    for(VertexCollection::const_iterator vtx_iter = primaryVtcs->begin(); vtx_iter!= primaryVtcs->end(); ++vtx_iter){
267      
268      reco::Vertex myVtx = reco::Vertex(*vtx_iter);
269 <    
269 >    if(!myVtx.isValid() || myVtx.isFake()) continue;
270      TCPrimaryVtx* vtxCon = new ((*primaryVtx)[Vtxcount]) TCPrimaryVtx;
271        
272      vtxCon->SetPosition(myVtx.x(), myVtx.y(), myVtx.z());
273      vtxCon->SetNDof(myVtx.ndof());
274      vtxCon->SetChi2(myVtx.chi2());
275 <            
275 >    vtxCon->SetNTrks(myVtx.tracksSize());
276 >    vtxCon->SetSumPt2Trks(sumPtSquared(myVtx));
277      ++Vtxcount;
278      
279    }
# Line 291 | Line 290 | void MPIntuple::analyze(const edm::Event
290      const TriggerNames & triggerNames = iEvent.triggerNames(*hltR);
291      hlNames=triggerNames.triggerNames();
292      
293 <    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"};
293 >    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"};
294      
295      bool triggerPassed = false;
296      triggerStatus = 0x0;
# Line 316 | Line 315 | void MPIntuple::analyze(const edm::Event
315    }
316    //  cout<< "total status: "<<hex<<triggerStatus<<endl;
317    
318 <  if(PFcount > 0 || Gencount > 0 || Vtxcount > 0);  sTree -> Fill();
318 >  if((PFcount > 3 || Gencount > 3) && Vtxcount > 0)  sTree -> Fill();
319    
320    jet_ak5PF->Clear();
321    primaryVtx->Clear();
# Line 344 | Line 343 | void  MPIntuple::beginJob()
343    sTree->Branch("runNumber",&runNumber, "runNumber/I");
344    sTree->Branch("lumiSection",&lumiSection, "lumiSection/I");
345    sTree->Branch("triggerStatus",&triggerStatus, "triggerStatus/i");
346 <  //  sTree->Branch("isMC",&isMC,"isMC/O");
347 <
346 >  sTree->Branch("isRealData",&isRealData, "isRealData/i");
347 >  sTree->Branch("bunchCross",&bunchCross, "bunchCross/i");
348  
349   }
350  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines