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.2 by yilmaz, Mon Oct 18 16:13:37 2010 UTC vs.
Revision 1.3 by nart, Wed Oct 20 15:01:11 2010 UTC

# Line 64 | Line 64
64  
65   using namespace std;
66  
67 < #define MAXHITS 100000
67 > #define MAXHITS 1000000
68  
69   struct MyRecHit{
70  
# Line 74 | Line 74 | struct MyRecHit{
74    float et[MAXHITS];
75    float eta[MAXHITS];
76    float phi[MAXHITS];
77 +  bool isjet[MAXHITS];
78  
79   };
80  
# Line 99 | Line 100 | class RecHitTreeProducer : public edm::E
100  
101        // ----------member data ---------------------------
102  
102
103     edm::Handle<reco::Centrality> cent;
104     edm::Handle<vector<double> > ktRhos;
105     edm::Handle<vector<double> > akRhos;
# Line 110 | Line 110 | class RecHitTreeProducer : public edm::E
110    edm::Handle<HFRecHitCollection> hfHits;
111    edm::Handle<HBHERecHitCollection> hbheHits;
112  
113 <   typedef vector<EcalRecHit>::const_iterator EcalIterator;
114 <
115 <   edm::Handle<reco::CaloJetCollection> signalJets;
116 <
113 >  typedef vector<EcalRecHit>::const_iterator EcalIterator;
114 >  
115 >  edm::Handle<reco::CaloJetCollection> jets;
116 >  
117    MyRecHit hbheRecHit;
118    MyRecHit hfRecHit;
119    MyRecHit ebRecHit;
# Line 133 | Line 133 | class RecHitTreeProducer : public edm::E
133    edm::InputTag HcalRecHitHBHESrc_;
134    edm::InputTag EBSrc_;
135    edm::InputTag EESrc_;
136 <
136 >  edm::InputTag JetSrc_;
137 >  bool excludeJets_;
138  
139   };
140  
# Line 159 | Line 160 | RecHitTreeProducer::RecHitTreeProducer(c
160    EESrc_ = iConfig.getUntrackedParameter<edm::InputTag>("EERecHitSrc",edm::InputTag("ecalRecHit","EcalRecHitsEE"));
161    HcalRecHitHFSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("hcalHFRecHitSrc",edm::InputTag("hfreco"));
162    HcalRecHitHBHESrc_ = iConfig.getUntrackedParameter<edm::InputTag>("hcalHBHERecHitSrc",edm::InputTag("hbhereco"));
163 +  JetSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("JetSrc",edm::InputTag("iterativeCone5CaloJets"));
164 +  excludeJets_ = iConfig.getUntrackedParameter<bool>("excludeJets",false);
165   }
166  
167  
# Line 191 | Line 194 | RecHitTreeProducer::analyze(const edm::E
194    ev.getByLabel(HcalRecHitHFSrc_,hfHits);
195    ev.getByLabel(HcalRecHitHBHESrc_,hbheHits);
196  
197 +
198 +  if(!excludeJets_) {
199 +    ev.getByLabel(JetSrc_,jets);
200 +  }
201 +  
202     if(0 && !cbins_) cbins_ = getCentralityBinsFromDB(iSetup);
203  
204     if(!geo){
# Line 198 | Line 206 | RecHitTreeProducer::analyze(const edm::E
206        iSetup.get<CaloGeometryRecord>().get(pGeo);
207        geo = pGeo.product();
208     }
209 <
209 >  
210     for(unsigned int i = 0; i < hfHits->size(); ++i){
211       const HFRecHit & hit= (*hfHits)[i];
212       hfRecHit.e[hfRecHit.n] = hit.energy();
213       hfRecHit.et[hfRecHit.n] = getEt(hit.id(),hit.energy());
214       hfRecHit.eta[hfRecHit.n] = getEta(hit.id());
215       hfRecHit.phi[hfRecHit.n] = getPhi(hit.id());
216 +     hfRecHit.isjet[hfRecHit.n] = false;
217 +     if(!excludeJets_){
218 +       for(unsigned int j = 0 ; j < jets->size(); ++j){
219 +         const reco::Jet& jet = (*jets)[j];
220 +         double dr = reco::deltaR(hfRecHit.eta[hfRecHit.n],hfRecHit.phi[hfRecHit.n],jet.eta(),jet.phi());
221 +         if(dr < cone){ hfRecHit.isjet[hfRecHit.n] = true; }
222 +       }
223 +     }
224       hfRecHit.n++;
225     }
226 <
226 >  
227     for(unsigned int i = 0; i < hbheHits->size(); ++i){
228       const HBHERecHit & hit= (*hbheHits)[i];
229 <     hbheRecHit.e[hfRecHit.n] = hit.energy();
230 <     hbheRecHit.et[hfRecHit.n] = getEt(hit.id(),hit.energy());
231 <     hbheRecHit.eta[hfRecHit.n] = getEta(hit.id());
232 <     hbheRecHit.phi[hfRecHit.n] = getPhi(hit.id());
229 >     hbheRecHit.e[hbheRecHit.n] = hit.energy();
230 >     hbheRecHit.et[hbheRecHit.n] = getEt(hit.id(),hit.energy());
231 >     hbheRecHit.eta[hbheRecHit.n] = getEta(hit.id());
232 >     hbheRecHit.phi[hbheRecHit.n] = getPhi(hit.id());
233 >     hbheRecHit.isjet[hbheRecHit.n] = false;
234 >     if(!excludeJets_){
235 >       for(unsigned int j = 0 ; j < jets->size(); ++j){
236 >         const reco::Jet& jet = (*jets)[j];
237 >         double dr = reco::deltaR(hbheRecHit.eta[hbheRecHit.n],hbheRecHit.phi[hbheRecHit.n],jet.eta(),jet.phi());
238 >         if(dr < cone){ hbheRecHit.isjet[hbheRecHit.n] = true; }
239 >       }
240 >     }
241       hbheRecHit.n++;
242     }
243 <
243 >  
244     for(unsigned int i = 0; i < ebHits->size(); ++i){
245       const EcalRecHit & hit= (*ebHits)[i];
246       ebRecHit.e[ebRecHit.n] = hit.energy();
247       ebRecHit.et[ebRecHit.n] = getEt(hit.id(),hit.energy());
248       ebRecHit.eta[ebRecHit.n] = getEta(hit.id());
249       ebRecHit.phi[ebRecHit.n] = getPhi(hit.id());
250 +     ebRecHit.isjet[ebRecHit.n] = false;
251 +     if(!excludeJets_){
252 +       for(unsigned int j = 0 ; j < jets->size(); ++j){
253 +         const reco::Jet& jet = (*jets)[j];
254 +         double dr = reco::deltaR(ebRecHit.eta[ebRecHit.n],ebRecHit.phi[ebRecHit.n],jet.eta(),jet.phi());
255 +         if(dr < cone){ ebRecHit.isjet[ebRecHit.n] = true; }
256 +       }
257 +     }
258       ebRecHit.n++;
259     }
260 <
260 >  
261     for(unsigned int i = 0; i < eeHits->size(); ++i){
262       const EcalRecHit & hit= (*eeHits)[i];
263       eeRecHit.e[eeRecHit.n] = hit.energy();
264       eeRecHit.et[eeRecHit.n] = getEt(hit.id(),hit.energy());
265       eeRecHit.eta[eeRecHit.n] = getEta(hit.id());
266       eeRecHit.phi[eeRecHit.n] = getPhi(hit.id());
267 +     eeRecHit.isjet[eeRecHit.n] = false;
268 +     if(!excludeJets_){
269 +       for(unsigned int j = 0 ; j < jets->size(); ++j){
270 +         const reco::Jet& jet = (*jets)[j];
271 +         double dr = reco::deltaR(eeRecHit.eta[eeRecHit.n],eeRecHit.phi[eeRecHit.n],jet.eta(),jet.phi());
272 +         if(dr < cone){ eeRecHit.isjet[eeRecHit.n] = true; }
273 +       }
274 +     }
275       eeRecHit.n++;
276     }
277 <
277 >  
278     eeTree->Fill();
279     ebTree->Fill();
280 <
280 >  
281     hbheTree->Fill();
282     hfTree->Fill();
283 <
283 >  
284   }
285  
286  
# Line 248 | Line 288 | RecHitTreeProducer::analyze(const edm::E
288   void
289   RecHitTreeProducer::beginJob()
290   {
291 <
291 >  
292    hbheTree = fs->make<TTree>("hbhe","");
293    hbheTree->Branch("n",&hbheRecHit.n,"n/I");
294    hbheTree->Branch("e",hbheRecHit.e,"e[n]/F");
295    hbheTree->Branch("et",hbheRecHit.et,"et[n]/F");
296    hbheTree->Branch("eta",hbheRecHit.eta,"eta[n]/F");
297    hbheTree->Branch("phi",hbheRecHit.phi,"phi[n]/F");
298 <
298 >  hbheTree->Branch("isjet",hbheRecHit.isjet,"isjet[n]/I");
299 >  
300    hfTree = fs->make<TTree>("hf","");
301    hfTree->Branch("n",&hfRecHit.n,"n/I");
302    hfTree->Branch("e",hfRecHit.e,"e[n]/F");
303    hfTree->Branch("et",hfRecHit.et,"et[n]/F");
304    hfTree->Branch("eta",hfRecHit.eta,"eta[n]/F");
305    hfTree->Branch("phi",hfRecHit.phi,"phi[n]/F");
306 +  hfTree->Branch("isjet",hfRecHit.isjet,"isjet[n]/I");
307  
308    eeTree = fs->make<TTree>("ee","");
309    eeTree->Branch("n",&eeRecHit.n,"n/I");
# Line 269 | Line 311 | RecHitTreeProducer::beginJob()
311    eeTree->Branch("et",eeRecHit.et,"et[n]/F");
312    eeTree->Branch("eta",eeRecHit.eta,"eta[n]/F");
313    eeTree->Branch("phi",eeRecHit.phi,"phi[n]/F");
314 <
314 >  eeTree->Branch("isjet",eeRecHit.isjet,"isjet[n]/I");
315 >
316    ebTree = fs->make<TTree>("eb","");
317    ebTree->Branch("n",&ebRecHit.n,"n/I");
318    ebTree->Branch("e",ebRecHit.e,"e[n]/F");
319    ebTree->Branch("et",ebRecHit.et,"et[n]/F");
320    ebTree->Branch("eta",ebRecHit.eta,"eta[n]/F");
321    ebTree->Branch("phi",ebRecHit.phi,"phi[n]/F");
322 +  ebTree->Branch("isjet",ebRecHit.isjet,"isjet[n]/I");
323  
324   }
325  
# Line 289 | Line 333 | double RecHitTreeProducer::getEt(const D
333    double et = energy*sin(pos.theta());
334    return et;
335   }
336 <
336 >
337   double RecHitTreeProducer::getEta(const DetId &id){
338    const GlobalPoint& pos=geo->getPosition(id);
339    double et = pos.eta();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines