CMS 3D CMS Logo

EgammaHLTHcalIsolation Class Reference

Description: sum pt hcal hits in cone around egamma candidate. More...

#include <RecoEgamma/EgammaHLTAlgos/interface/EgammaHLTHcalIsolation.h>

List of all members.

Public Member Functions

 EgammaHLTHcalIsolation (double egHcalIso_PtMin, double egHcalIso_ConeSize)
float getConeSize ()
 Get isolation cone size.
float getptMin ()
 Get pt cut for hcal hits.
float isolPtSum (const reco::RecoCandidate *recocandidate, const HBHERecHitCollection *hbhe, const HFRecHitCollection *hf, const CaloGeometry *geometry)

Private Attributes

float conesize
float ptMin


Detailed Description

Description: sum pt hcal hits in cone around egamma candidate.

Usage: <usage>

Definition at line 36 of file EgammaHLTHcalIsolation.h.


Constructor & Destructor Documentation

EgammaHLTHcalIsolation::EgammaHLTHcalIsolation ( double  egHcalIso_PtMin,
double  egHcalIso_ConeSize 
) [inline]

Definition at line 41 of file EgammaHLTHcalIsolation.h.

00041                                                                             :
00042     ptMin(egHcalIso_PtMin),conesize(egHcalIso_ConeSize){
00043       /* 
00044          std::cout << "EgammaHLTHcalIsolation instance:"
00045          << " ptMin=" << ptMin << "|" << ptMinG
00046          << " conesize="<< conesize << "|" << conesizeG
00047          << std::endl;
00048       */
00049     }


Member Function Documentation

float EgammaHLTHcalIsolation::getConeSize (  )  [inline]

Get isolation cone size.

Definition at line 58 of file EgammaHLTHcalIsolation.h.

References conesize.

00058 { return conesize; }

float EgammaHLTHcalIsolation::getptMin (  )  [inline]

Get pt cut for hcal hits.

Definition at line 56 of file EgammaHLTHcalIsolation.h.

References ptMin.

00056 { return ptMin; }

float EgammaHLTHcalIsolation::isolPtSum ( const reco::RecoCandidate recocandidate,
const HBHERecHitCollection hbhe,
const HFRecHitCollection hf,
const CaloGeometry geometry 
)

Definition at line 24 of file EgammaHLTHcalIsolation.cc.

References edm::SortedCollection< T, SORT >::begin(), conesize, edm::SortedCollection< T, SORT >::end(), eta, funct::exp(), CaloGeometry::getPosition(), phi, PI, ptMin, funct::sin(), reco::RecoCandidate::superCluster(), and TWOPI.

Referenced by EgammaHLTHcalIsolationProducersRegional::produce().

00024                                                                                                                                                                            {
00025 
00026   float hcalIsol=0.;
00027 
00028   float candSCphi = recocandidate->superCluster()->phi();
00029   float candSCeta = recocandidate->superCluster()->eta();
00030   if(candSCphi<0) candSCphi+=TWOPI;
00031   float conesizeSquared=conesize*conesize;
00032 
00033   for(HBHERecHitCollection::const_iterator hbheItr = hbhe->begin(); hbheItr != hbhe->end(); ++hbheItr){
00034     double HcalHit_eta=geometry->getPosition(hbheItr->id()).eta(); //Attention getpos
00035     if(fabs(HcalHit_eta-candSCeta)<conesize) {
00036       float HcalHit_pth=hbheItr->energy()*sin(2*atan(exp(-HcalHit_eta)));
00037       if(HcalHit_pth>ptMin) {
00038         double HcalHit_phi=geometry->getPosition(hbheItr->id()).phi();
00039         float deltaeta=fabs(HcalHit_eta-candSCeta);
00040         if(HcalHit_phi<0) HcalHit_phi+=TWOPI;
00041         float deltaphi=fabs(HcalHit_phi-candSCphi);
00042         if(deltaphi>TWOPI) deltaphi-=TWOPI;
00043         if(deltaphi>PI) deltaphi=TWOPI-deltaphi;
00044         float newDelta= (deltaphi*deltaphi+ deltaeta*deltaeta);
00045         if(newDelta<conesizeSquared) hcalIsol+=HcalHit_pth;
00046       }
00047     }      
00048   }
00049 
00050   for(HFRecHitCollection::const_iterator hfItr = hf->begin(); hfItr != hf->end(); ++hfItr){
00051     double HcalHit_eta=geometry->getPosition(hfItr->id()).eta(); //Attention getpos
00052     if(fabs(HcalHit_eta-candSCeta)<conesize) {
00053       float HcalHit_pth=hfItr->energy()*sin(2*atan(exp(-HcalHit_eta)));
00054       if(HcalHit_pth>ptMin) {
00055         double HcalHit_phi=geometry->getPosition(hfItr->id()).phi();
00056         float deltaeta=fabs(HcalHit_eta-candSCeta);
00057         float deltaphi;
00058         if(HcalHit_phi<0) HcalHit_phi+=TWOPI;
00059         if(candSCphi<0) candSCphi+=TWOPI;
00060         deltaphi=fabs(HcalHit_phi-candSCphi);
00061         if(deltaphi>TWOPI) deltaphi-=TWOPI;
00062         if(deltaphi>PI) deltaphi=TWOPI-deltaphi;
00063         float newDelta= (deltaphi*deltaphi+ deltaeta*deltaeta);
00064         if(newDelta<conesizeSquared) hcalIsol+=HcalHit_pth;
00065       }
00066     }      
00067 
00068 
00069     /*
00070     double HcalHit_energy=hfItr->energy();
00071     double HcalHit_eta=geometry->getPosition(hfItr->id()).eta();
00072     double HcalHit_phi=geometry->getPosition(hfItr->id()).phi();
00073     float HcalHit_pth=HcalHit_energy*sin(2*atan(exp(-HcalHit_eta)));
00074     if(HcalHit_pth>ptMin) {
00075       float deltaphi;
00076       if(HcalHit_phi<0) HcalHit_phi+=TWOPI;
00077       if(candSCphi<0) candSCphi+=TWOPI;
00078       deltaphi=fabs(HcalHit_phi-candSCphi);
00079       if(deltaphi>TWOPI) deltaphi-=TWOPI;
00080       if(deltaphi>PI) deltaphi=TWOPI-deltaphi;
00081       float deltaeta=fabs(HcalHit_eta-candSCeta);
00082       float newDelta= sqrt(deltaphi*deltaphi+ deltaeta*deltaeta);
00083       if(newDelta<conesize) hcalIsol+=HcalHit_pth;
00084     }
00085     */
00086 
00087 
00088   }
00089 
00090   return hcalIsol;
00091   
00092 }


Member Data Documentation

float EgammaHLTHcalIsolation::conesize [private]

Definition at line 66 of file EgammaHLTHcalIsolation.h.

Referenced by getConeSize(), and isolPtSum().

float EgammaHLTHcalIsolation::ptMin [private]

Definition at line 65 of file EgammaHLTHcalIsolation.h.

Referenced by getptMin(), and isolPtSum().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:20:10 2009 for CMSSW by  doxygen 1.5.4