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

Comparing UserCode/CmsHi/JetAnalysis/src/RecHitComparison.cc (file contents):
Revision 1.2 by yilmaz, Mon Oct 18 16:13:37 2010 UTC vs.
Revision 1.10 by yilmaz, Wed Mar 30 21:21:10 2011 UTC

# Line 48 | Line 48
48   #include "FWCore/Utilities/interface/InputTag.h"
49   #include "DataFormats/HeavyIonEvent/interface/CentralityBins.h"
50   #include "DataFormats/CaloTowers/interface/CaloTower.h"
51 < #include "DataFormats/HeavyIonEvent/interface/Centrality.h"
51 > #include "DataFormats/HeavyIonEvent/interface/CentralityProvider.h"
52   #include "SimDataFormats/HiGenData/interface/GenHIEvent.h"
53   #include "DataFormats/PatCandidates/interface/Jet.h"
54   #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
55   #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
56   #include "DataFormats/HcalDetId/interface/HcalDetId.h"
57  
58 + #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
59 +
60   #include "TNtuple.h"
61  
62   using namespace std;
# Line 75 | Line 77 | class RecHitComparison : public edm::EDA
77        virtual void endJob() ;
78  
79        // ----------member data ---------------------------
78
79
80   edm::Handle<reco::Centrality> cent;
80     edm::Handle<vector<double> > ktRhos;
81     edm::Handle<vector<double> > akRhos;
82  
# Line 91 | Line 90 | class RecHitComparison : public edm::EDA
90    edm::Handle<HBHERecHitCollection> hbheHits1;
91    edm::Handle<HBHERecHitCollection> hbheHits2;
92  
93 +   edm::Handle<reco::BasicClusterCollection> bClusters1;
94 +   edm::Handle<reco::BasicClusterCollection> bClusters2;
95 +
96 +
97     typedef vector<EcalRecHit>::const_iterator EcalIterator;
98    typedef vector<HFRecHit>::const_iterator HFIterator;
99    typedef vector<HBHERecHit>::const_iterator HBHEIterator;
# Line 106 | Line 109 | class RecHitComparison : public edm::EDA
109    edm::InputTag EESrc1_;
110    edm::InputTag EESrc2_;
111  
112 +   edm::InputTag BCSrc1_;
113 +   edm::InputTag BCSrc2_;
114 +
115 +   edm::InputTag signalTag_;
116 +
117 +   TNtuple* ntBC;
118     TNtuple* ntEB;
119    TNtuple* ntEE;
120    TNtuple* ntHBHE;
# Line 113 | Line 122 | class RecHitComparison : public edm::EDA
122     TNtuple* ntjet;
123  
124     double cone;
125 +   bool jetsOnly_;
126 +   bool doBasicClusters_;
127 +  bool doJetCone_;
128  
129     edm::Service<TFileService> fs;
130 <   const CentralityBins * cbins_;
130 >   CentralityProvider* centrality_;
131     const CaloGeometry *geo;
132   };
133  
# Line 131 | Line 143 | class RecHitComparison : public edm::EDA
143   // constructors and destructor
144   //
145   RecHitComparison::RecHitComparison(const edm::ParameterSet& iConfig) :
146 <   cbins_(0),
146 >   centrality_(0),
147     geo(0),
148     cone(0.5)
149   {
150     //now do what ever initialization is needed
151 +   jetsOnly_ = iConfig.getUntrackedParameter<bool>("jetsOnly",false);
152 +   doBasicClusters_ = iConfig.getUntrackedParameter<bool>("doBasicClusters",false);
153 +
154 +   doJetCone_ = iConfig.getUntrackedParameter<bool>("doJetCone",false);
155 +   signalTag_ = iConfig.getUntrackedParameter<edm::InputTag>("signalJets",edm::InputTag("iterativeCone5CaloJets","","SIGNAL"));
156 +
157 +   if(!doJetCone_) jetsOnly_ = 0;
158 +
159    HcalRecHitHFSrc1_ = iConfig.getUntrackedParameter<edm::InputTag>("hcalHFRecHitSrc1",edm::InputTag("hfreco"));
160    HcalRecHitHFSrc2_ = iConfig.getUntrackedParameter<edm::InputTag>("hcalHFRecHitSrc2",edm::InputTag("hfreco"));
161    HcalRecHitHBHESrc1_ = iConfig.getUntrackedParameter<edm::InputTag>("hcalHBHERecHitSrc1",edm::InputTag("hbhereco"));
162    HcalRecHitHBHESrc2_ = iConfig.getUntrackedParameter<edm::InputTag>("hcalHBHERecHitSrc2",edm::InputTag("hbhereco"));
163 <  EBSrc1_ = iConfig.getUntrackedParameter<edm::InputTag>("EBRecHitSrc1",edm::InputTag("ecalRecHit","EcalRecHitsEB","RECO"));
164 <  EBSrc2_ = iConfig.getUntrackedParameter<edm::InputTag>("EBRecHitSrc2",edm::InputTag("ecalRecHit","EcalRecHitsEB","SIGNALONLY"));
163 >  EBSrc1_ = iConfig.getUntrackedParameter<edm::InputTag>("EBRecHitSrc1",edm::InputTag("ecalRecHit","EcalRecHitsEB","RECOBKG"));
164 >  EBSrc2_ = iConfig.getUntrackedParameter<edm::InputTag>("EBRecHitSrc2",edm::InputTag("ecalRecHit","EcalRecHitsEB","S"));
165    EESrc1_ = iConfig.getUntrackedParameter<edm::InputTag>("EERecHitSrc1",edm::InputTag("ecalRecHit","EcalRecHitsEE","RECO"));
166    EESrc2_ = iConfig.getUntrackedParameter<edm::InputTag>("EERecHitSrc2",edm::InputTag("ecalRecHit","EcalRecHitsEE","SIGNALONLY"));
167 +  BCSrc1_ = iConfig.getUntrackedParameter<edm::InputTag>("BasicClusterSrc1",edm::InputTag("ecalRecHit","EcalRecHitsEB","RECO"));
168 +  BCSrc2_ = iConfig.getUntrackedParameter<edm::InputTag>("BasicClusterSrc2",edm::InputTag("ecalRecHit","EcalRecHitsEB","SIGNALONLY"));
169  
170   }
171  
# Line 165 | Line 187 | RecHitComparison::~RecHitComparison()
187   void
188   RecHitComparison::analyze(const edm::Event& ev, const edm::EventSetup& iSetup)
189   {
190 <
169 <   if(!cbins_) cbins_ = getCentralityBinsFromDB(iSetup);
190 >   if(!centrality_) centrality_ = new CentralityProvider(iSetup);
191     if(!geo){
192        edm::ESHandle<CaloGeometry> pGeo;
193        iSetup.get<CaloGeometryRecord>().get(pGeo);
194        geo = pGeo.product();
195     }
196  
176   edm::InputTag signalTag("iterativeConePu5CaloJets","","SIGNALONLY");
177   edm::InputTag centTag("hiCentrality","","RECO");
178
197     using namespace edm;
180
181   ev.getByLabel(centTag,cent);
198     ev.getByLabel(EBSrc1_,ebHits1);
199 <   ev.getByLabel(EBSrc1_,ebHits2);
200 <   ev.getByLabel(signalTag,signalJets);
199 >   ev.getByLabel(EBSrc2_,ebHits2);
200 >
201 >   if(doJetCone_) ev.getByLabel(signalTag_,signalJets);
202  
203     ev.getByLabel(HcalRecHitHFSrc1_,hfHits1);
204     ev.getByLabel(HcalRecHitHFSrc2_,hfHits2);
205     ev.getByLabel(HcalRecHitHBHESrc1_,hbheHits1);
206     ev.getByLabel(HcalRecHitHBHESrc2_,hbheHits2);
190
207     ev.getByLabel(EESrc1_,eeHits1);
208     ev.getByLabel(EESrc2_,eeHits2);
209  
210 <   double hf = cent->EtHFhitSum();
211 <   double sumet = cent->EtMidRapiditySum();
212 <   int run = ev.id().run();
213 <   run = 1;
214 <   int bin = cbins_->getBin(hf);
215 <   int margin = 0;
210 >   if(doBasicClusters_){
211 >      ev.getByLabel(BCSrc1_,bClusters1);
212 >      ev.getByLabel(BCSrc2_,bClusters2);
213 >   }
214 >
215 >   centrality_->newEvent(ev,iSetup);
216 >
217 >   double hf = centrality_->centralityValue();
218 >   int bin = centrality_->getBin();
219  
220     vector<double> fFull;
221     vector<double> f05;
# Line 206 | Line 225 | RecHitComparison::analyze(const edm::Eve
225     vector<double> f25;
226     vector<double> f3;
227  
228 <   int njets = signalJets->size();
228 >   int njets = 0;
229 >
230 >   if(doJetCone_) njets = signalJets->size();
231     fFull.reserve(njets);
232     f05.reserve(njets);
233     f1.reserve(njets);
# Line 215 | Line 236 | RecHitComparison::analyze(const edm::Eve
236     f25.reserve(njets);
237     f3.reserve(njets);
238  
239 <   for(unsigned int j1 = 0 ; j1 < signalJets->size(); ++j1){
240 <      fFull.push_back(0);
241 <      f05.push_back(0);
242 <      f1.push_back(0);
243 <      f15.push_back(0);
244 <      f2.push_back(0);
245 <      f25.push_back(0);
246 <      f3.push_back(0);
239 >   if(doJetCone_){
240 >     for(unsigned int j1 = 0 ; j1 < signalJets->size(); ++j1){
241 >       fFull.push_back(0);
242 >       f05.push_back(0);
243 >       f1.push_back(0);
244 >       f15.push_back(0);
245 >       f2.push_back(0);
246 >       f25.push_back(0);
247 >       f3.push_back(0);
248 >     }
249     }
250  
251     for(unsigned int j1 = 0 ; j1 < ebHits1->size(); ++j1){
# Line 240 | Line 263 | RecHitComparison::analyze(const edm::Eve
263        bool isjet = false;
264        int matchedJet = -1;
265  
266 <      for(unsigned int j = 0 ; j < signalJets->size(); ++j){
267 <         const reco::CaloJet & jet = (*signalJets)[j];
268 <         double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
269 <         if(dr < cone){
266 >      if(doJetCone_){
267 >        for(unsigned int j = 0 ; j < signalJets->size(); ++j){
268 >          const reco::CaloJet & jet = (*signalJets)[j];
269 >          double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
270 >          if(dr < cone){
271              jetpt = jet.pt();
272              drjet = dr;
273              isjet = true;
274              matchedJet = j;
275              fFull[j] += et1;
276 <
276 >            
277              if(et1 > 0.5){
278 <               f05[j] += et1;
278 >              f05[j] += et1;
279              }
280              if(et1 > 1.){
281                 f1[j] += et1;
# Line 268 | Line 292 | RecHitComparison::analyze(const edm::Eve
292              if(et1 > 3.){
293                 f3[j] += et1;
294              }
295 <         }
296 <      }
295 >          }
296 >        }
297 >      }  
298        
299        GlobalPoint pos2;
300        double e2 = -1;
# Line 285 | Line 310 | RecHitComparison::analyze(const edm::Eve
310        double eta2 = pos2.eta();
311        double phi2 = pos2.eta();
312        double et2 = e2*sin(pos2.theta());
313 <      if(isjet) ntEB->Fill(e1,et1,e2,et2,eta2,phi2,sumet,hf,bin,jetpt,drjet);
313 >      if(!jetsOnly_ ||  isjet) ntEB->Fill(e1,et1,e2,et2,eta2,phi2,hf,bin,jetpt,drjet);
314     }
315  
316     for(unsigned int i = 0; i < eeHits1->size(); ++i){
# Line 299 | Line 324 | RecHitComparison::analyze(const edm::Eve
324       double jetpt = -1;
325       bool isjet = false;
326       int matchedJet = -1;
327 <     for(unsigned int j = 0 ; j < signalJets->size(); ++j){
328 <       const reco::CaloJet & jet = (*signalJets)[j];
329 <       double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
330 <       if(dr < cone){
331 <         jetpt = jet.pt();
332 <         drjet = dr;
333 <         isjet = true;
334 <         matchedJet = j;
327 >     if(doJetCone_){
328 >       for(unsigned int j = 0 ; j < signalJets->size(); ++j){
329 >         const reco::CaloJet & jet = (*signalJets)[j];
330 >         double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
331 >         if(dr < cone){
332 >           jetpt = jet.pt();
333 >           drjet = dr;
334 >           isjet = true;
335 >           matchedJet = j;
336 >         }
337         }
338       }
339 +    
340       GlobalPoint pos2;
341       double e2 = -1;
342       EcalIterator hitit = eeHits2->find(jet1.id());
# Line 322 | Line 350 | RecHitComparison::analyze(const edm::Eve
350       double eta2 = pos2.eta();
351       double phi2 = pos2.eta();
352       double et2 = e2*sin(pos2.theta());
353 <     if(isjet) ntEE->Fill(e1,et1,e2,et2,eta2,phi2,sumet,hf,bin,jetpt,drjet);
353 >     if(!jetsOnly_ || isjet) ntEE->Fill(e1,et1,e2,et2,eta2,phi2,hf,bin,jetpt,drjet);
354     }
355    
356     for(unsigned int i = 0; i < hbheHits1->size(); ++i){
# Line 336 | Line 364 | RecHitComparison::analyze(const edm::Eve
364       double jetpt = -1;
365       bool isjet = false;
366       int matchedJet = -1;
367 <     for(unsigned int j = 0 ; j < signalJets->size(); ++j){
368 <       const reco::CaloJet & jet = (*signalJets)[j];
369 <       double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
370 <       if(dr < cone){
371 <         jetpt = jet.pt();
372 <         drjet = dr;
373 <         isjet = true;
374 <         matchedJet = j;
367 >     if(doJetCone_){
368 >       for(unsigned int j = 0 ; j < signalJets->size(); ++j){
369 >         const reco::CaloJet & jet = (*signalJets)[j];
370 >         double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
371 >         if(dr < cone){
372 >           jetpt = jet.pt();
373 >           drjet = dr;
374 >           isjet = true;
375 >           matchedJet = j;
376 >         }
377         }
378       }
379 +
380       GlobalPoint pos2;
381       double e2 = -1;
382       HBHEIterator hitit = hbheHits2->find(jet1.id());
# Line 359 | Line 390 | RecHitComparison::analyze(const edm::Eve
390       double eta2 = pos2.eta();
391       double phi2 = pos2.eta();
392       double et2 = e2*sin(pos2.theta());
393 <     if(isjet) ntHBHE->Fill(e1,et1,e2,et2,eta2,phi2,sumet,hf,bin,jetpt,drjet);
393 >     if(!jetsOnly_ || isjet) ntHBHE->Fill(e1,et1,e2,et2,eta2,phi2,hf,bin,jetpt,drjet);
394     }
395  
396     for(unsigned int i = 0; i < hfHits1->size(); ++i){
# Line 373 | Line 404 | RecHitComparison::analyze(const edm::Eve
404       double jetpt = -1;
405       bool isjet = false;
406       int matchedJet = -1;
407 <     for(unsigned int j = 0 ; j < signalJets->size(); ++j){
408 <       const reco::CaloJet & jet = (*signalJets)[j];
409 <       double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
410 <       if(dr < cone){
411 <         jetpt = jet.pt();
412 <         drjet = dr;
413 <         isjet = true;
414 <         matchedJet = j;
407 >     if(doJetCone_){
408 >       for(unsigned int j = 0 ; j < signalJets->size(); ++j){
409 >         const reco::CaloJet & jet = (*signalJets)[j];
410 >         double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
411 >         if(dr < cone){
412 >           jetpt = jet.pt();
413 >           drjet = dr;
414 >           isjet = true;
415 >           matchedJet = j;
416 >         }
417         }
418       }
419       GlobalPoint pos2;
# Line 396 | Line 429 | RecHitComparison::analyze(const edm::Eve
429       double eta2 = pos2.eta();
430       double phi2 = pos2.eta();
431       double et2 = e2*sin(pos2.theta());
432 <     if(isjet) ntHF->Fill(e1,et1,e2,et2,eta2,phi2,sumet,hf,bin,jetpt,drjet);
432 >     if(!jetsOnly_ || isjet) ntHF->Fill(e1,et1,e2,et2,eta2,phi2,hf,bin,jetpt,drjet);
433     }
434  
435 <   for(unsigned int j1 = 0 ; j1 < signalJets->size(); ++j1){
436 <      const reco::CaloJet & jet = (*signalJets)[j1];
437 <      double em = (jet.emEnergyInEB() + jet.emEnergyInEE()) * sin(jet.theta());
438 <      double emf = jet.emEnergyFraction();
439 <      double pt = jet.pt();
440 <      double eta = jet.eta();
441 <      ntjet->Fill(bin,pt,eta,fFull[j1],f05[j1],f1[j1],f15[j1],f2[j1],f25[j1],f3[j1],em,emf);
435 >   if(doJetCone_){
436 >     for(unsigned int j1 = 0 ; j1 < signalJets->size(); ++j1){
437 >       const reco::CaloJet & jet = (*signalJets)[j1];
438 >       double em = (jet.emEnergyInEB() + jet.emEnergyInEE()) * sin(jet.theta());
439 >       double emf = jet.emEnergyFraction();
440 >       double pt = jet.pt();
441 >       double eta = jet.eta();
442 >       ntjet->Fill(bin,pt,eta,fFull[j1],f05[j1],f1[j1],f15[j1],f2[j1],f25[j1],f3[j1],em,emf);
443 >     }
444     }
445  
446   }
# Line 415 | Line 450 | RecHitComparison::analyze(const edm::Eve
450   void
451   RecHitComparison::beginJob()
452   {
453 <   ntEB = fs->make<TNtuple>("ntEB","","e1:et1:e2:et2:eta:phi:sumet:hf:bin:ptjet:drjet");
454 <   ntEE = fs->make<TNtuple>("ntEE","","e1:et1:e2:et2:eta:phi:sumet:hf:bin:ptjet:drjet");
455 <   ntHBHE = fs->make<TNtuple>("ntHBHE","","e1:et1:e2:et2:eta:phi:sumet:hf:bin:ptjet:drjet");
456 <   ntHF = fs->make<TNtuple>("ntHF","","e1:et1:e2:et2:eta:phi:sumet:hf:bin:ptjet:drjet");
453 >   ntEB = fs->make<TNtuple>("ntEB","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
454 >   ntEE = fs->make<TNtuple>("ntEE","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
455 >   ntHBHE = fs->make<TNtuple>("ntHBHE","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
456 >   ntHF = fs->make<TNtuple>("ntHF","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
457 >
458 >   ntBC = fs->make<TNtuple>("ntBC","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
459 >
460     ntjet = fs->make<TNtuple>("ntjet","","bin:pt:eta:ethit:f05:f1:f15:f2:f25:f3:em:emf");
461    
462   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines