CMS 3D CMS Logo

CaloTauElementsOperators Class Reference

#include <RecoTauTag/TauTagTools/interface/CaloTauElementsOperators.h>

Inheritance diagram for CaloTauElementsOperators:

TauElementsOperators

List of all members.

Public Member Functions

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

Private Attributes

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


Detailed Description

Definition at line 21 of file CaloTauElementsOperators.h.


Constructor & Destructor Documentation

CaloTauElementsOperators::CaloTauElementsOperators ( CaloTau theCaloTau  ) 

Definition at line 3 of file CaloTauElementsOperators.cc.

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

00003                                                                       : TauElementsOperators(theCaloTau),CaloTau_(theCaloTau),AreaMetric_recoElements_maxabsEta_(2.5){
00004   Tracks_=theCaloTau.caloTauTagInfoRef()->Tracks();
00005   EcalRecHits_=theCaloTau.caloTauTagInfoRef()->positionAndEnergyECALRecHits();
00006 }

CaloTauElementsOperators::~CaloTauElementsOperators (  )  [inline]

Definition at line 24 of file CaloTauElementsOperators.h.

00024 {} 


Member Function Documentation

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

Definition at line 27 of file CaloTauElementsOperators.cc.

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

Referenced by CaloRecoTauAlgorithm::buildCaloTau().

00027                                                                                                                                                                                                                                                                 {     
00028   vector<pair<math::XYZPoint,float> > theFilteredEcalRecHits;
00029   for (vector<pair<math::XYZPoint,float> >::const_iterator iEcalRecHit=EcalRecHits_.begin();iEcalRecHit!=EcalRecHits_.end();++iEcalRecHit) {
00030     if ((*iEcalRecHit).second*fabs(sin((*iEcalRecHit).first.theta()))>EcalRecHit_minEt)theFilteredEcalRecHits.push_back(*iEcalRecHit);
00031   }  
00032   vector<pair<math::XYZPoint,float> > theFilteredEcalRecHitsInAnnulus;
00033   if (outerconeMetric=="DR"){
00034     if (innerconeMetric=="DR"){
00035       theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerDRouterDRmetrics_(coneAxis,metricDR_,innerconeSize,metricDR_,outerconeSize,theFilteredEcalRecHits);
00036     }else if(innerconeMetric=="angle"){
00037       theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterDRmetrics_(coneAxis,metricAngle_,innerconeSize,metricDR_,outerconeSize,theFilteredEcalRecHits);
00038     }else if(innerconeMetric=="area"){
00039       int errorFlag=0;
00040       FixedAreaIsolationCone theFixedAreaSignalCone;
00041       theFixedAreaSignalCone.setAcceptanceLimit(AreaMetric_recoElements_maxabsEta_);
00042       double innercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),0,innerconeSize,errorFlag);
00043       if (errorFlag!=0)return vector<pair<math::XYZPoint,float> >();
00044       theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterDRmetrics_(coneAxis,metricAngle_,innercone_angle,metricDR_,outerconeSize,theFilteredEcalRecHits);
00045     }else return vector<pair<math::XYZPoint,float> >();
00046   }else if(outerconeMetric=="angle"){
00047     if (innerconeMetric=="DR"){
00048       theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerDRouterAnglemetrics_(coneAxis,metricDR_,innerconeSize,metricAngle_,outerconeSize,theFilteredEcalRecHits);
00049     }else if(innerconeMetric=="angle"){
00050       theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_(coneAxis,metricAngle_,innerconeSize,metricAngle_,outerconeSize,theFilteredEcalRecHits);
00051     }else if(innerconeMetric=="area"){
00052       int errorFlag=0;
00053       FixedAreaIsolationCone theFixedAreaSignalCone;
00054       theFixedAreaSignalCone.setAcceptanceLimit(AreaMetric_recoElements_maxabsEta_);
00055       double innercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),0,innerconeSize,errorFlag);
00056       if (errorFlag!=0)return theFilteredEcalRecHitsInAnnulus;
00057       theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_(coneAxis,metricAngle_,innercone_angle,metricAngle_,outerconeSize,theFilteredEcalRecHits);
00058     }else return vector<pair<math::XYZPoint,float> >();
00059   }else if(outerconeMetric=="area"){
00060     int errorFlag=0;
00061     FixedAreaIsolationCone theFixedAreaSignalCone;
00062     theFixedAreaSignalCone.setAcceptanceLimit(AreaMetric_recoElements_maxabsEta_);
00063     if (innerconeMetric=="DR"){
00064       // not implemented yet
00065     }else if(innerconeMetric=="angle"){
00066       double outercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),innerconeSize,outerconeSize,errorFlag);    
00067       if (errorFlag!=0)return theFilteredEcalRecHitsInAnnulus;
00068       theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_(coneAxis,metricAngle_,innerconeSize,metricAngle_,outercone_angle,theFilteredEcalRecHits);
00069     }else if(innerconeMetric=="area"){
00070       double innercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),0,innerconeSize,errorFlag);    
00071       if (errorFlag!=0)return theFilteredEcalRecHitsInAnnulus;
00072       double outercone_angle=theFixedAreaSignalCone(coneAxis.theta(),coneAxis.phi(),innercone_angle,outerconeSize,errorFlag);
00073       if (errorFlag!=0)return theFilteredEcalRecHitsInAnnulus;
00074       theFilteredEcalRecHitsInAnnulus=EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_(coneAxis,metricAngle_,innercone_angle,metricAngle_,outercone_angle,theFilteredEcalRecHits);
00075     }else return vector<pair<math::XYZPoint,float> >();
00076   }
00077   return theFilteredEcalRecHitsInAnnulus;
00078 }

vector< pair< math::XYZPoint, float > > CaloTauElementsOperators::EcalRecHitsInCone ( const math::XYZVector coneAxis,
const string  coneMetric,
const double  coneSize,
const double  EcalRecHit_minEt 
) const

Definition at line 7 of file CaloTauElementsOperators.cc.

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

00007                                                                                                                                                                                              {
00008   vector<pair<math::XYZPoint,float> > theFilteredEcalRecHits;
00009   for (vector<pair<math::XYZPoint,float> >::const_iterator iEcalRecHit=EcalRecHits_.begin();iEcalRecHit!=EcalRecHits_.end();++iEcalRecHit) {
00010     if ((*iEcalRecHit).second*fabs(sin((*iEcalRecHit).first.theta()))>EcalRecHit_minEt)theFilteredEcalRecHits.push_back(*iEcalRecHit);
00011   }  
00012   vector<pair<math::XYZPoint,float> > theFilteredEcalRecHitsInCone;
00013   if (coneMetric=="DR"){
00014     theFilteredEcalRecHitsInCone=EcalRecHitsinCone_DRmetric_(coneAxis,metricDR_,coneSize,theFilteredEcalRecHits);
00015   }else if(coneMetric=="angle"){
00016     theFilteredEcalRecHitsInCone=EcalRecHitsinCone_Anglemetric_(coneAxis,metricAngle_,coneSize,theFilteredEcalRecHits);
00017   }else if(coneMetric=="area"){
00018     int errorFlag = 0;
00019     FixedAreaIsolationCone fixedAreaCone;
00020     fixedAreaCone.setAcceptanceLimit(AreaMetric_recoElements_maxabsEta_);
00021     double coneAngle=fixedAreaCone(coneAxis.theta(),coneAxis.phi(),0,coneSize,errorFlag);
00022     if (errorFlag!=0) return vector<pair<math::XYZPoint,float> >();
00023     theFilteredEcalRecHitsInCone=EcalRecHitsinCone_Anglemetric_(coneAxis,metricAngle_,coneAngle,theFilteredEcalRecHits);
00024   }else return vector<pair<math::XYZPoint,float> >(); 
00025   return theFilteredEcalRecHitsInCone;
00026 }

vector<pair<math::XYZPoint,float> > CaloTauElementsOperators::neutralEcalBasicClustersInAnnulus ( const math::XYZVector coneAxis,
const string  innerconeMetric,
const double  innerconeSize,
const string  outerconeMetric,
const double  outerconeSize,
const double  neutralEcalBasicCluster_minEt 
) const

vector<pair<math::XYZPoint,float> > CaloTauElementsOperators::neutralEcalBasicClustersInCone ( const math::XYZVector coneAxis,
const string  coneMetric,
const double  coneSize,
const double  neutralEcalBasicCluster_minEt 
) const

void CaloTauElementsOperators::setAreaMetricrecoElementsmaxabsEta ( const double  x  )  [inline]

Definition at line 36 of file CaloTauElementsOperators.h.

References AreaMetric_recoElements_maxabsEta_.


Member Data Documentation

double CaloTauElementsOperators::AreaMetric_recoElements_maxabsEta_ [private]

Reimplemented from TauElementsOperators.

Definition at line 40 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus(), EcalRecHitsInCone(), and setAreaMetricrecoElementsmaxabsEta().

CaloTau& CaloTauElementsOperators::CaloTau_ [private]

Definition at line 38 of file CaloTauElementsOperators.h.

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

Definition at line 39 of file CaloTauElementsOperators.h.

Referenced by CaloTauElementsOperators(), EcalRecHitsInAnnulus(), and EcalRecHitsInCone().

ElementsInAnnulus<math::XYZVector,Angle<math::XYZVector,math::XYZPoint>,Angle<math::XYZVector,math::XYZPoint>,pair<math::XYZPoint,float> > CaloTauElementsOperators::EcalRecHitsinAnnulus_innerAngleouterAnglemetrics_ [private]

Definition at line 48 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus().

ElementsInAnnulus<math::XYZVector,Angle<math::XYZVector,math::XYZPoint>,DeltaR<math::XYZVector,math::XYZPoint>,pair<math::XYZPoint,float> > CaloTauElementsOperators::EcalRecHitsinAnnulus_innerAngleouterDRmetrics_ [private]

Definition at line 49 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus().

ElementsInAnnulus<math::XYZVector,DeltaR<math::XYZVector,math::XYZPoint>,Angle<math::XYZVector,math::XYZPoint>,pair<math::XYZPoint,float> > CaloTauElementsOperators::EcalRecHitsinAnnulus_innerDRouterAnglemetrics_ [private]

Definition at line 47 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus().

ElementsInAnnulus<math::XYZVector,DeltaR<math::XYZVector,math::XYZPoint>,DeltaR<math::XYZVector,math::XYZPoint>,pair<math::XYZPoint,float> > CaloTauElementsOperators::EcalRecHitsinAnnulus_innerDRouterDRmetrics_ [private]

Definition at line 46 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus().

ElementsInCone<math::XYZVector,Angle<math::XYZVector,math::XYZPoint>,pair<math::XYZPoint,float> > CaloTauElementsOperators::EcalRecHitsinCone_Anglemetric_ [private]

Definition at line 45 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInCone().

ElementsInCone<math::XYZVector,DeltaR<math::XYZVector,math::XYZPoint>,pair<math::XYZPoint,float> > CaloTauElementsOperators::EcalRecHitsinCone_DRmetric_ [private]

Definition at line 44 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInCone().

Angle<math::XYZVector,math::XYZPoint> CaloTauElementsOperators::metricAngle_ [private]

Reimplemented from TauElementsOperators.

Definition at line 43 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus(), and EcalRecHitsInCone().

DeltaR<math::XYZVector,math::XYZPoint> CaloTauElementsOperators::metricDR_ [private]

Reimplemented from TauElementsOperators.

Definition at line 42 of file CaloTauElementsOperators.h.

Referenced by EcalRecHitsInAnnulus(), and EcalRecHitsInCone().


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