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.5 by yilmaz, Fri Oct 22 13:34:09 2010 UTC vs.
Revision 1.9 by yilmaz, Wed Mar 30 12:13:22 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 105 | Line 108 | class RecHitComparison : public edm::EDA
108    edm::InputTag EBSrc2_;
109    edm::InputTag EESrc1_;
110    edm::InputTag EESrc2_;
111 +
112 +   edm::InputTag BCSrc1_;
113 +   edm::InputTag BCSrc2_;
114 +
115     edm::InputTag signalTag_;
109   edm::InputTag centTag_;
116  
117 +   TNtuple* ntBC;
118     TNtuple* ntEB;
119    TNtuple* ntEE;
120    TNtuple* ntHBHE;
# Line 116 | Line 123 | class RecHitComparison : public edm::EDA
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 134 | 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
142   centTag_ =  iConfig.getUntrackedParameter<edm::InputTag>("centrality",edm::InputTag("hiCentrality","","RECO"));
143
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"));
# Line 152 | Line 164 | RecHitComparison::RecHitComparison(const
164    EBSrc2_ = iConfig.getUntrackedParameter<edm::InputTag>("EBRecHitSrc2",edm::InputTag("ecalRecHit","EcalRecHitsEB","SIGNALONLY"));
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 173 | Line 187 | RecHitComparison::~RecHitComparison()
187   void
188   RecHitComparison::analyze(const edm::Event& ev, const edm::EventSetup& iSetup)
189   {
190 <
177 <   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);
# Line 182 | Line 195 | RecHitComparison::analyze(const edm::Eve
195     }
196  
197     using namespace edm;
185
186   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);
# Line 196 | Line 208 | RecHitComparison::analyze(const edm::Eve
208     ev.getByLabel(EESrc1_,eeHits1);
209     ev.getByLabel(EESrc2_,eeHits2);
210  
211 <   double hf = cent->EtHFhitSum();
212 <   double sumet = cent->EtMidRapiditySum();
213 <   int run = ev.id().run();
214 <   run = 1;
215 <   int bin = cbins_->getBin(hf);
216 <   int margin = 0;
211 >   if(doBasicClusters_){
212 >      ev.getByLabel(BCSrc1_,bClusters1);
213 >      ev.getByLabel(BCSrc2_,bClusters2);
214 >   }
215 >
216 >   centrality_->newEvent(ev,iSetup);
217 >   double hf = centrality_->centralityValue();
218 >   int bin = centrality_->getBin();
219  
220     vector<double> fFull;
221     vector<double> f05;
# Line 245 | Line 259 | RecHitComparison::analyze(const edm::Eve
259        bool isjet = false;
260        int matchedJet = -1;
261  
262 <      for(unsigned int j = 0 ; j < signalJets->size(); ++j){
263 <         const reco::CaloJet & jet = (*signalJets)[j];
264 <         double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
265 <         if(dr < cone){
262 >      if(doJetCone_){
263 >        for(unsigned int j = 0 ; j < signalJets->size(); ++j){
264 >          const reco::CaloJet & jet = (*signalJets)[j];
265 >          double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
266 >          if(dr < cone){
267              jetpt = jet.pt();
268              drjet = dr;
269              isjet = true;
270              matchedJet = j;
271              fFull[j] += et1;
272 <
272 >            
273              if(et1 > 0.5){
274 <               f05[j] += et1;
274 >              f05[j] += et1;
275              }
276              if(et1 > 1.){
277                 f1[j] += et1;
# Line 273 | Line 288 | RecHitComparison::analyze(const edm::Eve
288              if(et1 > 3.){
289                 f3[j] += et1;
290              }
291 <         }
292 <      }
291 >          }
292 >        }
293 >      }  
294        
295        GlobalPoint pos2;
296        double e2 = -1;
# Line 290 | Line 306 | RecHitComparison::analyze(const edm::Eve
306        double eta2 = pos2.eta();
307        double phi2 = pos2.eta();
308        double et2 = e2*sin(pos2.theta());
309 <      if(!jetsOnly_ ||  isjet) ntEB->Fill(e1,et1,e2,et2,eta2,phi2,sumet,hf,bin,jetpt,drjet);
309 >      if(!jetsOnly_ ||  isjet) ntEB->Fill(e1,et1,e2,et2,eta2,phi2,hf,bin,jetpt,drjet);
310     }
311  
312     for(unsigned int i = 0; i < eeHits1->size(); ++i){
# Line 304 | Line 320 | RecHitComparison::analyze(const edm::Eve
320       double jetpt = -1;
321       bool isjet = false;
322       int matchedJet = -1;
323 <     for(unsigned int j = 0 ; j < signalJets->size(); ++j){
324 <       const reco::CaloJet & jet = (*signalJets)[j];
325 <       double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
326 <       if(dr < cone){
327 <         jetpt = jet.pt();
328 <         drjet = dr;
329 <         isjet = true;
330 <         matchedJet = j;
323 >     if(doJetCone_){
324 >       for(unsigned int j = 0 ; j < signalJets->size(); ++j){
325 >         const reco::CaloJet & jet = (*signalJets)[j];
326 >         double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
327 >         if(dr < cone){
328 >           jetpt = jet.pt();
329 >           drjet = dr;
330 >           isjet = true;
331 >           matchedJet = j;
332 >         }
333         }
334       }
335 +    
336       GlobalPoint pos2;
337       double e2 = -1;
338       EcalIterator hitit = eeHits2->find(jet1.id());
# Line 327 | Line 346 | RecHitComparison::analyze(const edm::Eve
346       double eta2 = pos2.eta();
347       double phi2 = pos2.eta();
348       double et2 = e2*sin(pos2.theta());
349 <     if(!jetsOnly_ || isjet) ntEE->Fill(e1,et1,e2,et2,eta2,phi2,sumet,hf,bin,jetpt,drjet);
349 >     if(!jetsOnly_ || isjet) ntEE->Fill(e1,et1,e2,et2,eta2,phi2,hf,bin,jetpt,drjet);
350     }
351    
352     for(unsigned int i = 0; i < hbheHits1->size(); ++i){
# Line 341 | Line 360 | RecHitComparison::analyze(const edm::Eve
360       double jetpt = -1;
361       bool isjet = false;
362       int matchedJet = -1;
363 <     for(unsigned int j = 0 ; j < signalJets->size(); ++j){
364 <       const reco::CaloJet & jet = (*signalJets)[j];
365 <       double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
366 <       if(dr < cone){
367 <         jetpt = jet.pt();
368 <         drjet = dr;
369 <         isjet = true;
370 <         matchedJet = j;
363 >     if(doJetCone_){
364 >       for(unsigned int j = 0 ; j < signalJets->size(); ++j){
365 >         const reco::CaloJet & jet = (*signalJets)[j];
366 >         double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
367 >         if(dr < cone){
368 >           jetpt = jet.pt();
369 >           drjet = dr;
370 >           isjet = true;
371 >           matchedJet = j;
372 >         }
373         }
374       }
375 +
376       GlobalPoint pos2;
377       double e2 = -1;
378       HBHEIterator hitit = hbheHits2->find(jet1.id());
# Line 364 | Line 386 | RecHitComparison::analyze(const edm::Eve
386       double eta2 = pos2.eta();
387       double phi2 = pos2.eta();
388       double et2 = e2*sin(pos2.theta());
389 <     if(!jetsOnly_ || isjet) ntHBHE->Fill(e1,et1,e2,et2,eta2,phi2,sumet,hf,bin,jetpt,drjet);
389 >     if(!jetsOnly_ || isjet) ntHBHE->Fill(e1,et1,e2,et2,eta2,phi2,hf,bin,jetpt,drjet);
390     }
391  
392     for(unsigned int i = 0; i < hfHits1->size(); ++i){
# Line 378 | Line 400 | RecHitComparison::analyze(const edm::Eve
400       double jetpt = -1;
401       bool isjet = false;
402       int matchedJet = -1;
403 <     for(unsigned int j = 0 ; j < signalJets->size(); ++j){
404 <       const reco::CaloJet & jet = (*signalJets)[j];
405 <       double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
406 <       if(dr < cone){
407 <         jetpt = jet.pt();
408 <         drjet = dr;
409 <         isjet = true;
410 <         matchedJet = j;
403 >     if(doJetCone_){
404 >       for(unsigned int j = 0 ; j < signalJets->size(); ++j){
405 >         const reco::CaloJet & jet = (*signalJets)[j];
406 >         double dr = reco::deltaR(eta1,phi1,jet.eta(),jet.phi());
407 >         if(dr < cone){
408 >           jetpt = jet.pt();
409 >           drjet = dr;
410 >           isjet = true;
411 >           matchedJet = j;
412 >         }
413         }
414       }
415       GlobalPoint pos2;
# Line 401 | Line 425 | RecHitComparison::analyze(const edm::Eve
425       double eta2 = pos2.eta();
426       double phi2 = pos2.eta();
427       double et2 = e2*sin(pos2.theta());
428 <     if(!jetsOnly_ || isjet) ntHF->Fill(e1,et1,e2,et2,eta2,phi2,sumet,hf,bin,jetpt,drjet);
428 >     if(!jetsOnly_ || isjet) ntHF->Fill(e1,et1,e2,et2,eta2,phi2,hf,bin,jetpt,drjet);
429     }
430  
431     for(unsigned int j1 = 0 ; j1 < signalJets->size(); ++j1){
# Line 420 | Line 444 | RecHitComparison::analyze(const edm::Eve
444   void
445   RecHitComparison::beginJob()
446   {
447 <   ntEB = fs->make<TNtuple>("ntEB","","e1:et1:e2:et2:eta:phi:sumet:hf:bin:ptjet:drjet");
448 <   ntEE = fs->make<TNtuple>("ntEE","","e1:et1:e2:et2:eta:phi:sumet:hf:bin:ptjet:drjet");
449 <   ntHBHE = fs->make<TNtuple>("ntHBHE","","e1:et1:e2:et2:eta:phi:sumet:hf:bin:ptjet:drjet");
450 <   ntHF = fs->make<TNtuple>("ntHF","","e1:et1:e2:et2:eta:phi:sumet:hf:bin:ptjet:drjet");
447 >   ntEB = fs->make<TNtuple>("ntEB","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
448 >   ntEE = fs->make<TNtuple>("ntEE","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
449 >   ntHBHE = fs->make<TNtuple>("ntHBHE","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
450 >   ntHF = fs->make<TNtuple>("ntHF","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
451 >
452 >   ntBC = fs->make<TNtuple>("ntBC","","e1:et1:e2:et2:eta:phi:hf:bin:ptjet:drjet");
453 >
454     ntjet = fs->make<TNtuple>("ntjet","","bin:pt:eta:ethit:f05:f1:f15:f2:f25:f3:em:emf");
455    
456   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines