CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
PFRecoTauAlgorithm Class Reference

#include <PFRecoTauAlgorithm.h>

Inheritance diagram for PFRecoTauAlgorithm:
PFRecoTauAlgorithmBase

Public Member Functions

reco::PFTau buildPFTau (const reco::PFTauTagInfoRef &, const reco::Vertex &)
 
 PFRecoTauAlgorithm ()
 
 PFRecoTauAlgorithm (const edm::ParameterSet &)
 
 ~PFRecoTauAlgorithm ()
 
- Public Member Functions inherited from PFRecoTauAlgorithmBase
 PFRecoTauAlgorithmBase ()
 
 PFRecoTauAlgorithmBase (const edm::ParameterSet &)
 
void setTransientTrackBuilder (const TransientTrackBuilder *)
 
virtual ~PFRecoTauAlgorithmBase ()
 

Private Member Functions

bool checkPos (std::vector< math::XYZPoint >, math::XYZPoint) const
 

Private Attributes

bool AddEllipseGammas_
 
double AreaMetric_recoElements_maxabsEta_
 
uint32_t ChargedHadrCand_IsolAnnulus_minNhits_
 
double ChargedHadrCandLeadChargedHadrCand_tksmaxDZ_
 
std::string DataType_
 
std::string ECALIsolConeMetric_
 
double ECALIsolConeSize_max_
 
double ECALIsolConeSize_min_
 
std::string ECALIsolConeSizeFormula_
 
std::string ECALSignalConeMetric_
 
double ECALSignalConeSize_max_
 
double ECALSignalConeSize_min_
 
std::string ECALSignalConeSizeFormula_
 
double EcalStripSumE_deltaEta_
 
double EcalStripSumE_deltaPhiOverQ_maxValue_
 
double EcalStripSumE_deltaPhiOverQ_minValue_
 
double EcalStripSumE_minClusEnergy_
 
double ElecPreIDLeadTkMatch_maxDR_
 
std::string HCALIsolConeMetric_
 
double HCALIsolConeSize_max_
 
double HCALIsolConeSize_min_
 
std::string HCALIsolConeSizeFormula_
 
std::string HCALSignalConeMetric_
 
double HCALSignalConeSize_max_
 
double HCALSignalConeSize_min_
 
std::string HCALSignalConeSizeFormula_
 
double LeadPFCand_minPt_
 
double LeadTrack_minPt_
 
std::string MatchingConeMetric_
 
double MatchingConeSize_max_
 
double MatchingConeSize_min_
 
std::string MatchingConeSizeFormula_
 
double MaxEtInEllipse_
 
double maximumForElectrionPreIDOutput_
 
TFormula myECALIsolConeSizeTFormula
 
TFormula myECALSignalConeSizeTFormula
 
TFormula myHCALIsolConeSizeTFormula
 
TFormula myHCALSignalConeSizeTFormula
 
TFormula myMatchingConeSizeTFormula
 
TFormula myTrackerIsolConeSizeTFormula
 
TFormula myTrackerSignalConeSizeTFormula
 
double Rphi_
 
uint32_t Track_IsolAnnulus_minNhits_
 
std::string TrackerIsolConeMetric_
 
double TrackerIsolConeSize_max_
 
double TrackerIsolConeSize_min_
 
std::string TrackerIsolConeSizeFormula_
 
std::string TrackerSignalConeMetric_
 
double TrackerSignalConeSize_max_
 
double TrackerSignalConeSize_min_
 
std::string TrackerSignalConeSizeFormula_
 
double TrackLeadTrack_maxDZ_
 
bool UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint_
 
bool UseTrackLeadTrackDZconstraint_
 

Additional Inherited Members

- Protected Attributes inherited from PFRecoTauAlgorithmBase
const TransientTrackBuilderTransientTrackBuilder_
 

Detailed Description

Definition at line 21 of file PFRecoTauAlgorithm.h.

Constructor & Destructor Documentation

PFRecoTauAlgorithm::PFRecoTauAlgorithm ( )

Definition at line 16 of file PFRecoTauAlgorithm.cc.

PFRecoTauAlgorithm::PFRecoTauAlgorithm ( const edm::ParameterSet iConfig)

Definition at line 17 of file PFRecoTauAlgorithm.cc.

References AddEllipseGammas_, AreaMetric_recoElements_maxabsEta_, ChargedHadrCand_IsolAnnulus_minNhits_, ChargedHadrCandLeadChargedHadrCand_tksmaxDZ_, TauTagTools::computeConeSizeTFormula(), DataType_, ECALIsolConeMetric_, ECALIsolConeSize_max_, ECALIsolConeSize_min_, ECALIsolConeSizeFormula_, ECALSignalConeMetric_, ECALSignalConeSize_max_, ECALSignalConeSize_min_, ECALSignalConeSizeFormula_, EcalStripSumE_deltaEta_, EcalStripSumE_deltaPhiOverQ_maxValue_, EcalStripSumE_deltaPhiOverQ_minValue_, EcalStripSumE_minClusEnergy_, ElecPreIDLeadTkMatch_maxDR_, edm::ParameterSet::getParameter(), HCALIsolConeMetric_, HCALIsolConeSize_max_, HCALIsolConeSize_min_, HCALIsolConeSizeFormula_, HCALSignalConeMetric_, HCALSignalConeSize_max_, HCALSignalConeSize_min_, HCALSignalConeSizeFormula_, LeadPFCand_minPt_, LeadTrack_minPt_, MatchingConeMetric_, MatchingConeSize_max_, MatchingConeSize_min_, MatchingConeSizeFormula_, MaxEtInEllipse_, maximumForElectrionPreIDOutput_, myECALIsolConeSizeTFormula, myECALSignalConeSizeTFormula, myHCALIsolConeSizeTFormula, myHCALSignalConeSizeTFormula, myMatchingConeSizeTFormula, myTrackerIsolConeSizeTFormula, myTrackerSignalConeSizeTFormula, Rphi_, Track_IsolAnnulus_minNhits_, TrackerIsolConeMetric_, TrackerIsolConeSize_max_, TrackerIsolConeSize_min_, TrackerIsolConeSizeFormula_, TrackerSignalConeMetric_, TrackerSignalConeSize_max_, TrackerSignalConeSize_min_, TrackerSignalConeSizeFormula_, TrackLeadTrack_maxDZ_, UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint_, and UseTrackLeadTrackDZconstraint_.

17  :PFRecoTauAlgorithmBase(iConfig){
18  LeadPFCand_minPt_ = iConfig.getParameter<double>("LeadPFCand_minPt");
19 
21  = iConfig.getParameter<bool>("UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint");
22 
24  = iConfig.getParameter<double>("ChargedHadrCandLeadChargedHadrCand_tksmaxDZ");
25 
26  LeadTrack_minPt_ = iConfig.getParameter<double>("LeadTrack_minPt");
27  UseTrackLeadTrackDZconstraint_ = iConfig.getParameter<bool>("UseTrackLeadTrackDZconstraint");
28  TrackLeadTrack_maxDZ_ = iConfig.getParameter<double>("TrackLeadTrack_maxDZ");
29 
30  MatchingConeMetric_ = iConfig.getParameter<std::string>("MatchingConeMetric");
31  MatchingConeSizeFormula_ = iConfig.getParameter<std::string>("MatchingConeSizeFormula");
32  MatchingConeSize_min_ = iConfig.getParameter<double>("MatchingConeSize_min");
33  MatchingConeSize_max_ = iConfig.getParameter<double>("MatchingConeSize_max");
34  TrackerSignalConeMetric_ = iConfig.getParameter<std::string>("TrackerSignalConeMetric");
35  TrackerSignalConeSizeFormula_ = iConfig.getParameter<std::string>("TrackerSignalConeSizeFormula");
36  TrackerSignalConeSize_min_ = iConfig.getParameter<double>("TrackerSignalConeSize_min");
37  TrackerSignalConeSize_max_ = iConfig.getParameter<double>("TrackerSignalConeSize_max");
38  TrackerIsolConeMetric_ = iConfig.getParameter<std::string>("TrackerIsolConeMetric");
39  TrackerIsolConeSizeFormula_ = iConfig.getParameter<std::string>("TrackerIsolConeSizeFormula");
40  TrackerIsolConeSize_min_ = iConfig.getParameter<double>("TrackerIsolConeSize_min");
41  TrackerIsolConeSize_max_ = iConfig.getParameter<double>("TrackerIsolConeSize_max");
42  ECALSignalConeMetric_ = iConfig.getParameter<std::string>("ECALSignalConeMetric");
43  ECALSignalConeSizeFormula_ = iConfig.getParameter<std::string>("ECALSignalConeSizeFormula");
44  ECALSignalConeSize_min_ = iConfig.getParameter<double>("ECALSignalConeSize_min");
45  ECALSignalConeSize_max_ = iConfig.getParameter<double>("ECALSignalConeSize_max");
46  ECALIsolConeMetric_ = iConfig.getParameter<std::string>("ECALIsolConeMetric");
47  ECALIsolConeSizeFormula_ = iConfig.getParameter<std::string>("ECALIsolConeSizeFormula");
48  ECALIsolConeSize_min_ = iConfig.getParameter<double>("ECALIsolConeSize_min");
49  ECALIsolConeSize_max_ = iConfig.getParameter<double>("ECALIsolConeSize_max");
50  HCALSignalConeMetric_ = iConfig.getParameter<std::string>("HCALSignalConeMetric");
51  HCALSignalConeSizeFormula_ = iConfig.getParameter<std::string>("HCALSignalConeSizeFormula");
52  HCALSignalConeSize_min_ = iConfig.getParameter<double>("HCALSignalConeSize_min");
53  HCALSignalConeSize_max_ = iConfig.getParameter<double>("HCALSignalConeSize_max");
54  HCALIsolConeMetric_ = iConfig.getParameter<std::string>("HCALIsolConeMetric");
55  HCALIsolConeSizeFormula_ = iConfig.getParameter<std::string>("HCALIsolConeSizeFormula");
56  HCALIsolConeSize_min_ = iConfig.getParameter<double>("HCALIsolConeSize_min");
57  HCALIsolConeSize_max_ = iConfig.getParameter<double>("HCALIsolConeSize_max");
58 
59  // get paramaeters for ellipse EELL
60  Rphi_ = iConfig.getParameter<double>("Rphi");
61  MaxEtInEllipse_ = iConfig.getParameter<double>("MaxEtInEllipse");
62  AddEllipseGammas_ = iConfig.getParameter<bool>("AddEllipseGammas");
63  // EELL
64 
65  AreaMetric_recoElements_maxabsEta_ = iConfig.getParameter<double>("AreaMetric_recoElements_maxabsEta");
66  ChargedHadrCand_IsolAnnulus_minNhits_ = iConfig.getParameter<uint32_t>("ChargedHadrCand_IsolAnnulus_minNhits");
67  Track_IsolAnnulus_minNhits_ = iConfig.getParameter<uint32_t>("Track_IsolAnnulus_minNhits");
68 
69  ElecPreIDLeadTkMatch_maxDR_ = iConfig.getParameter<double>("ElecPreIDLeadTkMatch_maxDR");
70  EcalStripSumE_minClusEnergy_ = iConfig.getParameter<double>("EcalStripSumE_minClusEnergy");
71  EcalStripSumE_deltaEta_ = iConfig.getParameter<double>("EcalStripSumE_deltaEta");
72  EcalStripSumE_deltaPhiOverQ_minValue_ = iConfig.getParameter<double>("EcalStripSumE_deltaPhiOverQ_minValue");
73  EcalStripSumE_deltaPhiOverQ_maxValue_ = iConfig.getParameter<double>("EcalStripSumE_deltaPhiOverQ_maxValue");
74  maximumForElectrionPreIDOutput_ = iConfig.getParameter<double>("maximumForElectrionPreIDOutput");
75 
76  DataType_ = iConfig.getParameter<std::string>("DataType");
77 
78  //TFormula computation
79  myMatchingConeSizeTFormula = TauTagTools::computeConeSizeTFormula(MatchingConeSizeFormula_,"Matching cone size");
80  //Charged particles cones
81  myTrackerSignalConeSizeTFormula = TauTagTools::computeConeSizeTFormula(TrackerSignalConeSizeFormula_,"Tracker signal cone size");
82  myTrackerIsolConeSizeTFormula = TauTagTools::computeConeSizeTFormula(TrackerIsolConeSizeFormula_,"Tracker isolation cone size");
83  //Gamma candidates cones
84  myECALSignalConeSizeTFormula = TauTagTools::computeConeSizeTFormula(ECALSignalConeSizeFormula_,"ECAL signal cone size");
85  myECALIsolConeSizeTFormula = TauTagTools::computeConeSizeTFormula(ECALIsolConeSizeFormula_,"ECAL isolation cone size");
86  //Neutral hadrons cones
87  myHCALSignalConeSizeTFormula = TauTagTools::computeConeSizeTFormula(HCALSignalConeSizeFormula_,"HCAL signal cone size");
88  myHCALIsolConeSizeTFormula = TauTagTools::computeConeSizeTFormula(HCALIsolConeSizeFormula_,"HCAL isolation cone size");
89 }
std::string ECALIsolConeSizeFormula_
T getParameter(std::string const &) const
std::string TrackerIsolConeSizeFormula_
double maximumForElectrionPreIDOutput_
std::string ECALSignalConeSizeFormula_
uint32_t ChargedHadrCand_IsolAnnulus_minNhits_
std::string HCALSignalConeSizeFormula_
bool UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint_
double EcalStripSumE_deltaPhiOverQ_minValue_
TFormula myHCALSignalConeSizeTFormula
double ChargedHadrCandLeadChargedHadrCand_tksmaxDZ_
TFormula myTrackerSignalConeSizeTFormula
std::string ECALSignalConeMetric_
TFormula myECALSignalConeSizeTFormula
double AreaMetric_recoElements_maxabsEta_
uint32_t Track_IsolAnnulus_minNhits_
TFormula computeConeSizeTFormula(const std::string &ConeSizeFormula, const char *errorMessage)
std::string ECALIsolConeMetric_
std::string TrackerSignalConeMetric_
std::string MatchingConeSizeFormula_
TFormula myMatchingConeSizeTFormula
double EcalStripSumE_deltaPhiOverQ_maxValue_
TFormula myHCALIsolConeSizeTFormula
TFormula myTrackerIsolConeSizeTFormula
std::string HCALIsolConeSizeFormula_
std::string MatchingConeMetric_
std::string TrackerIsolConeMetric_
std::string HCALSignalConeMetric_
std::string TrackerSignalConeSizeFormula_
TFormula myECALIsolConeSizeTFormula
std::string HCALIsolConeMetric_
PFRecoTauAlgorithm::~PFRecoTauAlgorithm ( )
inline

