CMS 3D CMS Logo

Public Member Functions | Private Attributes

CaloTauElementsOperators Class Reference

#include <CaloTauElementsOperators.h>

Inheritance diagram for CaloTauElementsOperators:
TauElementsOperators

List of all members.

Public Member Functions

 CaloTauElementsOperators (reco::CaloTau &)
std::vector< std::pair
< math::XYZPoint, float > > 
EcalRecHitsInAnnulus (const math::XYZVector &coneAxis, const std::string innerconeMetric, const double innerconeSize, const std::string outerconeMetric, const double outerconeSize, const double EcalRecHit_minEt, const std::vector< std::pair< math::XYZPoint, float > > &myEcalRecHits) const
std::vector< std::pair
< math::XYZPoint, float > > 
EcalRecHitsInAnnulus (const math::XYZVector &coneAxis, const std::string innerconeMetric, const double innerconeSize, const std::string outerconeMetric, const double outerconeSize, const double EcalRecHit_minEt) const
std::vector< std::pair
< math::XYZPoint, float > > 
EcalRecHitsInCone (const math::XYZVector &coneAxis, const std::string coneMetric, const double coneSize, const double EcalRecHit_minEt) const
std::vector< std::pair
< math::XYZPoint, float > > 
EcalRecHitsInCone (const math::XYZVector &coneAxis, const std::string coneMetric, const double coneSize, const double EcalRecHit_minEt, const std::vector< std::pair< math::XYZPoint, float > > &myEcalRecHits) const
std::vector< std::pair
< math::XYZPoint, float > > 
neutralEcalBasicClustersInAnnulus (const math::XYZVector &coneAxis, const std::string innerconeMetric, const double innerconeSize, const std::string outerconeMetric, const double outerconeSize, const double neutralEcalBasicCluster_minEt) const
std::vector< std::pair
< math::XYZPoint, float > > 
neutralEcalBasicClustersInCone (const math::XYZVector &coneAxis, const std::string coneMetric, const double coneSize, const double neutralEcalBasicCluster_minEt) const
void setAreaMetricrecoElementsmaxabsEta (const double x)
 ~CaloTauElementsOperators ()

Private Attributes

double AreaMetric_recoElements_maxabsEta_
reco::CaloTauCaloTau_
std::vector< std::pair
< math::XYZPoint, float > > 
EcalRecHits_
ElementsInAnnulus
< math::XYZVector, Angle
< math::XYZVector,
math::XYZPoint >, Angle
< math::XYZVector,
math::XYZPoint >, std::pair
< math::XYZPoint, float > > 
EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_
ElementsInAnnulus
< math::XYZVector, Angle
< math::XYZVector,
math::XYZPoint >, DeltaR
< math::XYZVector,
math::XYZPoint >, std::pair
< math::XYZPoint, float > > 
EcalRecHitsinAnnulus_innerAngleouterDRmetrics_
ElementsInAnnulus
< math::XYZVector, DeltaR
< math::XYZVector,
math::XYZPoint >, Angle
< math::XYZVector,
math::XYZPoint >, std::pair
< math::XYZPoint, float > > 
EcalRecHitsinAnnulus_innerDRouterAnglemetrics_
ElementsInAnnulus
< math::XYZVector, DeltaR
< math::XYZVector,
math::XYZPoint >, DeltaR
< math::XYZVector,
math::XYZPoint >, std::pair
< math::XYZPoint, float > > 
EcalRecHitsinAnnulus_innerDRouterDRmetrics_
ElementsInCone
< math::XYZVector, Angle
< math::XYZVector,
math::XYZPoint >, std::pair
< math::XYZPoint, float > > 
EcalRecHitsinCone_Anglemetric_
ElementsInCone
< math::XYZVector, DeltaR
< math::XYZVector,
math::XYZPoint >, std::pair
< math::XYZPoint, float > > 
EcalRecHitsinCone_DRmetric_
Angle< math::XYZVector,
math::XYZPoint
metricAngle_
DeltaR< math::XYZVector,
math::XYZPoint
metricDR_

Detailed Description

Definition at line 17 of file CaloTauElementsOperators.h.


Constructor & Destructor Documentation

CaloTauElementsOperators::CaloTauElementsOperators ( reco::CaloTau theCaloTau)

Definition at line 5 of file CaloTauElementsOperators.cc.

References reco::CaloTau::caloTauTagInfoRef(), and TauElementsOperators::Tracks_.

                                                                      : TauElementsOperators(theCaloTau),CaloTau_(theCaloTau),AreaMetric_recoElements_maxabsEta_(2.5){
  Tracks_=theCaloTau.caloTauTagInfoRef()->Tracks();
  //EcalRecHits_=theCaloTau.caloTauTagInfoRef()->positionAndEnergyECALRecHits();
}
CaloTauElementsOperators::~CaloTauElementsOperators ( ) [inline]

Definition at line 20 of file CaloTauElementsOperators.h.

{} 

Member Function Documentation

std::vector< std::pair< math::XYZPoint, float > > CaloTauElementsOperators::EcalRecHitsInAnnulus ( const math::XYZVector coneAxis,
const std::string  innerconeMetric,
const double  innerconeSize,
const std::string  outerconeMetric,
const double  outerconeSize,
const double  EcalRecHit_minEt,
const std::vector< std::pair< math::XYZPoint, float > > &  myEcalRecHits 
) const

Definition at line 33 of file CaloTauElementsOperators.cc.

References AreaMetric_recoElements_maxabsEta_, EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_, EcalRecHitsinAnnulus_innerAngleouterDRmetrics_, EcalRecHitsinAnnulus_innerDRouterAnglemetrics_, EcalRecHitsinAnnulus_innerDRouterDRmetrics_, metricAngle_, metricDR_, FixedAreaIsolationCone::setAcceptanceLimit(), and funct::sin().

Referenced by CaloRecoTauAlgorithm::buildCaloTau(), and EcalRecHitsInAnnulus().

                                                                                                                                                                                                                                                                                                   {     
   std::vector<std::pair<math::XYZPoint,float> > theFilteredEcalRecHits;
   for (std::vector<std::pair<math::XYZPoint,float> >::const_iterator iEcalRecHit=myEcalRecHits.begin();iEcalRecHit!=myEcalRecHits.end();++iEcalRecHit) {
      if ((*iEcalRecHit).second*fabs(sin((*iEcalRecHit).first.theta()))>EcalRecHit_minEt)theFilteredEcalRecHits.push_back(*iEcalRecHit);
   }  
   std::vector<std::pair<math::XYZPoint,float> > theFilteredEcalRecHitsInAnnulus;
   if (outerconeMetric=="DR"){
      if (innerconeMetric=="DR"){
         theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerDRouterDRmetrics_(coneAxis,metricDR_,innerconeSize,metricDR_,outerconeSize,theFilteredEcalRecHits);
      }else if(innerconeMetric=="angle"){
         theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterDRmetrics_(coneAxis,metricAngle_,innerconeSize,metricDR_,outerconeSize,theFilteredEcalRecHits);
      }else if(innerconeMetric=="area"){
         int errorFlag=0;
         FixedAreaIsolationCone theFixedAreaSignalCone;
         theFixedAreaSignalCone.setAcceptanceLimit(AreaMetric_recoElements_maxabsEta_);
         double innercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),0,innerconeSize,errorFlag);
         if (errorFlag!=0)return std::vector<std::pair<math::XYZPoint,float> >();
         theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterDRmetrics_(coneAxis,metricAngle_,innercone_angle,metricDR_,outerconeSize,theFilteredEcalRecHits);
      }else return std::vector<std::pair<math::XYZPoint,float> >();
   }else if(outerconeMetric=="angle"){
      if (innerconeMetric=="DR"){
         theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerDRouterAnglemetrics_(coneAxis,metricDR_,innerconeSize,metricAngle_,outerconeSize,theFilteredEcalRecHits);
      }else if(innerconeMetric=="angle"){
         theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_(coneAxis,metricAngle_,innerconeSize,metricAngle_,outerconeSize,theFilteredEcalRecHits);
      }else if(innerconeMetric=="area"){
         int errorFlag=0;
         FixedAreaIsolationCone theFixedAreaSignalCone;
         theFixedAreaSignalCone.setAcceptanceLimit(AreaMetric_recoElements_maxabsEta_);
         double innercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),0,innerconeSize,errorFlag);
         if (errorFlag!=0)return theFilteredEcalRecHitsInAnnulus;
         theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_(coneAxis,metricAngle_,innercone_angle,metricAngle_,outerconeSize,theFilteredEcalRecHits);
      }else return std::vector<std::pair<math::XYZPoint,float> >();
   }else if(outerconeMetric=="area"){
      int errorFlag=0;
      FixedAreaIsolationCone theFixedAreaSignalCone;
      theFixedAreaSignalCone.setAcceptanceLimit(AreaMetric_recoElements_maxabsEta_);
      if (innerconeMetric=="DR"){
         // not implemented yet
      }else if(innerconeMetric=="angle"){
         double outercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),innerconeSize,outerconeSize,errorFlag);    
         if (errorFlag!=0)return theFilteredEcalRecHitsInAnnulus;
         theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_(coneAxis,metricAngle_,innerconeSize,metricAngle_,outercone_angle,theFilteredEcalRecHits);
      }else if(innerconeMetric=="area"){
         double innercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),0,innerconeSize,errorFlag);    
         if (errorFlag!=0)return theFilteredEcalRecHitsInAnnulus;
         double outercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),innercone_angle,outerconeSize,errorFlag);
         if (errorFlag!=0)return theFilteredEcalRecHitsInAnnulus;
         theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_(coneAxis,metricAngle_,innercone_angle,metricAngle_,outercone_angle,theFilteredEcalRecHits);
      }else return std::vector<std::pair<math::XYZPoint,float> >();
   }
   return theFilteredEcalRecHitsInAnnulus;
}
std::vector< std::pair< math::XYZPoint, float > > CaloTauElementsOperators::EcalRecHitsInAnnulus ( const math::XYZVector coneAxis,
const std::string  innerconeMetric,
const double  innerconeSize,
const std::string  outerconeMetric,
const double  outerconeSize,
const double  EcalRecHit_minEt 
) const

Definition at line 94 of file CaloTauElementsOperators.cc.

References EcalRecHits_, and EcalRecHitsInAnnulus().

{
   //this function exists only to provide compatability w/ CMSSW_2_2_3 out of the box.  Newer versions recompute the interesting rechits inside RecoTau
   return EcalRecHitsInAnnulus(coneAxis, innerconeMetric, innerconeSize, outerconeMetric, outerconeSize, EcalRecHit_minEt, this->EcalRecHits_);
}
std::vector< std::pair< math::XYZPoint, float > > CaloTauElementsOperators::EcalRecHitsInCone ( const math::XYZVector coneAxis,
const std::string  coneMetric,
const double  coneSize,
const double  EcalRecHit_minEt,
const std::vector< std::pair< math::XYZPoint, float > > &  myEcalRecHits 
) const

Definition at line 11 of file CaloTauElementsOperators.cc.

References AreaMetric_recoElements_maxabsEta_, EcalRecHitsinCone_Anglemetric_, EcalRecHitsinCone_DRmetric_, metricAngle_, metricDR_, FixedAreaIsolationCone::setAcceptanceLimit(), and funct::sin().

