CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions
TauTagTools Namespace Reference

Classes

class  filterChargedAndNeutralsByPt
 
class  refVectorPtSorter
 
class  sortByAscendingPt
 
class  sortByDescendingPt
 
class  sortByOpeningAngleAscending
 
class  sortByOpeningAngleDescending
 
class  sortByOpeningDistance
 
class  sortRefsByOpeningDistance
 

Functions

double computeAngle (const math::XYZVector &vec1, const math::XYZVector &vec2)
 
TFormula computeConeSizeTFormula (const string &ConeSizeFormula, const char *errorMessage)
 
TFormula computeConeSizeTFormula (const std::string &ConeSizeFormula, const char *errorMessage)
 
double computeDeltaR (const math::XYZVector &vec1, const math::XYZVector &vec2)
 
std::vector< reco::PFCandidatePtrfilteredPFChargedHadrCands (std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, reco::Vertex pV)
 
std::vector< reco::PFCandidatePtrfilteredPFChargedHadrCands (std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, double ChargedHadrCand_tktorefpointmaxDZ, reco::Vertex pV, double refpoint_Z)
 
std::vector< reco::PFCandidatePtrfilteredPFChargedHadrCands (std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, Vertex pv)
 
std::vector< reco::PFCandidatePtrfilteredPFChargedHadrCands (std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, double ChargedHadrCand_tktorefpointmaxDZ, Vertex pv, double refpoint_Z)
 
std::vector< reco::PFCandidatePtrfilteredPFChargedHadrCandsByNumTrkHits (std::vector< reco::PFCandidatePtr > theInitialPFCands, int ChargedHadrCand_tkminTrackerHitsn)
 
std::vector< reco::PFCandidatePtrfilteredPFChargedHadrCandsByNumTrkHits (std::vector< reco::PFCandidatePtr > theInitialPFCands, int ChargedHadrCand_tkminTrackerHitsn)
 
std::vector< reco::PFCandidatePtrfilteredPFGammaCands (std::vector< reco::PFCandidatePtr > theInitialPFCands, double GammaCand_EcalclusMinEt)
 
std::vector< reco::PFCandidatePtrfilteredPFGammaCands (std::vector< reco::PFCandidatePtr > theInitialPFCands, double GammaCand_EcalclusMinEt)
 
std::vector< reco::PFCandidatePtrfilteredPFNeutrHadrCands (std::vector< reco::PFCandidatePtr > theInitialPFCands, double NeutrHadrCand_HcalclusMinEt)
 
std::vector< reco::PFCandidatePtrfilteredPFNeutrHadrCands (std::vector< reco::PFCandidatePtr > theInitialPFCands, double NeutrHadrCand_HcalclusMinEt)
 
reco::TrackRefVector filteredTracks (reco::TrackRefVector theInitialTracks, double tkminPt, int tkminPixelHitsn, int tkminTrackerHitsn, double tkmaxipt, double tkmaxChi2, reco::Vertex pV)
 
reco::TrackRefVector filteredTracks (reco::TrackRefVector theInitialTracks, double tkminPt, int tkminPixelHitsn, int tkminTrackerHitsn, double tkmaxipt, double tkmaxChi2, double tktorefpointmaxDZ, reco::Vertex pV, double refpoint_Z)
 
reco::TrackRefVector filteredTracksByNumTrkHits (reco::TrackRefVector theInitialTracks, int tkminTrackerHitsn)
 
math::XYZPoint propagTrackECALSurfContactPoint (const MagneticField *, reco::TrackRef)
 
void replaceSubStr (std::string &s, const std::string &oldSubStr, const std::string &newSubStr)
 
void replaceSubStr (string &s, const string &oldSubStr, const string &newSubStr)
 
void sortRefVectorByPt (std::vector< reco::PFCandidatePtr > &)
 
void sortRefVectorByPt (std::vector< reco::PFCandidatePtr > &vec)
 

Function Documentation

double TauTagTools::computeAngle ( const math::XYZVector vec1,
const math::XYZVector vec2 
)

Definition at line 13 of file TauTagTools.cc.

Referenced by PFTauElementsOperators::computeInsideOutContents().

14  {
15  Angle<math::XYZVector> myMetricAngle_;
16  return myMetricAngle_(vec1, vec2);
17  }
std::vector< double > vec1
Definition: HCALResponse.h:15
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
TFormula TauTagTools::computeConeSizeTFormula ( const string &  ConeSizeFormula,
const char *  errorMessage 
)

Definition at line 18 of file TauTagTools.cc.

References Exception, and replaceSubStr().

18  {
19  //--- check functional form
20  // given as configuration parameter for matching and signal cone sizes;
21  //
22  // The size of a cone may depend on the energy "E" and/or transverse energy "ET" of the tau-jet candidate.
23  // Alternatively one can additionally use "JetOpeningDR", which specifies the opening angle of the seed jet.
24  // Any functional form that is supported by ROOT's TFormula class can be used (e.g. "3.0/E", "0.25/sqrt(ET)")
25  //
26  // replace "E" by TFormula variable "x"
27  // "ET" "y"
28  TFormula ConeSizeTFormula;
29  string ConeSizeFormulaStr = ConeSizeFormula;
30  replaceSubStr(ConeSizeFormulaStr,"JetOpeningDR", "z");
31  replaceSubStr(ConeSizeFormulaStr,"ET","y");
32  replaceSubStr(ConeSizeFormulaStr,"E","x");
33  ConeSizeTFormula.SetName("ConeSize");
34  ConeSizeTFormula.SetTitle(ConeSizeFormulaStr.data()); // the function definition is actually stored in the "Title" data-member of the TFormula object
35  int errorFlag = ConeSizeTFormula.Compile();
36  if (errorFlag!= 0) {
37  throw cms::Exception("") << "\n unsupported functional Form for " << errorMessage << " " << ConeSizeFormula << std::endl
38  << "Please check that the Definition in \"" << ConeSizeTFormula.GetName() << "\" only contains the variables \"E\" or \"ET\""
39  << " and Functions that are supported by ROOT's TFormular Class." << std::endl;
40  }else return ConeSizeTFormula;
41 }
void replaceSubStr(std::string &s, const std::string &oldSubStr, const std::string &newSubStr)
TFormula TauTagTools::computeConeSizeTFormula ( const std::string &  ConeSizeFormula,
const char *  errorMessage 
)
double TauTagTools::computeDeltaR ( const math::XYZVector vec1,
const math::XYZVector vec2 
)

Definition at line 8 of file TauTagTools.cc.

Referenced by PFRecoTauAlgorithm::buildPFTau(), and PFTauElementsOperators::computeInsideOutContents().

9  {
10  DeltaR<math::XYZVector> myMetricDR_;
11  return myMetricDR_(vec1, vec2);
12  }
std::vector< double > vec1
Definition: HCALResponse.h:15
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFChargedHadrCands ( std::vector< reco::PFCandidatePtr theInitialPFCands,
double  ChargedHadrCand_tkminPt,
int  ChargedHadrCand_tkminPixelHitsn,
int  ChargedHadrCand_tkminTrackerHitsn,
double  ChargedHadrCand_tkmaxipt,
double  ChargedHadrCand_tkmaxChi2,
reco::Vertex  pV 
)

Definition at line 119 of file TauTagTools.cc.

References reco::PFCandidate::e, filteredPFChargedHadrCands(), reco::PFCandidate::h, reco::PFCandidate::mu, and reco::Vertex::position().

Referenced by PFRecoTauTagInfoAlgorithm::buildPFTauTagInfo(), filteredPFChargedHadrCands(), and filteredPFChargedHadrCandsByNumTrkHits().

119  {
120  std::vector<reco::PFCandidatePtr> filteredPFChargedHadrCands;
121  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
122  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::h || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::mu || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::e){
123  // *** Whether the charged hadron candidate will be selected or not depends on its rec. tk properties.
124  TrackRef PFChargedHadrCand_rectk = (**iPFCand).trackRef();
125 
126 
127  if (!PFChargedHadrCand_rectk)continue;
128  if ((*PFChargedHadrCand_rectk).pt()>=ChargedHadrCand_tkminPt &&
129  (*PFChargedHadrCand_rectk).normalizedChi2()<=ChargedHadrCand_tkmaxChi2 &&
130  fabs((*PFChargedHadrCand_rectk).dxy(pv.position()))<=ChargedHadrCand_tkmaxipt &&
131  (*PFChargedHadrCand_rectk).numberOfValidHits()>=ChargedHadrCand_tkminTrackerHitsn &&
132  (*PFChargedHadrCand_rectk).hitPattern().numberOfValidPixelHits()>=ChargedHadrCand_tkminPixelHitsn)
133  filteredPFChargedHadrCands.push_back(*iPFCand);
134  }
135  }
137  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFChargedHadrCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:119
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
const int mu
Definition: Constants.h:22
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFChargedHadrCands ( std::vector< reco::PFCandidatePtr theInitialPFCands,
double  ChargedHadrCand_tkminPt,
int  ChargedHadrCand_tkminPixelHitsn,
int  ChargedHadrCand_tkminTrackerHitsn,
double  ChargedHadrCand_tkmaxipt,
double  ChargedHadrCand_tkmaxChi2,
double  ChargedHadrCand_tktorefpointmaxDZ,
reco::Vertex  pV,
double  refpoint_Z 
)

Definition at line 138 of file TauTagTools.cc.

References reco::PFCandidate::e, filteredPFChargedHadrCands(), reco::PFCandidate::h, reco::Vertex::isFake(), reco::PFCandidate::mu, and reco::Vertex::position().

138  {
139  if(pv.isFake()) ChargedHadrCand_tktorefpointmaxDZ = 30.;
140  std::vector<reco::PFCandidatePtr> filteredPFChargedHadrCands;
141  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
142  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::h || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::mu || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::e){
143  // *** Whether the charged hadron candidate will be selected or not depends on its rec. tk properties.
144  TrackRef PFChargedHadrCand_rectk = (**iPFCand).trackRef();
145  if (!PFChargedHadrCand_rectk)continue;
146  if ((*PFChargedHadrCand_rectk).pt()>=ChargedHadrCand_tkminPt &&
147  (*PFChargedHadrCand_rectk).normalizedChi2()<=ChargedHadrCand_tkmaxChi2 &&
148  fabs((*PFChargedHadrCand_rectk).dxy(pv.position()))<=ChargedHadrCand_tkmaxipt &&
149  (*PFChargedHadrCand_rectk).numberOfValidHits()>=ChargedHadrCand_tkminTrackerHitsn &&
150  (*PFChargedHadrCand_rectk).hitPattern().numberOfValidPixelHits()>=ChargedHadrCand_tkminPixelHitsn &&
151  fabs((*PFChargedHadrCand_rectk).dz(pv.position()))<=ChargedHadrCand_tktorefpointmaxDZ)
152  filteredPFChargedHadrCands.push_back(*iPFCand);
153  }
154  }
156  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFChargedHadrCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:119
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
const int mu
Definition: Constants.h:22
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFChargedHadrCands ( std::vector< reco::PFCandidatePtr theInitialPFCands,
double  ChargedHadrCand_tkminPt,
int  ChargedHadrCand_tkminPixelHitsn,
int  ChargedHadrCand_tkminTrackerHitsn,
double  ChargedHadrCand_tkmaxipt,
double  ChargedHadrCand_tkmaxChi2,
Vertex  pv 
)

Definition at line 119 of file TauTagTools.cc.

References reco::PFCandidate::e, filteredPFChargedHadrCands(), reco::PFCandidate::h, reco::PFCandidate::mu, and reco::Vertex::position().

Referenced by PFRecoTauTagInfoAlgorithm::buildPFTauTagInfo(), filteredPFChargedHadrCands(), and filteredPFChargedHadrCandsByNumTrkHits().

119  {
120  std::vector<reco::PFCandidatePtr> filteredPFChargedHadrCands;
121  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
122  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::h || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::mu || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::e){
123  // *** Whether the charged hadron candidate will be selected or not depends on its rec. tk properties.
124  TrackRef PFChargedHadrCand_rectk = (**iPFCand).trackRef();
125 
126 
127  if (!PFChargedHadrCand_rectk)continue;
128  if ((*PFChargedHadrCand_rectk).pt()>=ChargedHadrCand_tkminPt &&
129  (*PFChargedHadrCand_rectk).normalizedChi2()<=ChargedHadrCand_tkmaxChi2 &&
130  fabs((*PFChargedHadrCand_rectk).dxy(pv.position()))<=ChargedHadrCand_tkmaxipt &&
131  (*PFChargedHadrCand_rectk).numberOfValidHits()>=ChargedHadrCand_tkminTrackerHitsn &&
132  (*PFChargedHadrCand_rectk).hitPattern().numberOfValidPixelHits()>=ChargedHadrCand_tkminPixelHitsn)
133  filteredPFChargedHadrCands.push_back(*iPFCand);
134  }
135  }
137  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFChargedHadrCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:119
const Point & position() const
position
Definition: Vertex.h:106
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
const int mu
Definition: Constants.h:22
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFChargedHadrCands ( std::vector< reco::PFCandidatePtr theInitialPFCands,
double  ChargedHadrCand_tkminPt,
int  ChargedHadrCand_tkminPixelHitsn,
int  ChargedHadrCand_tkminTrackerHitsn,
double  ChargedHadrCand_tkmaxipt,
double  ChargedHadrCand_tkmaxChi2,
double  ChargedHadrCand_tktorefpointmaxDZ,
Vertex  pv,
double  refpoint_Z 
)

Definition at line 138 of file TauTagTools.cc.

References reco::PFCandidate::e, filteredPFChargedHadrCands(), reco::PFCandidate::h, reco::Vertex::isFake(), reco::PFCandidate::mu, and reco::Vertex::position().

138  {
139  if(pv.isFake()) ChargedHadrCand_tktorefpointmaxDZ = 30.;
140  std::vector<reco::PFCandidatePtr> filteredPFChargedHadrCands;
141  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
142  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::h || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::mu || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::e){
143  // *** Whether the charged hadron candidate will be selected or not depends on its rec. tk properties.
144  TrackRef PFChargedHadrCand_rectk = (**iPFCand).trackRef();
145  if (!PFChargedHadrCand_rectk)continue;
146  if ((*PFChargedHadrCand_rectk).pt()>=ChargedHadrCand_tkminPt &&
147  (*PFChargedHadrCand_rectk).normalizedChi2()<=ChargedHadrCand_tkmaxChi2 &&
148  fabs((*PFChargedHadrCand_rectk).dxy(pv.position()))<=ChargedHadrCand_tkmaxipt &&
149  (*PFChargedHadrCand_rectk).numberOfValidHits()>=ChargedHadrCand_tkminTrackerHitsn &&
150  (*PFChargedHadrCand_rectk).hitPattern().numberOfValidPixelHits()>=ChargedHadrCand_tkminPixelHitsn &&
151  fabs((*PFChargedHadrCand_rectk).dz(pv.position()))<=ChargedHadrCand_tktorefpointmaxDZ)
152  filteredPFChargedHadrCands.push_back(*iPFCand);
153  }
154  }
156  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFChargedHadrCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:119
const Point & position() const
position
Definition: Vertex.h:106
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
const int mu
Definition: Constants.h:22
bool isFake() const
Definition: Vertex.h:64
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFChargedHadrCandsByNumTrkHits ( std::vector< reco::PFCandidatePtr theInitialPFCands,
int  ChargedHadrCand_tkminTrackerHitsn 
)

Definition at line 104 of file TauTagTools.cc.

References reco::PFCandidate::e, filteredPFChargedHadrCands(), reco::PFCandidate::h, and reco::PFCandidate::mu.

Referenced by PFRecoTauAlgorithm::buildPFTau().

104  {
105  std::vector<reco::PFCandidatePtr> filteredPFChargedHadrCands;
106  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
107  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::h || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::mu || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::e){
108  // *** Whether the charged hadron candidate will be selected or not depends on its rec. tk properties.
109  TrackRef PFChargedHadrCand_rectk = (**iPFCand).trackRef();
110 
111  if (!PFChargedHadrCand_rectk)continue;
112  if ( (*PFChargedHadrCand_rectk).numberOfValidHits()>=ChargedHadrCand_tkminTrackerHitsn )
113  filteredPFChargedHadrCands.push_back(*iPFCand);
114  }
115  }
117  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFChargedHadrCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:119
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
const int mu
Definition: Constants.h:22
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFChargedHadrCandsByNumTrkHits ( std::vector< reco::PFCandidatePtr theInitialPFCands,
int  ChargedHadrCand_tkminTrackerHitsn 
)

Definition at line 104 of file TauTagTools.cc.

References reco::PFCandidate::e, filteredPFChargedHadrCands(), reco::PFCandidate::h, and reco::PFCandidate::mu.

Referenced by PFRecoTauAlgorithm::buildPFTau().

104  {
105  std::vector<reco::PFCandidatePtr> filteredPFChargedHadrCands;
106  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
107  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::h || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::mu || PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::e){
108  // *** Whether the charged hadron candidate will be selected or not depends on its rec. tk properties.
109  TrackRef PFChargedHadrCand_rectk = (**iPFCand).trackRef();
110 
111  if (!PFChargedHadrCand_rectk)continue;
112  if ( (*PFChargedHadrCand_rectk).numberOfValidHits()>=ChargedHadrCand_tkminTrackerHitsn )
113  filteredPFChargedHadrCands.push_back(*iPFCand);
114  }
115  }
117  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFChargedHadrCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:119
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
const int mu
Definition: Constants.h:22
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFGammaCands ( std::vector< reco::PFCandidatePtr theInitialPFCands,
double  GammaCand_EcalclusMinEt 
)

Definition at line 171 of file TauTagTools.cc.

References filteredPFGammaCands(), and reco::PFCandidate::gamma.

Referenced by PFRecoTauTagInfoAlgorithm::buildPFTauTagInfo(), and filteredPFGammaCands().

171  {
172  std::vector<reco::PFCandidatePtr> filteredPFGammaCands;
173  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
174  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::gamma){
175  // *** Whether the gamma candidate will be selected or not depends on its rec. ECAL cluster properties.
176  if ((**iPFCand).et()>=GammaCand_EcalclusMinEt){
177  filteredPFGammaCands.push_back(*iPFCand);
178  }
179  }
180  }
181  return filteredPFGammaCands;
182  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFGammaCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double GammaCand_EcalclusMinEt)
Definition: TauTagTools.cc:171
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFGammaCands ( std::vector< reco::PFCandidatePtr theInitialPFCands,
double  GammaCand_EcalclusMinEt 
)

Definition at line 171 of file TauTagTools.cc.

References filteredPFGammaCands(), and reco::PFCandidate::gamma.

Referenced by PFRecoTauTagInfoAlgorithm::buildPFTauTagInfo(), and filteredPFGammaCands().

171  {
172  std::vector<reco::PFCandidatePtr> filteredPFGammaCands;
173  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
174  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::gamma){
175  // *** Whether the gamma candidate will be selected or not depends on its rec. ECAL cluster properties.
176  if ((**iPFCand).et()>=GammaCand_EcalclusMinEt){
177  filteredPFGammaCands.push_back(*iPFCand);
178  }
179  }
180  }
181  return filteredPFGammaCands;
182  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFGammaCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double GammaCand_EcalclusMinEt)
Definition: TauTagTools.cc:171
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFNeutrHadrCands ( std::vector< reco::PFCandidatePtr theInitialPFCands,
double  NeutrHadrCand_HcalclusMinEt 
)

Definition at line 158 of file TauTagTools.cc.

References filteredPFNeutrHadrCands(), and reco::PFCandidate::h0.

Referenced by PFRecoTauTagInfoAlgorithm::buildPFTauTagInfo(), and filteredPFNeutrHadrCands().

158  {
159  std::vector<reco::PFCandidatePtr> filteredPFNeutrHadrCands;
160  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
161  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::h0){
162  // *** Whether the neutral hadron candidate will be selected or not depends on its rec. HCAL cluster properties.
163  if ((**iPFCand).et()>=NeutrHadrCand_HcalclusMinEt){
164  filteredPFNeutrHadrCands.push_back(*iPFCand);
165  }
166  }
167  }
169  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFNeutrHadrCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double NeutrHadrCand_HcalclusMinEt)
Definition: TauTagTools.cc:158
std::vector<reco::PFCandidatePtr> TauTagTools::filteredPFNeutrHadrCands ( std::vector< reco::PFCandidatePtr theInitialPFCands,
double  NeutrHadrCand_HcalclusMinEt 
)

Definition at line 158 of file TauTagTools.cc.

References filteredPFNeutrHadrCands(), and reco::PFCandidate::h0.

Referenced by PFRecoTauTagInfoAlgorithm::buildPFTauTagInfo(), and filteredPFNeutrHadrCands().

158  {
159  std::vector<reco::PFCandidatePtr> filteredPFNeutrHadrCands;
160  for(std::vector<reco::PFCandidatePtr>::const_iterator iPFCand=theInitialPFCands.begin();iPFCand!=theInitialPFCands.end();iPFCand++){
161  if (PFCandidate::ParticleType((**iPFCand).particleId())==PFCandidate::h0){
162  // *** Whether the neutral hadron candidate will be selected or not depends on its rec. HCAL cluster properties.
163  if ((**iPFCand).et()>=NeutrHadrCand_HcalclusMinEt){
164  filteredPFNeutrHadrCands.push_back(*iPFCand);
165  }
166  }
167  }
169  }
ParticleType
particle types
Definition: PFCandidate.h:44
std::vector< reco::PFCandidatePtr > filteredPFNeutrHadrCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double NeutrHadrCand_HcalclusMinEt)
Definition: TauTagTools.cc:158
TrackRefVector TauTagTools::filteredTracks ( reco::TrackRefVector  theInitialTracks,
double  tkminPt,
int  tkminPixelHitsn,
int  tkminTrackerHitsn,
double  tkmaxipt,
double  tkmaxChi2,
reco::Vertex  pV 
)

Definition at line 77 of file TauTagTools.cc.

References edm::RefVector< C, T, F >::begin(), edm::RefVector< C, T, F >::end(), reco::Vertex::position(), and edm::RefVector< C, T, F >::push_back().

Referenced by CaloRecoTauTagInfoAlgorithm::buildCaloTauTagInfo(), PFRecoTauTagInfoAlgorithm::buildPFTauTagInfo(), filteredTracks(), filteredTracksByNumTrkHits(), and CaloRecoTauTagInfoAlgorithm::filterTracksByQualityBit().

77  {
79  for(TrackRefVector::const_iterator iTk=theInitialTracks.begin();iTk!=theInitialTracks.end();iTk++){
80  if ((**iTk).pt()>=tkminPt &&
81  (**iTk).normalizedChi2()<=tkmaxChi2 &&
82  fabs((**iTk).dxy(pv.position()))<=tkmaxipt &&
83  (**iTk).numberOfValidHits()>=tkminTrackerHitsn &&
84  (**iTk).hitPattern().numberOfValidPixelHits()>=tkminPixelHitsn)
85  filteredTracks.push_back(*iTk);
86  }
87  return filteredTracks;
88  }
reco::TrackRefVector filteredTracks(reco::TrackRefVector theInitialTracks, double tkminPt, int tkminPixelHitsn, int tkminTrackerHitsn, double tkmaxipt, double tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:77
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:255
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:250
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:62
TrackRefVector TauTagTools::filteredTracks ( reco::TrackRefVector  theInitialTracks,
double  tkminPt,
int  tkminPixelHitsn,
int  tkminTrackerHitsn,
double  tkmaxipt,
double  tkmaxChi2,
double  tktorefpointmaxDZ,
reco::Vertex  pV,
double  refpoint_Z 
)

Definition at line 89 of file TauTagTools.cc.

References edm::RefVector< C, T, F >::begin(), edm::RefVector< C, T, F >::end(), filteredTracks(), reco::Vertex::isFake(), reco::Vertex::position(), and edm::RefVector< C, T, F >::push_back().

89  {
91  for(TrackRefVector::const_iterator iTk=theInitialTracks.begin();iTk!=theInitialTracks.end();iTk++){
92  if(pv.isFake()) tktorefpointmaxDZ=30.;
93  if ((**iTk).pt()>=tkminPt &&
94  (**iTk).normalizedChi2()<=tkmaxChi2 &&
95  fabs((**iTk).dxy(pv.position()))<=tkmaxipt &&
96  (**iTk).numberOfValidHits()>=tkminTrackerHitsn &&
97  (**iTk).hitPattern().numberOfValidPixelHits()>=tkminPixelHitsn &&
98  fabs((**iTk).dz(pv.position()))<=tktorefpointmaxDZ)
99  filteredTracks.push_back(*iTk);
100  }
101  return filteredTracks;
102  }
reco::TrackRefVector filteredTracks(reco::TrackRefVector theInitialTracks, double tkminPt, int tkminPixelHitsn, int tkminTrackerHitsn, double tkmaxipt, double tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:77
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:255
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:250
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:62
TrackRefVector TauTagTools::filteredTracksByNumTrkHits ( reco::TrackRefVector  theInitialTracks,
int  tkminTrackerHitsn 
)

Definition at line 68 of file TauTagTools.cc.

References edm::RefVector< C, T, F >::begin(), edm::RefVector< C, T, F >::end(), filteredTracks(), and edm::RefVector< C, T, F >::push_back().

Referenced by CaloRecoTauAlgorithm::buildCaloTau(), and PFRecoTauAlgorithm::buildPFTau().

68  {
70  for(TrackRefVector::const_iterator iTk=theInitialTracks.begin();iTk!=theInitialTracks.end();iTk++){
71  if ( (**iTk).numberOfValidHits() >= tkminTrackerHitsn )
72  filteredTracks.push_back(*iTk);
73  }
74  return filteredTracks;
75  }
reco::TrackRefVector filteredTracks(reco::TrackRefVector theInitialTracks, double tkminPt, int tkminPixelHitsn, int tkminTrackerHitsn, double tkmaxipt, double tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:77
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:255
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:250
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:62
math::XYZPoint TauTagTools::propagTrackECALSurfContactPoint ( const MagneticField theMagField,
reco::TrackRef  theTrack 
)

Definition at line 184 of file TauTagTools.cc.

References alongMomentum, AnalyticalPropagator_cfi::AnalyticalPropagator, ECALBounds::barrel_halfLength(), ECALBounds::barrel_innerradius(), ECALBounds::barrelBound(), alignCSCRings::e, PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), ECALBounds::negativeEndcapDisk(), PV3DBase< T, PVType, FrameType >::perp(), GlobalTrajectoryParameters::position(), ECALBounds::positiveEndcapDisk(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by CaloRecoTauAlgorithm::buildCaloTau(), and CaloRecoTauTagInfoAlgorithm::getNeutralEcalBasicClusters().

184  {
185  AnalyticalPropagator thefwdPropagator(theMagField,alongMomentum);
186  math::XYZPoint propTrack_XYZPoint(0.,0.,0.);
187 
188  // get the initial Track FreeTrajectoryState - at outermost point position if possible, else at innermost point position:
189  GlobalVector theTrack_initialGV(0.,0.,0.);
190  GlobalPoint theTrack_initialGP(0.,0.,0.);
191  if(theTrack->outerOk()){
192  GlobalVector theTrack_initialoutermostGV(theTrack->outerMomentum().x(),theTrack->outerMomentum().y(),theTrack->outerMomentum().z());
193  GlobalPoint theTrack_initialoutermostGP(theTrack->outerPosition().x(),theTrack->outerPosition().y(),theTrack->outerPosition().z());
194  theTrack_initialGV=theTrack_initialoutermostGV;
195  theTrack_initialGP=theTrack_initialoutermostGP;
196  } else if(theTrack->innerOk()){
197  GlobalVector theTrack_initialinnermostGV(theTrack->innerMomentum().x(),theTrack->innerMomentum().y(),theTrack->innerMomentum().z());
198  GlobalPoint theTrack_initialinnermostGP(theTrack->innerPosition().x(),theTrack->innerPosition().y(),theTrack->innerPosition().z());
199  theTrack_initialGV=theTrack_initialinnermostGV;
200  theTrack_initialGP=theTrack_initialinnermostGP;
201  } else return (propTrack_XYZPoint);
202  GlobalTrajectoryParameters theTrack_initialGTPs(theTrack_initialGP,theTrack_initialGV,theTrack->charge(),&*theMagField);
203  // FIX THIS !!!
204  // need to convert from perigee to global or helix (curvilinear) frame
205  // for now just an arbitrary matrix.
206  AlgebraicSymMatrix66 covM=AlgebraicMatrixID(); covM *= 1e-6; // initialize to sigma=1e-3
207  CartesianTrajectoryError cov_CTE(covM);
208  FreeTrajectoryState Track_initialFTS(theTrack_initialGTPs,cov_CTE);
209  // ***
210 
211  // propagate to ECAL surface:
212  double ECALcorner_tantheta=ECALBounds::barrel_innerradius()/ECALBounds::barrel_halfLength();
213  TrajectoryStateOnSurface Track_propagatedonECAL_TSOS=thefwdPropagator.propagate((Track_initialFTS),ECALBounds::barrelBound());
214  if(!Track_propagatedonECAL_TSOS.isValid() || fabs(Track_propagatedonECAL_TSOS.globalParameters().position().perp()/Track_propagatedonECAL_TSOS.globalParameters().position().z())<ECALcorner_tantheta) {
215  if(Track_propagatedonECAL_TSOS.isValid() && fabs(Track_propagatedonECAL_TSOS.globalParameters().position().perp()/Track_propagatedonECAL_TSOS.globalParameters().position().z())<ECALcorner_tantheta){
216  if(Track_propagatedonECAL_TSOS.globalParameters().position().eta()>0.){
217  Track_propagatedonECAL_TSOS=thefwdPropagator.propagate((Track_initialFTS),ECALBounds::positiveEndcapDisk());
218  }else{
219  Track_propagatedonECAL_TSOS=thefwdPropagator.propagate((Track_initialFTS),ECALBounds::negativeEndcapDisk());
220  }
221  }
222  if(!Track_propagatedonECAL_TSOS.isValid()){
223  if((Track_initialFTS).position().eta()>0.){
224  Track_propagatedonECAL_TSOS=thefwdPropagator.propagate((Track_initialFTS),ECALBounds::positiveEndcapDisk());
225  }else{
226  Track_propagatedonECAL_TSOS=thefwdPropagator.propagate((Track_initialFTS),ECALBounds::negativeEndcapDisk());
227  }
228  }
229  }
230  if(Track_propagatedonECAL_TSOS.isValid()){
231  math::XYZPoint validpropTrack_XYZPoint(Track_propagatedonECAL_TSOS.globalPosition().x(),
232  Track_propagatedonECAL_TSOS.globalPosition().y(),
233  Track_propagatedonECAL_TSOS.globalPosition().z());
234  propTrack_XYZPoint=validpropTrack_XYZPoint;
235  }
236  return (propTrack_XYZPoint);
237  }
T perp() const
Definition: PV3DBase.h:72
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
static float barrel_innerradius()
Definition: ECALBounds.h:25
static const BoundCylinder & barrelBound()
Definition: ECALBounds.h:19
static const BoundDisk & positiveEndcapDisk()
Definition: ECALBounds.h:21
static const BoundDisk & negativeEndcapDisk()
Definition: ECALBounds.h:20
T z() const
Definition: PV3DBase.h:64
const GlobalTrajectoryParameters & globalParameters() const
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
T eta() const
Definition: PV3DBase.h:76
static float barrel_halfLength()
Definition: ECALBounds.h:27
T x() const
Definition: PV3DBase.h:62
void TauTagTools::replaceSubStr ( std::string &  s,
const std::string &  oldSubStr,
const std::string &  newSubStr 
)

Referenced by computeConeSizeTFormula().

void TauTagTools::replaceSubStr ( string &  s,
const string &  oldSubStr,
const string &  newSubStr 
)

Definition at line 42 of file TauTagTools.cc.

42  {
43  //--- protect replacement algorithm
44  // from case that oldSubStr and newSubStr are equal
45  // (nothing to be done anyway)
46  if ( oldSubStr == newSubStr ) return;
47 
48  //--- protect replacement algorithm
49  // from case that oldSubStr contains no characters
50  // (i.e. matches everything)
51  if ( oldSubStr.empty() ) return;
52 
53  const string::size_type lengthOldSubStr = oldSubStr.size();
54  const string::size_type lengthNewSubStr = newSubStr.size();
55 
56  string::size_type positionPreviousMatch = 0;
57  string::size_type positionNextMatch = 0;
58 
59  //--- consecutively replace all occurences of oldSubStr by newSubStr;
60  // keep iterating until no occurence of oldSubStr left
61  while ( (positionNextMatch = s.find(oldSubStr, positionPreviousMatch)) != string::npos ) {
62  s.replace(positionNextMatch, lengthOldSubStr, newSubStr);
63  positionPreviousMatch = positionNextMatch + lengthNewSubStr;
64  }
65 }
uint16_t size_type
void TauTagTools::sortRefVectorByPt ( std::vector< reco::PFCandidatePtr > &  )

Definition at line 242 of file TauTagTools.cc.

References i, python.multivaluedict::sort(), and MCScenario_CRAFT1_22X::sorter().

Referenced by HPSPFRecoTauAlgorithm::buildPFTau(), and PFCandidateStripMerger::mergeCandidates().

243  {
244 
245  std::vector<size_t> indices;
246  indices.reserve(vec.size());
247  for(unsigned int i=0;i<vec.size();++i)
248  indices.push_back(i);
249 
250  refVectorPtSorter sorter(vec);
251  std::sort(indices.begin(),indices.end(),sorter);
252 
253 
254  std::vector<reco::PFCandidatePtr> sorted;
255  sorted.reserve(vec.size());
256 
257  for(unsigned int i=0;i<indices.size();++i)
258  sorted.push_back(vec.at(indices.at(i)));
259 
260  vec = sorted;
261  }
int i
Definition: DBlmapReader.cc:9
void TauTagTools::sortRefVectorByPt ( std::vector< reco::PFCandidatePtr > &  vec)

Definition at line 242 of file TauTagTools.cc.

References i, python.multivaluedict::sort(), and MCScenario_CRAFT1_22X::sorter().

Referenced by HPSPFRecoTauAlgorithm::buildPFTau(), and PFCandidateStripMerger::mergeCandidates().

243  {
244 
245  std::vector<size_t> indices;
246  indices.reserve(vec.size());
247  for(unsigned int i=0;i<vec.size();++i)
248  indices.push_back(i);
249 
250  refVectorPtSorter sorter(vec);
251  std::sort(indices.begin(),indices.end(),sorter);
252 
253 
254  std::vector<reco::PFCandidatePtr> sorted;
255  sorted.reserve(vec.size());
256 
257  for(unsigned int i=0;i<indices.size();++i)
258  sorted.push_back(vec.at(indices.at(i)));
259 
260  vec = sorted;
261  }
int i
Definition: DBlmapReader.cc:9