Definition at line 25 of file PFRecoTauAlgorithm.h.

25 {}

Member Function Documentation

PFTau PFRecoTauAlgorithm::buildPFTau ( const reco::PFTauTagInfoRef myPFTauTagInfoRef,
const reco::Vertex myPV 
)
virtual

Implements PFRecoTauAlgorithmBase.

Definition at line 92 of file PFRecoTauAlgorithm.cc.

References abs, AddEllipseGammas_, edm::RefVector< C, T, F >::begin(), createPayload::block, TransientTrackBuilder::build(), ChargedHadrCand_IsolAnnulus_minNhits_, ChargedHadrCandLeadChargedHadrCand_tksmaxDZ_, checkPos(), edm::RefVector< C, T, F >::clear(), TauElementsOperators::computeConeSize(), TauTagTools::computeDeltaR(), DataType_, Geom::deltaPhi(), deltaR(), reco::PFBlockElement::ECAL, ECALIsolConeMetric_, ECALIsolConeSize_max_, ECALIsolConeSize_min_, ECALSignalConeMetric_, ECALSignalConeSize_max_, ECALSignalConeSize_min_, EcalStripSumE_deltaEta_, EcalStripSumE_deltaPhiOverQ_maxValue_, EcalStripSumE_deltaPhiOverQ_minValue_, EcalStripSumE_minClusEnergy_, reco::PFBlock::elements(), asciidump::elements, edm::RefVector< C, T, F >::end(), relval_parameters_module::energy, TauTagTools::filteredPFChargedHadrCandsByNumTrkHits(), TauTagTools::filteredTracksByNumTrkHits(), reco::PFBlockElement::HCAL, HCALIsolConeMetric_, HCALIsolConeSize_max_, HCALIsolConeSize_min_, HCALSignalConeMetric_, HCALSignalConeSize_max_, HCALSignalConeSize_min_, i, edm::Ref< C, T, F >::isNonnull(), LeadPFCand_minPt_, PFTauElementsOperators::leadPFChargedHadrCand(), TauElementsOperators::leadTk(), LeadTrack_minPt_, MatchingConeMetric_, MatchingConeSize_max_, MatchingConeSize_min_, MaxEtInEllipse_, maximumForElectrionPreIDOutput_, myECALIsolConeSizeTFormula, myECALSignalConeSizeTFormula, myHCALIsolConeSizeTFormula, myHCALSignalConeSizeTFormula, myMatchingConeSizeTFormula, myTrackerIsolConeSizeTFormula, myTrackerSignalConeSizeTFormula, PFTauElementsOperators::PFCandsInCone(), PFTauElementsOperators::PFChargedHadrCandsInAnnulus(), PFTauElementsOperators::PFChargedHadrCandsInCone(), PFTauElementsOperators::PFGammaCandsInAnnulus(), PFTauElementsOperators::PFGammaCandsInCone(), PFTauElementsOperators::PFGammaCandsInOutEllipse(), PFTauElementsOperators::PFNeutrHadrCandsInAnnulus(), PFTauElementsOperators::PFNeutrHadrCandsInCone(), PFTauAlgo_ChargedHadrCand_minPt_, PFTauAlgo_GammaCand_minPt_, PFTauAlgo_NeutrHadrCand_minPt_, PFTauAlgo_PFCand_minPt_, PFTauAlgo_Track_minPt_, reco::Vertex::position(), edm::RefVector< C, T, F >::push_back(), Rphi_, reco::PFTau::setpfTauTagInfoRef(), IPTools::signedTransverseImpactParameter(), funct::sin(), edm::RefVector< C, T, F >::size(), edm::OwnVector< T, P >::size(), Track_IsolAnnulus_minNhits_, TrackerIsolConeMetric_, TrackerIsolConeSize_max_, TrackerIsolConeSize_min_, TrackerSignalConeMetric_, TrackerSignalConeSize_max_, TrackerSignalConeSize_min_, TrackLeadTrack_maxDZ_, TauElementsOperators::tracksInAnnulus(), TauElementsOperators::tracksInCone(), PFRecoTauAlgorithmBase::TransientTrackBuilder_, UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint_, UseTrackLeadTrackDZconstraint_, reco::Vertex::x(), reco::Vertex::y(), and reco::Vertex::z().

93 {
94  PFJetRef myPFJet=(*myPFTauTagInfoRef).pfjetRef(); // catch a ref to the initial PFJet
95  PFTau myPFTau(std::numeric_limits<int>::quiet_NaN(),myPFJet->p4()); // create the PFTau
96 
97  myPFTau.setpfTauTagInfoRef(myPFTauTagInfoRef);
98 
99  PFCandidateRefVector myPFCands=(*myPFTauTagInfoRef).PFCands();
100 
101  PFTauElementsOperators myPFTauElementsOperators(myPFTau);
102  double myMatchingConeSize=myPFTauElementsOperators.computeConeSize(myMatchingConeSizeTFormula,MatchingConeSize_min_,MatchingConeSize_max_);
103 
104  PFCandidateRef myleadPFChargedCand=myPFTauElementsOperators.leadPFChargedHadrCand(MatchingConeMetric_,myMatchingConeSize,PFTauAlgo_PFCand_minPt_);
105 
106  // These two quantities always taken from the signal cone
107  PFCandidateRef myleadPFNeutralCand;
108  PFCandidateRef myleadPFCand;
109 
110  bool myleadPFCand_rectkavailable = false;
111  double myleadPFCand_rectkDZ = 0.;
112 
113  // Determine the SIPT of the lead track
114  if(myleadPFChargedCand.isNonnull()) {
115  myPFTau.setleadPFChargedHadrCand(myleadPFChargedCand);
116  TrackRef myleadPFCand_rectk=(*myleadPFChargedCand).trackRef();
117  if(myleadPFCand_rectk.isNonnull()) {
118  myleadPFCand_rectkavailable=true;
119  myleadPFCand_rectkDZ=(*myleadPFCand_rectk).dz(myPV.position());
120  if(TransientTrackBuilder_!=0) {
121  const TransientTrack myleadPFCand_rectransienttk=TransientTrackBuilder_->build(&(*myleadPFCand_rectk));
122  GlobalVector myPFJetdir((*myPFJet).px(),(*myPFJet).py(),(*myPFJet).pz());
123  if(IPTools::signedTransverseImpactParameter(myleadPFCand_rectransienttk,myPFJetdir,myPV).first)
124  myPFTau.setleadPFChargedHadrCandsignedSipt(
125  IPTools::signedTransverseImpactParameter(myleadPFCand_rectransienttk,myPFJetdir,myPV).second.significance());
126  }
127  }
128  }
129 
130  //Building PF Components
131  if (myleadPFChargedCand.isNonnull())
132  {
133  math::XYZVector tauAxis = myleadPFChargedCand->momentum();
134  // Compute energy of the PFTau considering only inner constituents
135  // (inner == pfcandidates inside a cone which is equal to the maximum value of the signal cone)
136  // The axis is built about the lead charged hadron
137  PFCandidateRefVector myTmpPFCandsInSignalCone =
138  myPFTauElementsOperators.PFCandsInCone(tauAxis,TrackerSignalConeMetric_,TrackerSignalConeSize_max_,0.5);
139  math::XYZTLorentzVector tmpLorentzVect(0.,0.,0.,0.);
140 
141  double jetOpeningAngle = 0.0;
142  for (PFCandidateRefVector::const_iterator iCand = myTmpPFCandsInSignalCone.begin();
143  iCand != myTmpPFCandsInSignalCone.end(); iCand++)
144  {
145  //find the maximum opening angle of the jet (now a parameter in available TFormulas)
146  double deltaRToSeed = TauTagTools::computeDeltaR(tauAxis, (**iCand).momentum());
147  if (deltaRToSeed > jetOpeningAngle)
148  jetOpeningAngle = deltaRToSeed;
149 
150  tmpLorentzVect+=(**iCand).p4();
151  }
152 
153  //Setting the myPFTau four momentum as the one made from the signal cone constituents.
154  double energy = tmpLorentzVect.energy();
155  double transverseEnergy = tmpLorentzVect.pt();
156  myPFTau.setP4(tmpLorentzVect);
157 
158  // Compute the cone sizes
159  double myTrackerSignalConeSize = myPFTauElementsOperators.computeConeSize(
160  myTrackerSignalConeSizeTFormula, TrackerSignalConeSize_min_, TrackerSignalConeSize_max_, transverseEnergy, energy, jetOpeningAngle);
161  double myTrackerIsolConeSize = myPFTauElementsOperators.computeConeSize(
162  myTrackerIsolConeSizeTFormula, TrackerIsolConeSize_min_, TrackerIsolConeSize_max_, transverseEnergy, energy, jetOpeningAngle);
163  double myECALSignalConeSize = myPFTauElementsOperators.computeConeSize(
164  myECALSignalConeSizeTFormula, ECALSignalConeSize_min_, ECALSignalConeSize_max_, transverseEnergy, energy, jetOpeningAngle);
165  double myECALIsolConeSize = myPFTauElementsOperators.computeConeSize(
166  myECALIsolConeSizeTFormula, ECALIsolConeSize_min_, ECALIsolConeSize_max_, transverseEnergy, energy, jetOpeningAngle);
167  double myHCALSignalConeSize = myPFTauElementsOperators.computeConeSize(
168  myHCALSignalConeSizeTFormula, HCALSignalConeSize_min_, HCALSignalConeSize_max_, transverseEnergy, energy, jetOpeningAngle);
169  double myHCALIsolConeSize = myPFTauElementsOperators.computeConeSize(
170  myHCALIsolConeSizeTFormula, HCALIsolConeSize_min_, HCALIsolConeSize_max_, transverseEnergy, energy, jetOpeningAngle);
171 
172  // Signal cone collections
173  PFCandidateRefVector mySignalPFChargedHadrCands, mySignalPFNeutrHadrCands, mySignalPFGammaCands, mySignalPFCands;
174 
175  if (UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint_ && myleadPFCand_rectkavailable) {
176  mySignalPFChargedHadrCands=myPFTauElementsOperators.PFChargedHadrCandsInCone(tauAxis,
178  ChargedHadrCandLeadChargedHadrCand_tksmaxDZ_, myleadPFCand_rectkDZ, myPV);
179  }
180  else {
181  mySignalPFChargedHadrCands=myPFTauElementsOperators.PFChargedHadrCandsInCone(tauAxis,
183  }
184 
185  // Set the Charged hadronics that live in the signal cones
186  myPFTau.setsignalPFChargedHadrCands(mySignalPFChargedHadrCands);
187 
188  // Set the neurtral hadrons that live in the signal cone
189  mySignalPFNeutrHadrCands=myPFTauElementsOperators.PFNeutrHadrCandsInCone(tauAxis,
191 
192  myPFTau.setsignalPFNeutrHadrCands(mySignalPFNeutrHadrCands);
193 
194  // Compute the gammas that live in the signal cone
195  mySignalPFGammaCands=myPFTauElementsOperators.PFGammaCandsInCone(tauAxis,
197 
198  myPFTau.setsignalPFGammaCands(mySignalPFGammaCands);
199 
200  // Add charged objects to signal cone, and calculate charge
201  if(mySignalPFChargedHadrCands.size() != 0) {
202  int mySignalPFChargedHadrCands_qsum=0;
203  for(size_t i = 0; i < mySignalPFChargedHadrCands.size(); i++) {
204  mySignalPFChargedHadrCands_qsum += mySignalPFChargedHadrCands[i]->charge();
205  mySignalPFCands.push_back(mySignalPFChargedHadrCands[i]);
206  }
207  myPFTau.setCharge(mySignalPFChargedHadrCands_qsum);
208  }
209 
210  //Add neutral objects to signal cone
211  for(size_t i = 0; i < mySignalPFNeutrHadrCands.size(); i++) {
212  mySignalPFCands.push_back(mySignalPFNeutrHadrCands[i]);
213  }
214 
215  // For the signal gammas, keep track of the highest pt object
216  double maxSignalGammaPt = 0.;
217  for(size_t i = 0; i < mySignalPFGammaCands.size(); i++) {
218  if(mySignalPFGammaCands[i]->pt() > maxSignalGammaPt) {
219  myleadPFNeutralCand = mySignalPFGammaCands[i];
220  maxSignalGammaPt = mySignalPFGammaCands[i]->pt();
221  }
222  mySignalPFCands.push_back(mySignalPFGammaCands[i]);
223  }
224  myPFTau.setsignalPFCands(mySignalPFCands);
225  // Set leading gamma
226  myPFTau.setleadPFNeutralCand(myleadPFNeutralCand);
227 
228  // Logic to determine lead PFCand. If the lead charged object
229  // is above the threshold, take that. If the lead charged object is less
230  // than the threshold (but exists), AND there exists a gamma above the threshold
231  // take the gamma as the leadPFCand. Otherwise it is null.
232 
233  if(myleadPFChargedCand->pt() > LeadPFCand_minPt_) {
234  myPFTau.setleadPFCand(myleadPFChargedCand);
235  } else if (maxSignalGammaPt > LeadPFCand_minPt_) {
236  myPFTau.setleadPFCand(myleadPFNeutralCand);
237  }
238 
239  // Declare isolation collections
240  PFCandidateRefVector myUnfilteredIsolPFChargedHadrCands, myIsolPFNeutrHadrCands, myIsolPFGammaCands, myIsolPFCands;
241 
242  // Build unfiltered isolation collection
243  if(UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint_ && myleadPFCand_rectkavailable) {
244  myUnfilteredIsolPFChargedHadrCands=myPFTauElementsOperators.PFChargedHadrCandsInAnnulus(
245  tauAxis,TrackerSignalConeMetric_,myTrackerSignalConeSize,TrackerIsolConeMetric_,myTrackerIsolConeSize,
247  } else {
248  myUnfilteredIsolPFChargedHadrCands=myPFTauElementsOperators.PFChargedHadrCandsInAnnulus(
249  tauAxis,TrackerSignalConeMetric_,myTrackerSignalConeSize,TrackerIsolConeMetric_,myTrackerIsolConeSize,
251  }
252 
253  // Filter isolation annulus charge dhadrons with additional nHits quality cut
254  // (note that other cuts [pt, chi2, are already cut on])
255  PFCandidateRefVector myIsolPFChargedHadrCands;
256  myIsolPFChargedHadrCands = TauTagTools::filteredPFChargedHadrCandsByNumTrkHits(
257  myUnfilteredIsolPFChargedHadrCands, ChargedHadrCand_IsolAnnulus_minNhits_);
258 
259  myPFTau.setisolationPFChargedHadrCands(myIsolPFChargedHadrCands);
260 
261  // Fill neutral hadrons
262  myIsolPFNeutrHadrCands = myPFTauElementsOperators.PFNeutrHadrCandsInAnnulus(
263  tauAxis, HCALSignalConeMetric_, myHCALSignalConeSize, HCALIsolConeMetric_,
264  myHCALIsolConeSize, PFTauAlgo_NeutrHadrCand_minPt_);
265  myPFTau.setisolationPFNeutrHadrCands(myIsolPFNeutrHadrCands);
266 
267  // Fill gamma candidates
268  myIsolPFGammaCands = myPFTauElementsOperators.PFGammaCandsInAnnulus(
269  tauAxis, ECALSignalConeMetric_, myECALSignalConeSize, ECALIsolConeMetric_,
270  myECALIsolConeSize, PFTauAlgo_GammaCand_minPt_);
271  myPFTau.setisolationPFGammaCands(myIsolPFGammaCands);
272 
273  //Incorporate converted gammas from isolation ellipse into signal ... ELLL
274  //Get pair with in/out elements using the isoPFGammaCandidates set by default
275  if(AddEllipseGammas_) {
276  double rPhi;
277  if(Rphi_ >= 1.)
278  rPhi = Rphi_*myECALSignalConeSize;
279  else
280  rPhi = Rphi_;
281 
282  std::pair<PFCandidateRefVector,PFCandidateRefVector> elementsInOutEllipse =
283  myPFTauElementsOperators.PFGammaCandsInOutEllipse(myIsolPFGammaCands, *myleadPFCand, rPhi, myECALSignalConeSize, MaxEtInEllipse_);
284 
285  PFCandidateRefVector elementsInEllipse = elementsInOutEllipse.first;
286  PFCandidateRefVector elementsOutEllipse = elementsInOutEllipse.second;
287  //add the inside elements to signal PFCandidates and reset signal PFCands
288  for(PFCandidateRefVector::const_iterator inEllipseIt = elementsInEllipse.begin(); inEllipseIt != elementsInEllipse.end(); inEllipseIt++){
289  mySignalPFCands.push_back(*inEllipseIt);
290  mySignalPFGammaCands.push_back(*inEllipseIt);
291  }
292  myPFTau.setsignalPFCands(mySignalPFCands);
293  //redefine isoPFGammaCandidates to be the outside elements
294  myIsolPFGammaCands=elementsOutEllipse;
295  myPFTau.setisolationPFGammaCands(myIsolPFGammaCands);
296  }
297 
298 
299  // Fill isolation collections, and calculate pt sum in isolation cone
300  float myIsolPFChargedHadrCands_Ptsum = 0.;
301  float myIsolPFGammaCands_Etsum = 0.;
302  for(size_t i = 0; i < myIsolPFChargedHadrCands.size(); i++) {
303  myIsolPFChargedHadrCands_Ptsum += myIsolPFChargedHadrCands[i]->pt();
304  myIsolPFCands.push_back(myIsolPFChargedHadrCands[i]);
305  }
306  myPFTau.setisolationPFChargedHadrCandsPtSum(myIsolPFChargedHadrCands_Ptsum);
307 
308  // Put neutral hadrons into collection
309  for(size_t i = 0; i < myIsolPFNeutrHadrCands.size(); i++) {
310  myIsolPFCands.push_back(myIsolPFNeutrHadrCands[i]);
311  }
312 
313  for(size_t i = 0; i < myIsolPFGammaCands.size(); i++) {
314  myIsolPFGammaCands_Etsum += myIsolPFGammaCands[i]->et();
315  myIsolPFCands.push_back(myIsolPFGammaCands[i]);
316  }
317  myPFTau.setisolationPFGammaCandsEtSum(myIsolPFGammaCands_Etsum);
318  myPFTau.setisolationPFCands(myIsolPFCands);
319 
320  //Making the alternateLorentzVector, i.e. direction with only signal components
321  math::XYZTLorentzVector alternatLorentzVect(0.,0.,0.,0.);
322  for (PFCandidateRefVector::const_iterator iGammaCand = mySignalPFGammaCands.begin();
323  iGammaCand != mySignalPFGammaCands.end(); iGammaCand++) {
324  alternatLorentzVect+=(**iGammaCand).p4();
325  }
326 
327  for (PFCandidateRefVector::const_iterator iChargedHadrCand = mySignalPFChargedHadrCands.begin();
328  iChargedHadrCand != mySignalPFChargedHadrCands.end(); iChargedHadrCand++) {
329  alternatLorentzVect+=(**iChargedHadrCand).p4();
330  }
331  myPFTau.setalternatLorentzVect(alternatLorentzVect);
332  myPFTau.setP4(alternatLorentzVect);
333 
334  // Set tau vertex as PV vertex
335  myPFTau.setVertex(math::XYZPoint(myPV.x(), myPV.y(), myPV.z()));
336  }
337 
338  // set the leading, signal cone and isolation annulus Tracks (the initial list of Tracks was catched through a JetTracksAssociation
339  // object, not through the charged hadr. PFCandidates inside the PFJet ;
340  // the motivation for considering these objects is the need for checking that a selection by the
341  // charged hadr. PFCandidates is equivalent to a selection by the rec. Tracks.)
342  TrackRef myleadTk=myPFTauElementsOperators.leadTk(MatchingConeMetric_,myMatchingConeSize,LeadTrack_minPt_);
343  myPFTau.setleadTrack(myleadTk);
344  if(myleadTk.isNonnull()){
345  double myleadTkDZ = (*myleadTk).dz(myPV.position());
346  double myTrackerSignalConeSize=myPFTauElementsOperators.computeConeSize(myTrackerSignalConeSizeTFormula,TrackerSignalConeSize_min_,TrackerSignalConeSize_max_);
347  double myTrackerIsolConeSize=myPFTauElementsOperators.computeConeSize(myTrackerIsolConeSizeTFormula,TrackerIsolConeSize_min_,TrackerIsolConeSize_max_);
349  myPFTau.setsignalTracks(myPFTauElementsOperators.tracksInCone((*myleadTk).momentum(),TrackerSignalConeMetric_,myTrackerSignalConeSize,PFTauAlgo_Track_minPt_,TrackLeadTrack_maxDZ_,myleadTkDZ, myPV));
350 
351  TrackRefVector myUnfilteredTracks = myPFTauElementsOperators.tracksInAnnulus((*myleadTk).momentum(),TrackerSignalConeMetric_,myTrackerSignalConeSize,TrackerIsolConeMetric_,myTrackerIsolConeSize,PFTauAlgo_Track_minPt_,TrackLeadTrack_maxDZ_,myleadTkDZ, myPV);
353  myPFTau.setisolationTracks(myFilteredTracks);
354 
355  }else{
356  myPFTau.setsignalTracks(myPFTauElementsOperators.tracksInCone((*myleadTk).momentum(),TrackerSignalConeMetric_,myTrackerSignalConeSize,PFTauAlgo_Track_minPt_));
357 
358  TrackRefVector myUnfilteredTracks = myPFTauElementsOperators.tracksInAnnulus((*myleadTk).momentum(),TrackerSignalConeMetric_,myTrackerSignalConeSize,TrackerIsolConeMetric_,myTrackerIsolConeSize,PFTauAlgo_Track_minPt_);
360  myPFTau.setisolationTracks(myFilteredTracks);
361  }
362  }
363 
364 
365  /* For elecron rejection */
366  double myECALenergy = 0.;
367  double myHCALenergy = 0.;
368  double myHCALenergy3x3 = 0.;
369  double myMaximumHCALPFClusterE = 0.;
370  double myMaximumHCALPFClusterEt = 0.;
371  double myStripClusterE = 0.;
372  double myEmfrac = -1.;
373  double myElectronPreIDOutput = -1111.;
374  bool myElecPreid = false;
375  reco::TrackRef myElecTrk;
376 
377  typedef std::pair<reco::PFBlockRef, unsigned> ElementInBlock;
378  typedef std::vector< ElementInBlock > ElementsInBlocks;
379 
380  //Use the electron rejection only in case there is a charged leading pion
381  if(myleadPFChargedCand.isNonnull()){
382  myElectronPreIDOutput = myleadPFChargedCand->mva_e_pi();
383 
384  math::XYZPointF myElecTrkEcalPos = myleadPFChargedCand->positionAtECALEntrance();
385  myElecTrk = myleadPFChargedCand->trackRef();//Electron candidate
386 
387  if(myElecTrk.isNonnull()) {
388  //FROM AOD
389  if(DataType_ == "AOD"){
390  // Corrected Cluster energies
391  for(int i=0;i<(int)myPFCands.size();i++){
392  myHCALenergy += myPFCands[i]->hcalEnergy();
393  myECALenergy += myPFCands[i]->ecalEnergy();
394 
395  math::XYZPointF candPos;
396  if (myPFCands[i]->particleId()==1 || myPFCands[i]->particleId()==2)//if charged hadron or electron
397  candPos = myPFCands[i]->positionAtECALEntrance();
398  else
399  candPos = math::XYZPointF(myPFCands[i]->px(),myPFCands[i]->py(),myPFCands[i]->pz());
400 
401  double deltaR = ROOT::Math::VectorUtil::DeltaR(myElecTrkEcalPos,candPos);
402  double deltaPhi = ROOT::Math::VectorUtil::DeltaPhi(myElecTrkEcalPos,candPos);
403  double deltaEta = std::abs(myElecTrkEcalPos.eta()-candPos.eta());
404  double deltaPhiOverQ = deltaPhi/(double)myElecTrk->charge();
405 
406  if (myPFCands[i]->ecalEnergy() >= EcalStripSumE_minClusEnergy_ && deltaEta < EcalStripSumE_deltaEta_ &&
408  myStripClusterE += myPFCands[i]->ecalEnergy();
409  }
410  if (deltaR<0.184) {
411  myHCALenergy3x3 += myPFCands[i]->hcalEnergy();
412  }
413  if (myPFCands[i]->hcalEnergy()>myMaximumHCALPFClusterE) {
414  myMaximumHCALPFClusterE = myPFCands[i]->hcalEnergy();
415  }
416  if ((myPFCands[i]->hcalEnergy()*fabs(sin(candPos.Theta())))>myMaximumHCALPFClusterEt) {
417  myMaximumHCALPFClusterEt = (myPFCands[i]->hcalEnergy()*fabs(sin(candPos.Theta())));
418  }
419  }
420 
421  } else if(DataType_ == "RECO"){ //From RECO
422  // Against double counting of clusters
423  std::vector<math::XYZPoint> hcalPosV; hcalPosV.clear();
424  std::vector<math::XYZPoint> ecalPosV; ecalPosV.clear();
425  for(int i=0;i<(int)myPFCands.size();i++){
426  const ElementsInBlocks& elts = myPFCands[i]->elementsInBlocks();
427  for(ElementsInBlocks::const_iterator it=elts.begin(); it!=elts.end(); ++it) {
428  const reco::PFBlock& block = *(it->first);
429  unsigned indexOfElementInBlock = it->second;
431  assert(indexOfElementInBlock<elements.size());
432 
433  const reco::PFBlockElement& element = elements[indexOfElementInBlock];
434 
435  if(element.type()==reco::PFBlockElement::HCAL) {
436  math::XYZPoint clusPos = element.clusterRef()->position();
437  double en = (double)element.clusterRef()->energy();
438  double et = (double)element.clusterRef()->energy()*fabs(sin(clusPos.Theta()));
439  if (en>myMaximumHCALPFClusterE) {
440  myMaximumHCALPFClusterE = en;
441  }
442  if (et>myMaximumHCALPFClusterEt) {
443  myMaximumHCALPFClusterEt = et;
444  }
445  if (!checkPos(hcalPosV,clusPos)) {
446  hcalPosV.push_back(clusPos);
447  myHCALenergy += en;
448  double deltaR = ROOT::Math::VectorUtil::DeltaR(myElecTrkEcalPos,clusPos);
449  if (deltaR<0.184) {
450  myHCALenergy3x3 += en;
451  }
452  }
453  } else if(element.type()==reco::PFBlockElement::ECAL) {
454  double en = (double)element.clusterRef()->energy();
455  math::XYZPoint clusPos = element.clusterRef()->position();
456  if (!checkPos(ecalPosV,clusPos)) {
457  ecalPosV.push_back(clusPos);
458  myECALenergy += en;
459  double deltaPhi = ROOT::Math::VectorUtil::DeltaPhi(myElecTrkEcalPos,clusPos);
460  double deltaEta = std::abs(myElecTrkEcalPos.eta()-clusPos.eta());
461  double deltaPhiOverQ = deltaPhi/(double)myElecTrk->charge();
462  if (en >= EcalStripSumE_minClusEnergy_ && deltaEta<EcalStripSumE_deltaEta_ && deltaPhiOverQ > EcalStripSumE_deltaPhiOverQ_minValue_ && deltaPhiOverQ < EcalStripSumE_deltaPhiOverQ_maxValue_) {
463  myStripClusterE += en;
464  }
465  }
466  }
467  } //end elements in blocks
468  } //end loop over PFcands
469  } //end RECO case
470  } // end check for null electrk
471  } // end check for null pfChargedHadrCand
472 
473  if ((myHCALenergy+myECALenergy)>0.)
474  myEmfrac = myECALenergy/(myHCALenergy+myECALenergy);
475  myPFTau.setemFraction((float)myEmfrac);
476 
477  // scale the appropriate quantities by the momentum of the electron if it exists
478  if (myElecTrk.isNonnull())
479  {
480  float myElectronMomentum = (float)myElecTrk->p();
481  if (myElectronMomentum > 0.)
482  {
483  myHCALenergy /= myElectronMomentum;
484  myMaximumHCALPFClusterE /= myElectronMomentum;
485  myHCALenergy3x3 /= myElectronMomentum;
486  myStripClusterE /= myElectronMomentum;
487  }
488  }
489  myPFTau.sethcalTotOverPLead((float)myHCALenergy);
490  myPFTau.sethcalMaxOverPLead((float)myMaximumHCALPFClusterE);
491  myPFTau.sethcal3x3OverPLead((float)myHCALenergy3x3);
492  myPFTau.setecalStripSumEOverPLead((float)myStripClusterE);
493  myPFTau.setmaximumHCALPFClusterEt(myMaximumHCALPFClusterEt);
494  myPFTau.setelectronPreIDOutput(myElectronPreIDOutput);
495  if (myElecTrk.isNonnull())
496  myPFTau.setelectronPreIDTrack(myElecTrk);
497  if (myElectronPreIDOutput > maximumForElectrionPreIDOutput_)
498  myElecPreid = true;
499  myPFTau.setelectronPreIDDecision(myElecPreid);
500 
501  // These need to be filled!
502  //myPFTau.setbremsRecoveryEOverPLead(my...);
503 
504  /* End elecron rejection */
505 
506  return myPFTau;
507 }
Abstract base class for a PFBlock element (track, cluster...)
int i
Definition: DBlmapReader.cc:9
reco::TrackRefVector filteredTracksByNumTrkHits(reco::TrackRefVector theInitialTracks, int tkminTrackerHitsn)
Definition: TauTagTools.cc:68
#define PFTauAlgo_ChargedHadrCand_minPt_
bool checkPos(std::vector< math::XYZPoint >, math::XYZPoint) const
double maximumForElectrionPreIDOutput_
double deltaPhi(float phi1, float phi2)
Definition: VectorUtil.h:30
const TransientTrackBuilder * TransientTrackBuilder_
double y() const
y coordinate
Definition: Vertex.h:97
uint32_t ChargedHadrCand_IsolAnnulus_minNhits_
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
std::pair< bool, Measurement1D > signedTransverseImpactParameter(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:50
size_type size() const
Definition: OwnVector.h:262
#define PFTauAlgo_Track_minPt_
reco::TransientTrack build(const reco::Track *p) const
#define abs(x)
Definition: mlp_lapack.h:159
bool UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint_
list elements
Definition: asciidump.py:414
const edm::OwnVector< reco::PFBlockElement > & elements() const
Definition: PFBlock.h:107
double EcalStripSumE_deltaPhiOverQ_minValue_
TFormula myHCALSignalConeSizeTFormula
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:11
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:243
const Point & position() const
position
Definition: Vertex.h:93
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:238
double ChargedHadrCandLeadChargedHadrCand_tksmaxDZ_
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:249
#define PFTauAlgo_NeutrHadrCand_minPt_
TFormula myTrackerSignalConeSizeTFormula
std::string ECALSignalConeMetric_
reco::PFCandidateRefVector filteredPFChargedHadrCandsByNumTrkHits(reco::PFCandidateRefVector theInitialPFCands, int ChargedHadrCand_tkminTrackerHitsn)
Definition: TauTagTools.cc:104
double z() const
y coordinate
Definition: Vertex.h:99
TFormula myECALSignalConeSizeTFormula
uint32_t Track_IsolAnnulus_minNhits_
std::string ECALIsolConeMetric_
double computeDeltaR(const math::XYZVector &vec1, const math::XYZVector &vec2)
Definition: TauTagTools.cc:8
std::string TrackerSignalConeMetric_
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
double x() const
x coordinate
Definition: Vertex.h:95
TFormula myMatchingConeSizeTFormula
double EcalStripSumE_deltaPhiOverQ_maxValue_
TFormula myHCALIsolConeSizeTFormula
void clear()
Clear the vector.
Definition: RefVector.h:128
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
TFormula myTrackerIsolConeSizeTFormula
#define PFTauAlgo_GammaCand_minPt_
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:60
size_type size() const
Size of the RefVector.
Definition: RefVector.h:84
std::string MatchingConeMetric_
std::string TrackerIsolConeMetric_
std::string HCALSignalConeMetric_
TFormula myECALIsolConeSizeTFormula
#define PFTauAlgo_PFCand_minPt_
void setpfTauTagInfoRef(const PFTauTagInfoRef)
Definition: PFTau.cc:60
Block of elements.
Definition: PFBlock.h:30
std::string HCALIsolConeMetric_
bool PFRecoTauAlgorithm::checkPos ( std::vector< math::XYZPoint CalPos,
math::XYZPoint  CandPos 
) const
private

Definition at line 510 of file PFRecoTauAlgorithm.cc.

References i.

Referenced by buildPFTau().

510  {
511  bool flag = false;
512  for (unsigned int i=0;i<CalPos.size();i++) {
513  if (CalPos[i] == CandPos) {
514  flag = true;
515  break;
516  }
517  }
518  return flag;
519  //return false;
520 }
int i
Definition: DBlmapReader.cc:9
long int flag
Definition: mlp_lapack.h:47

Member Data Documentation

bool PFRecoTauAlgorithm::AddEllipseGammas_
private

Definition at line 71 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::AreaMetric_recoElements_maxabsEta_
private

Definition at line 67 of file PFRecoTauAlgorithm.h.

Referenced by PFRecoTauAlgorithm().

uint32_t PFRecoTauAlgorithm::ChargedHadrCand_IsolAnnulus_minNhits_
private

Definition at line 74 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::ChargedHadrCandLeadChargedHadrCand_tksmaxDZ_
private

Definition at line 35 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::DataType_
private

Definition at line 77 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::ECALIsolConeMetric_
private

Definition at line 55 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::ECALIsolConeSize_max_
private

Definition at line 58 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::ECALIsolConeSize_min_
private

Definition at line 57 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::ECALIsolConeSizeFormula_
private

Definition at line 56 of file PFRecoTauAlgorithm.h.

Referenced by PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::ECALSignalConeMetric_
private

Definition at line 51 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::ECALSignalConeSize_max_
private

Definition at line 54 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::ECALSignalConeSize_min_
private

Definition at line 53 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::ECALSignalConeSizeFormula_
private

Definition at line 52 of file PFRecoTauAlgorithm.h.

Referenced by PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::EcalStripSumE_deltaEta_
private

Definition at line 81 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::EcalStripSumE_deltaPhiOverQ_maxValue_
private

Definition at line 83 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::EcalStripSumE_deltaPhiOverQ_minValue_
private

Definition at line 82 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::EcalStripSumE_minClusEnergy_
private

Definition at line 80 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::ElecPreIDLeadTkMatch_maxDR_
private

Definition at line 79 of file PFRecoTauAlgorithm.h.

Referenced by PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::HCALIsolConeMetric_
private

Definition at line 63 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::HCALIsolConeSize_max_
private

Definition at line 66 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::HCALIsolConeSize_min_
private

Definition at line 65 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::HCALIsolConeSizeFormula_
private

Definition at line 64 of file PFRecoTauAlgorithm.h.

Referenced by PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::HCALSignalConeMetric_
private

Definition at line 59 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::HCALSignalConeSize_max_
private

Definition at line 62 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::HCALSignalConeSize_min_
private

Definition at line 61 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::HCALSignalConeSizeFormula_
private

Definition at line 60 of file PFRecoTauAlgorithm.h.

Referenced by PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::LeadPFCand_minPt_
private

Definition at line 32 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::LeadTrack_minPt_
private

Definition at line 33 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::MatchingConeMetric_
private

Definition at line 39 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::MatchingConeSize_max_
private

Definition at line 42 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::MatchingConeSize_min_
private

Definition at line 41 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::MatchingConeSizeFormula_
private

Definition at line 40 of file PFRecoTauAlgorithm.h.

Referenced by PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::MaxEtInEllipse_
private

Definition at line 70 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::maximumForElectrionPreIDOutput_
private

Definition at line 84 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

TFormula PFRecoTauAlgorithm::myECALIsolConeSizeTFormula
private

Definition at line 86 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

TFormula PFRecoTauAlgorithm::myECALSignalConeSizeTFormula
private

Definition at line 86 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

TFormula PFRecoTauAlgorithm::myHCALIsolConeSizeTFormula
private

Definition at line 86 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

TFormula PFRecoTauAlgorithm::myHCALSignalConeSizeTFormula
private

Definition at line 86 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

TFormula PFRecoTauAlgorithm::myMatchingConeSizeTFormula
private

Definition at line 86 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

TFormula PFRecoTauAlgorithm::myTrackerIsolConeSizeTFormula
private

Definition at line 86 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

TFormula PFRecoTauAlgorithm::myTrackerSignalConeSizeTFormula
private

Definition at line 86 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::Rphi_
private

Definition at line 69 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

uint32_t PFRecoTauAlgorithm::Track_IsolAnnulus_minNhits_
private

Definition at line 75 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::TrackerIsolConeMetric_
private

Definition at line 47 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::TrackerIsolConeSize_max_
private

Definition at line 50 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::TrackerIsolConeSize_min_
private

Definition at line 49 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::TrackerIsolConeSizeFormula_
private

Definition at line 48 of file PFRecoTauAlgorithm.h.

Referenced by PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::TrackerSignalConeMetric_
private

Definition at line 43 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::TrackerSignalConeSize_max_
private

Definition at line 46 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::TrackerSignalConeSize_min_
private

Definition at line 45 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

std::string PFRecoTauAlgorithm::TrackerSignalConeSizeFormula_
private

Definition at line 44 of file PFRecoTauAlgorithm.h.

Referenced by PFRecoTauAlgorithm().

double PFRecoTauAlgorithm::TrackLeadTrack_maxDZ_
private

Definition at line 38 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

bool PFRecoTauAlgorithm::UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint_
private

Definition at line 34 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().

bool PFRecoTauAlgorithm::UseTrackLeadTrackDZconstraint_
private

Definition at line 37 of file PFRecoTauAlgorithm.h.

Referenced by buildPFTau(), and PFRecoTauAlgorithm().