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.4 by yilmaz, Fri Oct 22 14:06:15 2010 UTC vs.
Revision 1.6 by yilmaz, Mon Nov 1 21:48:31 2010 UTC

# Line 57 | Line 57
57   #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
58   #include "DataFormats/HcalDetId/interface/HcalDetId.h"
59   #include "DataFormats/EcalDetId/interface/EcalDetIdCollections.h"
60 + #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
61   #include "DataFormats/DetId/interface/DetId.h"
62  
63  
# Line 76 | Line 77 | struct MyRecHit{
77    float phi[MAXHITS];
78    bool isjet[MAXHITS];
79  
80 +   float jtpt;
81 +   float jteta;
82 +   float jtphi;
83 +
84   };
85  
86  
# Line 110 | Line 115 | class RecHitTreeProducer : public edm::E
115    edm::Handle<HFRecHitCollection> hfHits;
116    edm::Handle<HBHERecHitCollection> hbheHits;
117  
118 +   edm::Handle<reco::BasicClusterCollection> bClusters;
119 +   edm::Handle<CaloTowerCollection> towers;
120 +
121 +
122    typedef vector<EcalRecHit>::const_iterator EcalIterator;
123    
124    edm::Handle<reco::CaloJetCollection> jets;
# Line 118 | Line 127 | class RecHitTreeProducer : public edm::E
127    MyRecHit hfRecHit;
128    MyRecHit ebRecHit;
129    MyRecHit eeRecHit;
130 +   MyRecHit myBC;
131 +   MyRecHit myTowers;
132  
133    TTree* hbheTree;
134    TTree* hfTree;
135    TTree* ebTree;
136    TTree* eeTree;
137 +   TTree* bcTree;
138 +   TTree* towerTree;
139 +
140    double cone;
141  
142     edm::Service<TFileService> fs;
# Line 133 | Line 147 | class RecHitTreeProducer : public edm::E
147    edm::InputTag HcalRecHitHBHESrc_;
148    edm::InputTag EBSrc_;
149    edm::InputTag EESrc_;
150 +   edm::InputTag BCSrc_;
151 +
152 +   edm::InputTag TowerSrc_;
153 +
154    edm::InputTag JetSrc_;
155 <  bool excludeJets_;
155 >
156 >  bool useJets_;
157 >   bool doBasicClusters_;
158  
159   };
160  
# Line 155 | Line 175 | RecHitTreeProducer::RecHitTreeProducer(c
175     cone(0.5)
176   {
177     //now do what ever initialization is needed
158
178    EBSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("EBRecHitSrc",edm::InputTag("ecalRecHit","EcalRecHitsEB"));
179    EESrc_ = iConfig.getUntrackedParameter<edm::InputTag>("EERecHitSrc",edm::InputTag("ecalRecHit","EcalRecHitsEE"));
180    HcalRecHitHFSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("hcalHFRecHitSrc",edm::InputTag("hfreco"));
181    HcalRecHitHBHESrc_ = iConfig.getUntrackedParameter<edm::InputTag>("hcalHBHERecHitSrc",edm::InputTag("hbhereco"));
182 +  BCSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("BasicClusterSrc1",edm::InputTag("ecalRecHit","EcalRecHitsEB","RECO"));
183 +  TowerSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("towersSrc",edm::InputTag("towerMaker"));
184    JetSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("JetSrc",edm::InputTag("iterativeCone5CaloJets"));
185 <  excludeJets_ = iConfig.getUntrackedParameter<bool>("excludeJets",false);
185 >  useJets_ = iConfig.getUntrackedParameter<bool>("useJets",false);
186 >  doBasicClusters_ = iConfig.getUntrackedParameter<bool>("doBasicClusters",false);
187 >
188   }
189  
190  
# Line 194 | Line 217 | RecHitTreeProducer::analyze(const edm::E
217    ev.getByLabel(HcalRecHitHFSrc_,hfHits);
218    ev.getByLabel(HcalRecHitHBHESrc_,hbheHits);
219  
220 <
198 <  if(!excludeJets_) {
220 >  if(useJets_) {
221      ev.getByLabel(JetSrc_,jets);
222    }
223 +
224 +  if(doBasicClusters_){
225 +     ev.getByLabel(BCSrc_,bClusters);
226 +  }
227 +
228 +
229    
230 <   if(0 && !cbins_) cbins_ = getCentralityBinsFromDB(iSetup);
230 >  if(0 && !cbins_) cbins_ = getCentralityBinsFromDB(iSetup);
231  
232     if(!geo){
233        edm::ESHandle<CaloGeometry> pGeo;
# Line 214 | Line 242 | RecHitTreeProducer::analyze(const edm::E
242       hfRecHit.eta[hfRecHit.n] = getEta(hit.id());
243       hfRecHit.phi[hfRecHit.n] = getPhi(hit.id());
244       hfRecHit.isjet[hfRecHit.n] = false;
245 <     if(!excludeJets_){
245 >     if(!useJets_){
246         for(unsigned int j = 0 ; j < jets->size(); ++j){
247           const reco::Jet& jet = (*jets)[j];
248           double dr = reco::deltaR(hfRecHit.eta[hfRecHit.n],hfRecHit.phi[hfRecHit.n],jet.eta(),jet.phi());
# Line 231 | Line 259 | RecHitTreeProducer::analyze(const edm::E
259       hbheRecHit.eta[hbheRecHit.n] = getEta(hit.id());
260       hbheRecHit.phi[hbheRecHit.n] = getPhi(hit.id());
261       hbheRecHit.isjet[hbheRecHit.n] = false;
262 <     if(!excludeJets_){
262 >     if(!useJets_){
263         for(unsigned int j = 0 ; j < jets->size(); ++j){
264           const reco::Jet& jet = (*jets)[j];
265           double dr = reco::deltaR(hbheRecHit.eta[hbheRecHit.n],hbheRecHit.phi[hbheRecHit.n],jet.eta(),jet.phi());
# Line 248 | Line 276 | RecHitTreeProducer::analyze(const edm::E
276       ebRecHit.eta[ebRecHit.n] = getEta(hit.id());
277       ebRecHit.phi[ebRecHit.n] = getPhi(hit.id());
278       ebRecHit.isjet[ebRecHit.n] = false;
279 <     if(!excludeJets_){
279 >     if(!useJets_){
280         for(unsigned int j = 0 ; j < jets->size(); ++j){
281           const reco::Jet& jet = (*jets)[j];
282           double dr = reco::deltaR(ebRecHit.eta[ebRecHit.n],ebRecHit.phi[ebRecHit.n],jet.eta(),jet.phi());
# Line 265 | Line 293 | RecHitTreeProducer::analyze(const edm::E
293       eeRecHit.eta[eeRecHit.n] = getEta(hit.id());
294       eeRecHit.phi[eeRecHit.n] = getPhi(hit.id());
295       eeRecHit.isjet[eeRecHit.n] = false;
296 <     if(!excludeJets_){
296 >     if(!useJets_){
297         for(unsigned int j = 0 ; j < jets->size(); ++j){
298           const reco::Jet& jet = (*jets)[j];
299           double dr = reco::deltaR(eeRecHit.eta[eeRecHit.n],eeRecHit.phi[eeRecHit.n],jet.eta(),jet.phi());
# Line 274 | Line 302 | RecHitTreeProducer::analyze(const edm::E
302       }
303       eeRecHit.n++;
304     }
305 <  
305 >
306 >
307 >   if(doBasicClusters_){
308 >      for(unsigned int j = 0 ; j < jets->size(); ++j){
309 >         const reco::Jet& jet = (*jets)[j];
310 >         myBC.n = 0;
311 >         myBC.jtpt = jet.pt();
312 >         myBC.jteta = jet.eta();
313 >         myBC.jtphi = jet.phi();
314 >
315 >         for(unsigned int i = 0; i < bClusters->size(); ++i){
316 >            const reco::BasicCluster & bc= (*bClusters)[i];
317 >            double dr = reco::deltaR(bc.eta(),bc.phi(),jet.eta(),jet.phi());
318 >            if(dr < cone){
319 >               myBC.e[myBC.n] = bc.energy();
320 >               myBC.et[myBC.n] = bc.energy()*sin(bc.position().theta());
321 >               myBC.eta[myBC.n] = bc.eta();
322 >               myBC.phi[myBC.n] = bc.phi();
323 >               myBC.n++;
324 >            }
325 >         }
326 >         bcTree->Fill();
327 >      }
328 >   }
329 >  
330     eeTree->Fill();
331     ebTree->Fill();
332    
# Line 295 | Line 347 | RecHitTreeProducer::beginJob()
347    hbheTree->Branch("et",hbheRecHit.et,"et[n]/F");
348    hbheTree->Branch("eta",hbheRecHit.eta,"eta[n]/F");
349    hbheTree->Branch("phi",hbheRecHit.phi,"phi[n]/F");
350 <  hbheTree->Branch("isjet",hbheRecHit.isjet,"isjet[n]/I");
350 >  hbheTree->Branch("isjet",hbheRecHit.isjet,"isjet[n]/O");
351    
352    hfTree = fs->make<TTree>("hf","");
353    hfTree->Branch("n",&hfRecHit.n,"n/I");
# Line 303 | Line 355 | RecHitTreeProducer::beginJob()
355    hfTree->Branch("et",hfRecHit.et,"et[n]/F");
356    hfTree->Branch("eta",hfRecHit.eta,"eta[n]/F");
357    hfTree->Branch("phi",hfRecHit.phi,"phi[n]/F");
358 <  hfTree->Branch("isjet",hfRecHit.isjet,"isjet[n]/I");
358 >  hfTree->Branch("isjet",hfRecHit.isjet,"isjet[n]/O");
359  
360    eeTree = fs->make<TTree>("ee","");
361    eeTree->Branch("n",&eeRecHit.n,"n/I");
# Line 311 | Line 363 | RecHitTreeProducer::beginJob()
363    eeTree->Branch("et",eeRecHit.et,"et[n]/F");
364    eeTree->Branch("eta",eeRecHit.eta,"eta[n]/F");
365    eeTree->Branch("phi",eeRecHit.phi,"phi[n]/F");
366 <  eeTree->Branch("isjet",eeRecHit.isjet,"isjet[n]/I");
366 >  eeTree->Branch("isjet",eeRecHit.isjet,"isjet[n]/O");
367  
368    ebTree = fs->make<TTree>("eb","");
369    ebTree->Branch("n",&ebRecHit.n,"n/I");
# Line 321 | Line 373 | RecHitTreeProducer::beginJob()
373    ebTree->Branch("phi",ebRecHit.phi,"phi[n]/F");
374    ebTree->Branch("isjet",ebRecHit.isjet,"isjet[n]/O");
375  
376 +  if(doBasicClusters_){
377 +     bcTree = fs->make<TTree>("bc","");
378 +     bcTree->Branch("n",&myBC.n,"n/I");
379 +     bcTree->Branch("e",myBC.e,"e[n]/F");
380 +     bcTree->Branch("et",myBC.et,"et[n]/F");
381 +     bcTree->Branch("eta",myBC.eta,"eta[n]/F");
382 +     bcTree->Branch("phi",myBC.phi,"phi[n]/F");
383 +     bcTree->Branch("jtpt",&myBC.jtpt,"jtpt/F");
384 +     bcTree->Branch("jteta",&myBC.jteta,"jteta/F");
385 +     bcTree->Branch("jtphi",&myBC.jtphi,"jtphi/F");
386 +     //     bcTree->Branch("isjet",bcRecHit.isjet,"isjet[n]/O");
387 +  }
388 +
389 +
390 +
391   }
392  
393   // ------------ method called once each job just after ending the event loop  ------------

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines