CMS 3D CMS Logo

Public Member Functions | Private Attributes

EgammaHLTHcalIsolationDoubleCone Class Reference

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

List of all members.

Public Member Functions

 EgammaHLTHcalIsolationDoubleCone (double egHcalIso_PtMin, double egHcalIso_ConeSize, double egHcalIso_Exclusion)
float getConeSize ()
 Get isolation cone size.
float getExclusion ()
 Get exclusion region.
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 exclusion
float ptMin

Detailed Description

Description: sum pt hcal hits in cone around egamma candidate but exlude central cone mostly identical to EgammaHLTHcalIsolation, but with an inner exclusion cone

Usage: <usage>

Definition at line 38 of file EgammaHLTHcalIsolationDoubleCone.h.


Constructor & Destructor Documentation

EgammaHLTHcalIsolationDoubleCone::EgammaHLTHcalIsolationDoubleCone ( double  egHcalIso_PtMin,
double  egHcalIso_ConeSize,
double  egHcalIso_Exclusion 
) [inline]

Definition at line 43 of file EgammaHLTHcalIsolationDoubleCone.h.

                                                                                                                  :
    ptMin(egHcalIso_PtMin),conesize(egHcalIso_ConeSize),exclusion(egHcalIso_Exclusion){
      /* 
         std::cout << "EgammaHLTHcalIsolation instance:"
         << " ptMin=" << ptMin << "|" << ptMinG
         << " conesize="<< conesize << "|" << conesizeG
         << std::endl;
      */
    }

Member Function Documentation

float EgammaHLTHcalIsolationDoubleCone::getConeSize ( ) [inline]

Get isolation cone size.

Definition at line 60 of file EgammaHLTHcalIsolationDoubleCone.h.

References conesize.

{ return conesize; }
float EgammaHLTHcalIsolationDoubleCone::getExclusion ( ) [inline]

Get exclusion region.

Definition at line 62 of file EgammaHLTHcalIsolationDoubleCone.h.

References exclusion.

{ return exclusion; }
float EgammaHLTHcalIsolationDoubleCone::getptMin ( ) [inline]

Get pt cut for hcal hits.

Definition at line 58 of file EgammaHLTHcalIsolationDoubleCone.h.

References ptMin.

{ return ptMin; }
float EgammaHLTHcalIsolationDoubleCone::isolPtSum ( const reco::RecoCandidate recocandidate,
const HBHERecHitCollection hbhe,
const HFRecHitCollection hf,
const CaloGeometry geometry 
)

Definition at line 25 of file EgammaHLTHcalIsolationDoubleCone.cc.

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

Referenced by EgammaHLTHcalIsolationDoubleConeProducers::produce().

                                                                                                                                                                                     {

  float hcalIsol=0.;

  float candSCphi = recocandidate->superCluster()->phi();
  float candSCeta = recocandidate->superCluster()->eta();
  if(candSCphi<0) candSCphi+=TWOPI;
  float conesizeSquared=conesize*conesize;
  float exclusionSquared= exclusion*exclusion;

  for(HBHERecHitCollection::const_iterator hbheItr = hbhe->begin(); hbheItr != hbhe->end(); ++hbheItr){
    double HcalHit_eta=geometry->getPosition(hbheItr->id()).eta(); //Attention getpos
    if(fabs(HcalHit_eta-candSCeta)<conesize) {
      float HcalHit_pth=hbheItr->energy()*sin(2*atan(exp(-HcalHit_eta)));
      if(HcalHit_pth>ptMin) {
        double HcalHit_phi=geometry->getPosition(hbheItr->id()).phi();
        float deltaeta=fabs(HcalHit_eta-candSCeta);
        if(HcalHit_phi<0) HcalHit_phi+=TWOPI;
        float deltaphi=fabs(HcalHit_phi-candSCphi);
        if(deltaphi>TWOPI) deltaphi-=TWOPI;
        if(deltaphi>PI) deltaphi=TWOPI-deltaphi;
        float newDelta= (deltaphi*deltaphi+ deltaeta*deltaeta);
        if(newDelta<conesizeSquared && newDelta>exclusionSquared ) hcalIsol+=HcalHit_pth;
      }
    }      
  }

  for(HFRecHitCollection::const_iterator hfItr = hf->begin(); hfItr != hf->end(); ++hfItr){
    double HcalHit_eta=geometry->getPosition(hfItr->id()).eta(); //Attention getpos
    if(fabs(HcalHit_eta-candSCeta)<conesize) {
      float HcalHit_pth=hfItr->energy()*sin(2*atan(exp(-HcalHit_eta)));
      if(HcalHit_pth>ptMin) {
        double HcalHit_phi=geometry->getPosition(hfItr->id()).phi();
        float deltaeta=fabs(HcalHit_eta-candSCeta);
        float deltaphi;
        if(HcalHit_phi<0) HcalHit_phi+=TWOPI;
        if(candSCphi<0) candSCphi+=TWOPI;
        deltaphi=fabs(HcalHit_phi-candSCphi);
        if(deltaphi>TWOPI) deltaphi-=TWOPI;
        if(deltaphi>PI) deltaphi=TWOPI-deltaphi;
        float newDelta= (deltaphi*deltaphi+ deltaeta*deltaeta);
        if(newDelta<conesizeSquared && newDelta>exclusionSquared ) hcalIsol+=HcalHit_pth;
      }
    }      
  }


  return hcalIsol;
  
}

Member Data Documentation

Definition at line 69 of file EgammaHLTHcalIsolationDoubleCone.h.

Referenced by getConeSize(), and isolPtSum().

Definition at line 70 of file EgammaHLTHcalIsolationDoubleCone.h.

Referenced by getExclusion(), and isolPtSum().

Definition at line 68 of file EgammaHLTHcalIsolationDoubleCone.h.

Referenced by getptMin(), and isolPtSum().