Referenced by EcalRecHitsInCone().

                                                                                                                                                                                                                         {
   std::vector<std::pair<math::XYZPoint,float> > theFilteredEcalRecHits;
   for (std::vector<std::pair<math::XYZPoint,float> >::const_iterator iEcalRecHit=myEcalRecHits.begin();iEcalRecHit!=myEcalRecHits.end();++iEcalRecHit) {
      if ((*iEcalRecHit).second*fabs(sin((*iEcalRecHit).first.theta()))>EcalRecHit_minEt)theFilteredEcalRecHits.push_back(*iEcalRecHit);
   }  
   std::vector<std::pair<math::XYZPoint,float> > theFilteredEcalRecHitsInCone;
   if (coneMetric=="DR"){
      theFilteredEcalRecHitsInCone=EcalRecHitsinCone_DRmetric_(coneAxis,metricDR_,coneSize,theFilteredEcalRecHits);
   }else if(coneMetric=="angle"){
      theFilteredEcalRecHitsInCone=EcalRecHitsinCone_Anglemetric_(coneAxis,metricAngle_,coneSize,theFilteredEcalRecHits);
   }else if(coneMetric=="area"){
      int errorFlag = 0;
      FixedAreaIsolationCone fixedAreaCone;
      fixedAreaCone.setAcceptanceLimit(AreaMetric_recoElements_maxabsEta_);
      double coneAngle=fixedAreaCone(coneAxis.theta(),coneAxis.phi(),0,coneSize,errorFlag);
      if (errorFlag!=0) return std::vector<std::pair<math::XYZPoint,float> >();
      theFilteredEcalRecHitsInCone=EcalRecHitsinCone_Anglemetric_(coneAxis,metricAngle_,coneAngle,theFilteredEcalRecHits);
   }else return std::vector<std::pair<math::XYZPoint,float> >(); 
   return theFilteredEcalRecHitsInCone;
}
std::vector< std::pair< math::XYZPoint, float > > CaloTauElementsOperators::EcalRecHitsInCone ( const math::XYZVector coneAxis,
const std::string  coneMetric,
const double  coneSize,
const double  EcalRecHit_minEt 
) const

Definition at line 87 of file CaloTauElementsOperators.cc.

References EcalRecHits_, and EcalRecHitsInCone().

{
   //this function exists only to provide compatability w/ CMSSW_2_2_3 out of the box.Newer versions recompute the interesting rechits inside RecoTau
   return EcalRecHitsInCone(coneAxis, coneMetric, coneSize, EcalRecHit_minEt, this->EcalRecHits_);
}
std::vector<std::pair<math::XYZPoint,float> > CaloTauElementsOperators::neutralEcalBasicClustersInAnnulus ( const math::XYZVector coneAxis,
const std::string  innerconeMetric,
const double  innerconeSize,
const std::string  outerconeMetric,
const double  outerconeSize,
const double  neutralEcalBasicCluster_minEt 
) const
std::vector<std::pair<math::XYZPoint,float> > CaloTauElementsOperators::neutralEcalBasicClustersInCone ( const math::XYZVector coneAxis,
const std::string  coneMetric,
const double  coneSize,
const double  neutralEcalBasicCluster_minEt 
) const
void CaloTauElementsOperators::setAreaMetricrecoElementsmaxabsEta ( const double  x) [inline]

Member Data Documentation

Definition at line 38 of file CaloTauElementsOperators.h.

std::vector<std::pair<math::XYZPoint,float> > CaloTauElementsOperators::EcalRecHits_ [private]

Definition at line 39 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus(), and EcalRecHitsInCone().

Definition at line 48 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus().

Definition at line 49 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus().

Definition at line 47 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus().

Definition at line 46 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus().

Definition at line 45 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInCone().

Definition at line 44 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInCone().

Reimplemented from TauElementsOperators.

Definition at line 43 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus(), and EcalRecHitsInCone().

Reimplemented from TauElementsOperators.

Definition at line 42 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus(), and EcalRecHitsInCone().