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.14 by frankma, Thu Oct 13 10:40:53 2011 UTC vs.
Revision 1.19 by yilmaz, Wed Nov 30 21:26:08 2011 UTC

# Line 12 | Line 12
12   */
13   //
14   // Original Author:  Yetkin Yilmaz
15 < // Modified: Frank Ma
15 > // Modified: Frank Ma, Yen-Jie Lee
16   //         Created:  Tue Sep  7 11:38:19 EDT 2010
17   // $Id$
18   //
19   //
20  
21 <
21 > #define versionTag "v1"
22   // system include files
23   #include <memory>
24   #include <vector>
# Line 79 | Line 79 | struct MyRecHit{
79    float et[MAXHITS];
80    float eta[MAXHITS];
81    float phi[MAXHITS];
82 +  float perp[MAXHITS];
83 +  float emEt[MAXHITS];
84 +  float hadEt[MAXHITS];
85 +
86    bool isjet[MAXHITS];
87 <  float etvtx[MAXHITS];
88 <  float etavtx[MAXHITS];
87 >  float etVtx[MAXHITS];
88 >  float etaVtx[MAXHITS];
89 >  float phiVtx[MAXHITS];
90 >  float perpVtx[MAXHITS];
91    float emEtVtx[MAXHITS];
92    float hadEtVtx[MAXHITS];
93  
# Line 107 | Line 113 | class RecHitTreeProducer : public edm::E
113     public:
114        explicit RecHitTreeProducer(const edm::ParameterSet&);
115        ~RecHitTreeProducer();
116 <  double       getEt(const DetId &id, double energy);
117 <  double       getEta(const DetId &id);
118 <  double       getPhi(const DetId &id);
116 >  double       getEt(const DetId &id, double energy, reco::Vertex::Point vtx = reco::Vertex::Point(0,0,0));
117 >  double       getEta(const DetId &id, reco::Vertex::Point vtx = reco::Vertex::Point(0,0,0));
118 >  double       getPhi(const DetId &id, reco::Vertex::Point vtx = reco::Vertex::Point(0,0,0));
119 >  double       getPerp(const DetId &id, reco::Vertex::Point vtx = reco::Vertex::Point(0,0,0));
120 >
121 >  math::XYZPoint getPosition(const DetId &id, reco::Vertex::Point vtx = reco::Vertex::Point(0,0,0));
122 >  double getEt(math::XYZPoint pos, double energy);
123 >
124    reco::Vertex::Point getVtx(const edm::Event& ev);
125  
126  
# Line 194 | Line 205 | class RecHitTreeProducer : public edm::E
205     bool doTowers_;
206     bool doEcal_;
207     bool doHcal_;
208 +   bool doHF_;
209 +   bool hasVtx_;
210 +  bool saveBothVtx_;
211  
212     bool doFastJet_;
213  
214    bool doEbyEonly_;
215 +
216   };
217  
218   //
# Line 230 | Line 245 | RecHitTreeProducer::RecHitTreeProducer(c
245    doTowers_ = iConfig.getUntrackedParameter<bool>("doTowers",true);
246    doEcal_ = iConfig.getUntrackedParameter<bool>("doEcal",true);
247    doHcal_ = iConfig.getUntrackedParameter<bool>("doHcal",true);
248 +  doHF_ = iConfig.getUntrackedParameter<bool>("doHF",true);
249 +  hasVtx_ = iConfig.getUntrackedParameter<bool>("hasVtx",true);
250 +  saveBothVtx_ = iConfig.getUntrackedParameter<bool>("saveBothVtx",false);
251 +
252    doFastJet_ = iConfig.getUntrackedParameter<bool>("doFastJet",true);
253    FastJetTag_ = iConfig.getUntrackedParameter<edm::InputTag>("FastJetTag",edm::InputTag("kt4CaloJets"));
254    doEbyEonly_ = iConfig.getUntrackedParameter<bool>("doEbyEonly",false);
# Line 241 | Line 260 | RecHitTreeProducer::RecHitTreeProducer(c
260    ebPtMin_ = iConfig.getUntrackedParameter<double>("EBTreePtMin",0);
261    eePtMin_ = iConfig.getUntrackedParameter<double>("EETreePtMin",0.);
262    towerPtMin_ = iConfig.getUntrackedParameter<double>("TowerTreePtMin",0.);
263 +
264 +
265   }
266  
267  
# Line 271 | Line 292 | RecHitTreeProducer::analyze(const edm::E
292     bkg.n = 0;
293  
294    // get vertex
295 <  reco::Vertex::Point vtx = getVtx(ev);
295 >   reco::Vertex::Point vtx(0,0,0);
296 >  if (hasVtx_) vtx = getVtx(ev);
297  
298 <   if(doEcal_){
299 <  ev.getByLabel(EBSrc_,ebHits);
300 <  ev.getByLabel(EESrc_,eeHits);
298 >  if(doEcal_){
299 >    ev.getByLabel(EBSrc_,ebHits);
300 >    ev.getByLabel(EESrc_,eeHits);
301     }
302 +
303    if(doHcal_){
304 <  ev.getByLabel(HcalRecHitHFSrc_,hfHits);
305 <  ev.getByLabel(HcalRecHitHBHESrc_,hbheHits);
304 >    ev.getByLabel(HcalRecHitHBHESrc_,hbheHits);
305 >  }
306 >  if(doHF_){
307 >    ev.getByLabel(HcalRecHitHFSrc_,hfHits);
308    }
309 +
310    if(useJets_) {
311      ev.getByLabel(JetSrc_,jets);
312    }
# Line 317 | Line 343 | RecHitTreeProducer::analyze(const edm::E
343     int nHFlongMinus = 0;
344     int nHFshortMinus = 0;
345     int nHFtowerMinus = 0;
346 <
347 <
322 <  
323 <   if(doHcal_){
346 >
347 >   if(doHF_){
348     for(unsigned int i = 0; i < hfHits->size(); ++i){
349       const HFRecHit & hit= (*hfHits)[i];
350       hfRecHit.e[hfRecHit.n] = hit.energy();
351 <     hfRecHit.et[hfRecHit.n] = getEt(hit.id(),hit.energy());
352 <     hfRecHit.eta[hfRecHit.n] = getEta(hit.id());
353 <     hfRecHit.phi[hfRecHit.n] = getPhi(hit.id());
351 >     math::XYZPoint pos = getPosition(hit.id(),vtx);
352 >
353 >     if(!saveBothVtx_){
354 >       hfRecHit.et[hfRecHit.n] = getEt(pos,hit.energy());
355 >       hfRecHit.eta[hfRecHit.n] = pos.eta();
356 >       hfRecHit.phi[hfRecHit.n] = pos.phi();
357 >       hfRecHit.perp[hfRecHit.n] = pos.rho();
358 >     }else{
359 >       hfRecHit.et[hfRecHit.n] = getEt(hit.id(),hit.energy());
360 >       hfRecHit.eta[hfRecHit.n] = getEta(hit.id());
361 >       hfRecHit.phi[hfRecHit.n] = getPhi(hit.id());
362 >       hfRecHit.perp[hfRecHit.n] = getPerp(hit.id());
363 >
364 >       hfRecHit.etVtx[hfRecHit.n] = getEt(pos,hit.energy());
365 >       hfRecHit.etaVtx[hfRecHit.n] = pos.eta();
366 >       hfRecHit.phiVtx[hfRecHit.n] = pos.phi();
367 >       hfRecHit.perpVtx[hfRecHit.n] = pos.rho();
368 >
369 >     }
370 >
371       hfRecHit.isjet[hfRecHit.n] = false;
372       hfRecHit.depth[hfRecHit.n] = hit.id().depth();
373  
374       if(hit.id().ieta() > 0){
375 <     if(hit.energy() > hfShortThreshold_ && hit.id().depth() != 1) nHFshortPlus++;
376 <     if(hit.energy() > hfLongThreshold_ && hit.id().depth() == 1) nHFlongPlus++;
375 >       if(hit.energy() > hfShortThreshold_ && hit.id().depth() != 1) nHFshortPlus++;
376 >       if(hit.energy() > hfLongThreshold_ && hit.id().depth() == 1) nHFlongPlus++;
377       }else{
378         if(hit.energy() > hfShortThreshold_ && hit.id().depth() != 1) nHFshortMinus++;
379         if(hit.energy() > hfLongThreshold_ && hit.id().depth() == 1) nHFlongMinus++;
# Line 347 | Line 388 | RecHitTreeProducer::analyze(const edm::E
388       }
389       if (hfRecHit.et[hfRecHit.n]>=hfPtMin_) hfRecHit.n++;
390     }
391 <   if(!doEbyEonly_){
391 >
392 >   if(doHcal_ && !doEbyEonly_){
393     for(unsigned int i = 0; i < hbheHits->size(); ++i){
394       const HBHERecHit & hit= (*hbheHits)[i];
395       if (getEt(hit.id(),hit.energy())<hbhePtMin_) continue;
396 +
397       hbheRecHit.e[hbheRecHit.n] = hit.energy();
398 <     hbheRecHit.et[hbheRecHit.n] = getEt(hit.id(),hit.energy());
399 <     hbheRecHit.eta[hbheRecHit.n] = getEta(hit.id());
400 <     hbheRecHit.phi[hbheRecHit.n] = getPhi(hit.id());
401 <     hbheRecHit.isjet[hbheRecHit.n] = false;
398 >     math::XYZPoint pos = getPosition(hit.id(),vtx);
399 >    
400 >     if(!saveBothVtx_){
401 >       hbheRecHit.et[hbheRecHit.n] = getEt(pos,hit.energy());
402 >       hbheRecHit.eta[hbheRecHit.n] = pos.eta();
403 >       hbheRecHit.phi[hbheRecHit.n] = pos.phi();
404 >       hbheRecHit.perp[hbheRecHit.n] = pos.rho();
405 >     }else{
406 >       hbheRecHit.et[hbheRecHit.n] = getEt(hit.id(),hit.energy());
407 >       hbheRecHit.eta[hbheRecHit.n] = getEta(hit.id());
408 >       hbheRecHit.phi[hbheRecHit.n] = getPhi(hit.id());
409 >       hbheRecHit.perp[hbheRecHit.n] = getPerp(hit.id());
410 >
411 >       hbheRecHit.etVtx[hbheRecHit.n] = getEt(pos,hit.energy());
412 >       hbheRecHit.etaVtx[hbheRecHit.n] = pos.eta();
413 >       hbheRecHit.phiVtx[hbheRecHit.n] = pos.phi();
414 >       hbheRecHit.perpVtx[hbheRecHit.n] = pos.rho();
415 >
416 >     }
417 >
418 >     hbheRecHit.isjet[hbheRecHit.n] = false;
419 >     hbheRecHit.depth[hbheRecHit.n] = hit.id().depth();
420 >
421       if(useJets_){
422         for(unsigned int j = 0 ; j < jets->size(); ++j){
423           const reco::Jet& jet = (*jets)[j];
# Line 371 | Line 433 | RecHitTreeProducer::analyze(const edm::E
433     for(unsigned int i = 0; i < ebHits->size(); ++i){
434       const EcalRecHit & hit= (*ebHits)[i];
435       if (getEt(hit.id(),hit.energy())<ebPtMin_) continue;
436 +
437       ebRecHit.e[ebRecHit.n] = hit.energy();
438 <     ebRecHit.et[ebRecHit.n] = getEt(hit.id(),hit.energy());
439 <     ebRecHit.eta[ebRecHit.n] = getEta(hit.id());
440 <     ebRecHit.phi[ebRecHit.n] = getPhi(hit.id());
438 >     math::XYZPoint pos = getPosition(hit.id(),vtx);
439 >
440 >     if(!saveBothVtx_){
441 >       ebRecHit.et[ebRecHit.n] = getEt(pos,hit.energy());
442 >       ebRecHit.eta[ebRecHit.n] = pos.eta();
443 >       ebRecHit.phi[ebRecHit.n] = pos.phi();
444 >       ebRecHit.perp[ebRecHit.n] = pos.rho();
445 >     }else{
446 >       ebRecHit.et[ebRecHit.n] = getEt(hit.id(),hit.energy());
447 >       ebRecHit.eta[ebRecHit.n] = getEta(hit.id());
448 >       ebRecHit.phi[ebRecHit.n] = getPhi(hit.id());
449 >       ebRecHit.perp[ebRecHit.n] = getPerp(hit.id());
450 >       ebRecHit.etVtx[ebRecHit.n] = getEt(pos,hit.energy());
451 >       ebRecHit.etaVtx[ebRecHit.n] = pos.eta();
452 >       ebRecHit.phiVtx[ebRecHit.n] = pos.phi();
453 >       ebRecHit.perpVtx[ebRecHit.n] = pos.rho();
454 >
455 >     }
456 >
457       ebRecHit.isjet[ebRecHit.n] = false;
458       if(useJets_){
459         for(unsigned int j = 0 ; j < jets->size(); ++j){
# Line 389 | Line 468 | RecHitTreeProducer::analyze(const edm::E
468     for(unsigned int i = 0; i < eeHits->size(); ++i){
469       const EcalRecHit & hit= (*eeHits)[i];
470       if (getEt(hit.id(),hit.energy())<eePtMin_) continue;
471 +
472       eeRecHit.e[eeRecHit.n] = hit.energy();
473 <     eeRecHit.et[eeRecHit.n] = getEt(hit.id(),hit.energy());
474 <     eeRecHit.eta[eeRecHit.n] = getEta(hit.id());
475 <     eeRecHit.phi[eeRecHit.n] = getPhi(hit.id());
473 >     math::XYZPoint pos = getPosition(hit.id(),vtx);
474 >
475 >     if(!saveBothVtx_){
476 >       eeRecHit.et[eeRecHit.n] = getEt(pos,hit.energy());
477 >       eeRecHit.eta[eeRecHit.n] = pos.eta();
478 >       eeRecHit.phi[eeRecHit.n] = pos.phi();
479 >       eeRecHit.perp[eeRecHit.n] = pos.rho();
480 >     }else{
481 >       eeRecHit.et[eeRecHit.n] = getEt(hit.id(),hit.energy());
482 >       eeRecHit.eta[eeRecHit.n] = getEta(hit.id());
483 >       eeRecHit.phi[eeRecHit.n] = getPhi(hit.id());
484 >       eeRecHit.perp[eeRecHit.n] = getPerp(hit.id());
485 >       eeRecHit.etVtx[eeRecHit.n] = getEt(pos,hit.energy());
486 >       eeRecHit.etaVtx[eeRecHit.n] = pos.eta();
487 >       eeRecHit.phiVtx[eeRecHit.n] = pos.phi();
488 >       eeRecHit.perpVtx[eeRecHit.n] = pos.rho();
489 >
490 >     }
491 >
492       eeRecHit.isjet[eeRecHit.n] = false;
493 +
494       if(useJets_){
495         for(unsigned int j = 0 ; j < jets->size(); ++j){
496           const reco::Jet& jet = (*jets)[j];
# Line 410 | Line 507 | RecHitTreeProducer::analyze(const edm::E
507        for(unsigned int i = 0; i < towers->size(); ++i){
508        const CaloTower & hit= (*towers)[i];
509        if (getEt(hit.id(),hit.energy())<towerPtMin_) continue;
510 <      myTowers.e[myTowers.n] = hit.energy();
511 <      myTowers.et[myTowers.n] = getEt(hit.id(),hit.energy());
512 <      myTowers.eta[myTowers.n] = getEta(hit.id());
513 <      myTowers.phi[myTowers.n] = getPhi(hit.id());
510 >
511 >      myTowers.et[myTowers.n] = hit.p4(vtx).Et();
512 >      myTowers.eta[myTowers.n] = hit.p4(vtx).Eta();
513 >      myTowers.phi[myTowers.n] = hit.p4(vtx).Phi();
514 >      myTowers.emEt[myTowers.n] = hit.emEt(vtx);
515 >      myTowers.hadEt[myTowers.n] = hit.hadEt(vtx);
516 >
517 >      if (saveBothVtx_) {
518 >        myTowers.e[myTowers.n] = hit.energy();
519 >        myTowers.et[myTowers.n] = getEt(hit.id(),hit.energy());
520 >        myTowers.eta[myTowers.n] = getEta(hit.id());
521 >        myTowers.phi[myTowers.n] = getPhi(hit.id());
522 >        myTowers.isjet[myTowers.n] = false;
523 >        myTowers.etVtx[myTowers.n] = hit.p4(vtx).Et();
524 >        myTowers.etaVtx[myTowers.n] = hit.p4(vtx).Eta();
525 >        myTowers.emEtVtx[myTowers.n] = hit.emEt(vtx);
526 >        myTowers.hadEtVtx[myTowers.n] = hit.hadEt(vtx);
527 >      }
528 >
529        myTowers.isjet[myTowers.n] = false;
418      myTowers.etvtx[myTowers.n] = hit.p4(vtx).Et();
419      myTowers.etavtx[myTowers.n] = hit.p4(vtx).Eta();
420      myTowers.emEtVtx[myTowers.n] = hit.emEt(vtx);
421      myTowers.hadEtVtx[myTowers.n] = hit.hadEt(vtx);
530  
531        if(hit.ieta() > 29 && hit.energy() > hfTowerThreshold_) nHFtowerPlus++;
532        if(hit.ieta() < -29 && hit.energy() > hfTowerThreshold_) nHFtowerMinus++;
# Line 482 | Line 590 | void
590   RecHitTreeProducer::beginJob()
591   {
592    
593 <  hbheTree = fs->make<TTree>("hbhe","");
593 >  hbheTree = fs->make<TTree>("hbhe",versionTag);
594    hbheTree->Branch("n",&hbheRecHit.n,"n/I");
595    hbheTree->Branch("e",hbheRecHit.e,"e[n]/F");
596    hbheTree->Branch("et",hbheRecHit.et,"et[n]/F");
597    hbheTree->Branch("eta",hbheRecHit.eta,"eta[n]/F");
598    hbheTree->Branch("phi",hbheRecHit.phi,"phi[n]/F");
599 +  hbheTree->Branch("perp",hbheRecHit.perp,"perp[n]/F");
600 +
601    hbheTree->Branch("isjet",hbheRecHit.isjet,"isjet[n]/O");
602 <  
603 <  hfTree = fs->make<TTree>("hf","");
602 >  hbheTree->Branch("depth",hfRecHit.depth,"depth[n]/I");
603 >
604 >  hfTree = fs->make<TTree>("hf",versionTag);
605    hfTree->Branch("n",&hfRecHit.n,"n/I");
606    hfTree->Branch("e",hfRecHit.e,"e[n]/F");
607    hfTree->Branch("et",hfRecHit.et,"et[n]/F");
608    hfTree->Branch("eta",hfRecHit.eta,"eta[n]/F");
609    hfTree->Branch("phi",hfRecHit.phi,"phi[n]/F");
610 +  hfTree->Branch("perp",hfRecHit.perp,"perp[n]/F");
611    hfTree->Branch("depth",hfRecHit.depth,"depth[n]/I");
612    hfTree->Branch("isjet",hfRecHit.isjet,"isjet[n]/O");
613  
614 <  eeTree = fs->make<TTree>("ee","");
614 >  eeTree = fs->make<TTree>("ee",versionTag);
615    eeTree->Branch("n",&eeRecHit.n,"n/I");
616    eeTree->Branch("e",eeRecHit.e,"e[n]/F");
617    eeTree->Branch("et",eeRecHit.et,"et[n]/F");
618    eeTree->Branch("eta",eeRecHit.eta,"eta[n]/F");
619    eeTree->Branch("phi",eeRecHit.phi,"phi[n]/F");
620 +  eeTree->Branch("perp",eeRecHit.perp,"perp[n]/F");
621 +
622    eeTree->Branch("isjet",eeRecHit.isjet,"isjet[n]/O");
623  
624 <  ebTree = fs->make<TTree>("eb","");
624 >  ebTree = fs->make<TTree>("eb",versionTag);
625    ebTree->Branch("n",&ebRecHit.n,"n/I");
626    ebTree->Branch("e",ebRecHit.e,"e[n]/F");
627    ebTree->Branch("et",ebRecHit.et,"et[n]/F");
628    ebTree->Branch("eta",ebRecHit.eta,"eta[n]/F");
629    ebTree->Branch("phi",ebRecHit.phi,"phi[n]/F");
630 +  ebTree->Branch("perp",ebRecHit.perp,"perp[n]/F");
631 +
632    ebTree->Branch("isjet",ebRecHit.isjet,"isjet[n]/O");
633  
634 <  towerTree = fs->make<TTree>("tower","");
634 >  towerTree = fs->make<TTree>("tower",versionTag);
635    towerTree->Branch("n",&myTowers.n,"n/I");
636    towerTree->Branch("e",myTowers.e,"e[n]/F");
637    towerTree->Branch("et",myTowers.et,"et[n]/F");
638    towerTree->Branch("eta",myTowers.eta,"eta[n]/F");
639    towerTree->Branch("phi",myTowers.phi,"phi[n]/F");
640    towerTree->Branch("isjet",myTowers.isjet,"isjet[n]/O");
641 <  towerTree->Branch("etvtx",myTowers.etvtx,"etvtx[n]/F");
642 <  towerTree->Branch("etavtx",myTowers.etavtx,"etavtx[n]/F");
643 <  towerTree->Branch("emEtVtx",myTowers.emEtVtx,"emEtVtx[n]/F");
644 <  towerTree->Branch("hadEtVtx",myTowers.hadEtVtx,"hadEtVtx[n]/F");
641 >  towerTree->Branch("emEt",myTowers.emEt,"emEt[n]/F");
642 >  towerTree->Branch("hadEt",myTowers.hadEt,"hadEt[n]/F");
643 >
644 >  if (saveBothVtx_) {
645 >    towerTree->Branch("etVtx",myTowers.etVtx,"etvtx[n]/F");
646 >    towerTree->Branch("etaVtx",myTowers.etaVtx,"etavtx[n]/F");
647 >    towerTree->Branch("emEtVtx",myTowers.emEtVtx,"emEtVtx[n]/F");
648 >    towerTree->Branch("hadEtVtx",myTowers.hadEtVtx,"hadEtVtx[n]/F");
649 >  }
650  
651  
652    if(doBasicClusters_){
653 <     bcTree = fs->make<TTree>("bc","");
653 >     bcTree = fs->make<TTree>("bc",versionTag);
654       bcTree->Branch("n",&myBC.n,"n/I");
655       bcTree->Branch("e",myBC.e,"e[n]/F");
656       bcTree->Branch("et",myBC.et,"et[n]/F");
# Line 542 | Line 663 | RecHitTreeProducer::beginJob()
663    }
664  
665    if(doFastJet_){
666 <     bkgTree = fs->make<TTree>("bkg","");
666 >     bkgTree = fs->make<TTree>("bkg",versionTag);
667       bkgTree->Branch("n",&bkg.n,"n/I");
668       bkgTree->Branch("rho",bkg.rho,"rho[n]/F");
669       bkgTree->Branch("sigma",bkg.sigma,"sigma[n]/F");
# Line 557 | Line 678 | void
678   RecHitTreeProducer::endJob() {
679   }
680  
681 < double RecHitTreeProducer::getEt(const DetId &id, double energy){
681 > math::XYZPoint RecHitTreeProducer::getPosition(const DetId &id, reco::Vertex::Point vtx){
682    const GlobalPoint& pos=geo->getPosition(id);
683 +  math::XYZPoint posV(pos.x() - vtx.x(),pos.y() - vtx.y(),pos.z() - vtx.z());
684 +  return posV;
685 + }
686 +
687 + double RecHitTreeProducer::getEt(math::XYZPoint pos, double energy){
688    double et = energy*sin(pos.theta());
689    return et;
690   }
691  
692 < double RecHitTreeProducer::getEta(const DetId &id){
692 > double RecHitTreeProducer::getEt(const DetId &id, double energy, reco::Vertex::Point vtx){
693 >  const GlobalPoint& pos=geo->getPosition(id);
694 >  double et = energy*sin(pos.theta());
695 >  return et;
696 > }
697 >
698 > double RecHitTreeProducer::getEta(const DetId &id, reco::Vertex::Point vtx){
699    const GlobalPoint& pos=geo->getPosition(id);
700    double et = pos.eta();
701    return et;
702   }
703  
704 < double RecHitTreeProducer::getPhi(const DetId &id){
704 > double RecHitTreeProducer::getPhi(const DetId &id, reco::Vertex::Point vtx){
705    const GlobalPoint& pos=geo->getPosition(id);
706    double et = pos.phi();
707    return et;
708   }
709  
710 + double RecHitTreeProducer::getPerp(const DetId &id, reco::Vertex::Point vtx){
711 +  const GlobalPoint& pos=geo->getPosition(id);
712 +  double et = pos.perp();
713 +  return et;
714 + }
715 +
716   reco::Vertex::Point RecHitTreeProducer::getVtx(const edm::Event& ev)
717   {
718    ev.getByLabel(VtxSrc_,vtxs);
# Line 588 | Line 726 | reco::Vertex::Point RecHitTreeProducer::
726    }
727    
728    if(nVertex<=0){
729 <    return reco::Vertex::Point(-999,-999,-999);
729 >    return reco::Vertex::Point(0,0,0);
730    }
731    return (*vtxs)[greatestvtx].position();
732   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines