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

Comparing UserCode/CmsHi/JetAnalysis/src/RecHitTreeProducer.cc (file contents):
Revision 1.6 by yilmaz, Mon Nov 1 21:48:31 2010 UTC vs.
Revision 1.7 by yilmaz, Tue Nov 2 12:58:33 2010 UTC

# Line 84 | Line 84 | struct MyRecHit{
84   };
85  
86  
87 + struct MyBkg{
88 +   int n;
89 +   float rho[50];
90 +   float sigma[50];
91 + };
92 +
93  
94   //
95   // class declaration
# Line 122 | Line 128 | class RecHitTreeProducer : public edm::E
128    typedef vector<EcalRecHit>::const_iterator EcalIterator;
129    
130    edm::Handle<reco::CaloJetCollection> jets;
131 +
132 +   edm::Handle<std::vector<double> > rhos;
133 +   edm::Handle<std::vector<double> > sigmas;
134    
135    MyRecHit hbheRecHit;
136    MyRecHit hfRecHit;
# Line 129 | Line 138 | class RecHitTreeProducer : public edm::E
138    MyRecHit eeRecHit;
139     MyRecHit myBC;
140     MyRecHit myTowers;
141 +   MyBkg bkg;
142 +
143  
144    TTree* hbheTree;
145    TTree* hfTree;
# Line 136 | Line 147 | class RecHitTreeProducer : public edm::E
147    TTree* eeTree;
148     TTree* bcTree;
149     TTree* towerTree;
150 +   TTree* bkgTree;
151  
152    double cone;
153  
# Line 148 | Line 160 | class RecHitTreeProducer : public edm::E
160    edm::InputTag EBSrc_;
161    edm::InputTag EESrc_;
162     edm::InputTag BCSrc_;
151
163     edm::InputTag TowerSrc_;
164  
165    edm::InputTag JetSrc_;
166  
167 +   edm::InputTag FastJetTag_;
168 +
169    bool useJets_;
170     bool doBasicClusters_;
171 +   bool doTowers_;
172 +   bool doEcal_;
173 +   bool doHcal_;
174  
175 +   bool doFastJet_;
176   };
177  
178   //
# Line 182 | Line 199 | RecHitTreeProducer::RecHitTreeProducer(c
199    BCSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("BasicClusterSrc1",edm::InputTag("ecalRecHit","EcalRecHitsEB","RECO"));
200    TowerSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("towersSrc",edm::InputTag("towerMaker"));
201    JetSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("JetSrc",edm::InputTag("iterativeCone5CaloJets"));
202 <  useJets_ = iConfig.getUntrackedParameter<bool>("useJets",false);
202 >  useJets_ = iConfig.getUntrackedParameter<bool>("useJets",true);
203    doBasicClusters_ = iConfig.getUntrackedParameter<bool>("doBasicClusters",false);
204 +  doTowers_ = iConfig.getUntrackedParameter<bool>("doTowers",true);
205 +  doEcal_ = iConfig.getUntrackedParameter<bool>("doEcal",true);
206 +  doHcal_ = iConfig.getUntrackedParameter<bool>("doHcal",true);
207 +  doFastJet_ = iConfig.getUntrackedParameter<bool>("doFastJet",true);
208 +  FastJetTag_ = iConfig.getUntrackedParameter<edm::InputTag>("FastJetTag",edm::InputTag("kt4CaloJets"));
209  
210   }
211  
# Line 210 | Line 232 | RecHitTreeProducer::analyze(const edm::E
232    hbheRecHit.n = 0;
233    ebRecHit.n = 0;
234    eeRecHit.n = 0;
235 +  myBC.n = 0;
236 +   myTowers.n = 0;
237 +   bkg.n = 0;
238  
239 +   if(doEcal_){
240    ev.getByLabel(EBSrc_,ebHits);
241    ev.getByLabel(EESrc_,eeHits);
242 <
242 >   }
243 >  if(doHcal_){
244    ev.getByLabel(HcalRecHitHFSrc_,hfHits);
245    ev.getByLabel(HcalRecHitHBHESrc_,hbheHits);
246 <
246 >  }
247    if(useJets_) {
248      ev.getByLabel(JetSrc_,jets);
249    }
# Line 225 | Line 252 | RecHitTreeProducer::analyze(const edm::E
252       ev.getByLabel(BCSrc_,bClusters);
253    }
254  
255 +  if(doTowers_){
256 +     ev.getByLabel(TowerSrc_,towers);
257 +  }
258  
259 +  if(doFastJet_){
260 +     ev.getByLabel(edm::InputTag(FastJetTag_.label(),"rhos",FastJetTag_.process()),rhos);
261 +     ev.getByLabel(edm::InputTag(FastJetTag_.label(),"sigmas",FastJetTag_.process()),sigmas);
262 +     bkg.n = rhos->size();
263 +     for(unsigned int i = 0; i < rhos->size(); ++i){
264 +        bkg.rho[i] = (*rhos)[i];
265 +        bkg.sigma[i] = (*sigmas)[i];
266 +     }
267 +  }
268    
269    if(0 && !cbins_) cbins_ = getCentralityBinsFromDB(iSetup);
270  
# Line 235 | Line 274 | RecHitTreeProducer::analyze(const edm::E
274        geo = pGeo.product();
275     }
276    
277 +   if(doHcal_){
278     for(unsigned int i = 0; i < hfHits->size(); ++i){
279       const HFRecHit & hit= (*hfHits)[i];
280       hfRecHit.e[hfRecHit.n] = hit.energy();
# Line 242 | Line 282 | RecHitTreeProducer::analyze(const edm::E
282       hfRecHit.eta[hfRecHit.n] = getEta(hit.id());
283       hfRecHit.phi[hfRecHit.n] = getPhi(hit.id());
284       hfRecHit.isjet[hfRecHit.n] = false;
285 <     if(!useJets_){
285 >     if(useJets_){
286         for(unsigned int j = 0 ; j < jets->size(); ++j){
287           const reco::Jet& jet = (*jets)[j];
288           double dr = reco::deltaR(hfRecHit.eta[hfRecHit.n],hfRecHit.phi[hfRecHit.n],jet.eta(),jet.phi());
# Line 259 | Line 299 | RecHitTreeProducer::analyze(const edm::E
299       hbheRecHit.eta[hbheRecHit.n] = getEta(hit.id());
300       hbheRecHit.phi[hbheRecHit.n] = getPhi(hit.id());
301       hbheRecHit.isjet[hbheRecHit.n] = false;
302 <     if(!useJets_){
302 >     if(useJets_){
303         for(unsigned int j = 0 ; j < jets->size(); ++j){
304           const reco::Jet& jet = (*jets)[j];
305           double dr = reco::deltaR(hbheRecHit.eta[hbheRecHit.n],hbheRecHit.phi[hbheRecHit.n],jet.eta(),jet.phi());
# Line 268 | Line 308 | RecHitTreeProducer::analyze(const edm::E
308       }
309       hbheRecHit.n++;
310     }
311 <  
311 >   }
312 >   if(doEcal_){
313     for(unsigned int i = 0; i < ebHits->size(); ++i){
314       const EcalRecHit & hit= (*ebHits)[i];
315       ebRecHit.e[ebRecHit.n] = hit.energy();
# Line 276 | Line 317 | RecHitTreeProducer::analyze(const edm::E
317       ebRecHit.eta[ebRecHit.n] = getEta(hit.id());
318       ebRecHit.phi[ebRecHit.n] = getPhi(hit.id());
319       ebRecHit.isjet[ebRecHit.n] = false;
320 <     if(!useJets_){
320 >     if(useJets_){
321         for(unsigned int j = 0 ; j < jets->size(); ++j){
322           const reco::Jet& jet = (*jets)[j];
323           double dr = reco::deltaR(ebRecHit.eta[ebRecHit.n],ebRecHit.phi[ebRecHit.n],jet.eta(),jet.phi());
# Line 293 | Line 334 | RecHitTreeProducer::analyze(const edm::E
334       eeRecHit.eta[eeRecHit.n] = getEta(hit.id());
335       eeRecHit.phi[eeRecHit.n] = getPhi(hit.id());
336       eeRecHit.isjet[eeRecHit.n] = false;
337 <     if(!useJets_){
337 >     if(useJets_){
338         for(unsigned int j = 0 ; j < jets->size(); ++j){
339           const reco::Jet& jet = (*jets)[j];
340           double dr = reco::deltaR(eeRecHit.eta[eeRecHit.n],eeRecHit.phi[eeRecHit.n],jet.eta(),jet.phi());
# Line 302 | Line 343 | RecHitTreeProducer::analyze(const edm::E
343       }
344       eeRecHit.n++;
345     }
346 +   }
347 +
348 +   if(doTowers_){
349 +
350 +      for(unsigned int i = 0; i < towers->size(); ++i){
351 +      const CaloTower & hit= (*towers)[i];
352 +      myTowers.e[myTowers.n] = hit.energy();
353 +      myTowers.et[myTowers.n] = getEt(hit.id(),hit.energy());
354 +      myTowers.eta[myTowers.n] = getEta(hit.id());
355 +      myTowers.phi[myTowers.n] = getPhi(hit.id());
356 +      myTowers.isjet[myTowers.n] = false;
357 +      if(useJets_){
358 +         for(unsigned int j = 0 ; j < jets->size(); ++j){
359 +            const reco::Jet& jet = (*jets)[j];
360 +            double dr = reco::deltaR(myTowers.eta[myTowers.n],myTowers.phi[myTowers.n],jet.eta(),jet.phi());
361 +            if(dr < cone){ myTowers.isjet[myTowers.n] = true; }
362 +         }
363 +      }
364 +      myTowers.n++;
365 +      }
366  
367 +   }
368  
369     if(doBasicClusters_){
370        for(unsigned int j = 0 ; j < jets->size(); ++j){
# Line 326 | Line 388 | RecHitTreeProducer::analyze(const edm::E
388           bcTree->Fill();
389        }
390     }
391 +
392 +   towerTree->Fill();
393    
394     eeTree->Fill();
395     ebTree->Fill();
396    
397     hbheTree->Fill();
398     hfTree->Fill();
399 <  
399 >   bkgTree->Fill();  
400   }
401  
402  
# Line 373 | Line 437 | RecHitTreeProducer::beginJob()
437    ebTree->Branch("phi",ebRecHit.phi,"phi[n]/F");
438    ebTree->Branch("isjet",ebRecHit.isjet,"isjet[n]/O");
439  
440 +  towerTree = fs->make<TTree>("tower","");
441 +  towerTree->Branch("n",&myTowers.n,"n/I");
442 +  towerTree->Branch("e",myTowers.e,"e[n]/F");
443 +  towerTree->Branch("et",myTowers.et,"et[n]/F");
444 +  towerTree->Branch("eta",myTowers.eta,"eta[n]/F");
445 +  towerTree->Branch("phi",myTowers.phi,"phi[n]/F");
446 +  towerTree->Branch("isjet",myTowers.isjet,"isjet[n]/O");
447 +
448 +
449    if(doBasicClusters_){
450       bcTree = fs->make<TTree>("bc","");
451       bcTree->Branch("n",&myBC.n,"n/I");
# Line 386 | Line 459 | RecHitTreeProducer::beginJob()
459       //     bcTree->Branch("isjet",bcRecHit.isjet,"isjet[n]/O");
460    }
461  
462 <
462 >  if(doFastJet_){
463 >     bkgTree = fs->make<TTree>("bkg","");
464 >     bkgTree->Branch("n",&bkg.n,"n/I");
465 >     bkgTree->Branch("rho",bkg.rho,"rho[n]/F");
466 >     bkgTree->Branch("sigma",bkg.sigma,"sigma[n]/F");
467 >  }
468  
469   }
470  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines