CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFRecoTauTagInfoAlgorithm.cc
Go to the documentation of this file.
2 
3 using namespace reco;
4 
6  // parameters of the considered charged hadr. PFCandidates, based on their rec. tk properties :
7  ChargedHadronsAssociationCone_ = parameters.getParameter<double>("ChargedHadrCand_AssociationCone");
8  ChargedHadrCand_tkminPt_ = parameters.getParameter<double>("ChargedHadrCand_tkminPt");
9  ChargedHadrCand_tkminPixelHitsn_ = parameters.getParameter<int>("ChargedHadrCand_tkminPixelHitsn");
10  ChargedHadrCand_tkminTrackerHitsn_ = parameters.getParameter<int>("ChargedHadrCand_tkminTrackerHitsn");
11  ChargedHadrCand_tkmaxipt_ = parameters.getParameter<double>("ChargedHadrCand_tkmaxipt");
12  ChargedHadrCand_tkmaxChi2_ = parameters.getParameter<double>("ChargedHadrCand_tkmaxChi2");
13  // parameters of the considered neutral hadr. PFCandidates, based on their rec. HCAL clus. properties :
14  NeutrHadrCand_HcalclusMinEt_ = parameters.getParameter<double>("NeutrHadrCand_HcalclusMinEt");
15  // parameters of the considered gamma PFCandidates, based on their rec. ECAL clus. properties :
16  GammaCand_EcalclusMinEt_ = parameters.getParameter<double>("GammaCand_EcalclusMinEt");
17  // parameters of the considered rec. Tracks (these ones catched through a JetTracksAssociation object, not through the charged hadr. PFCandidates inside the PFJet ; the motivation for considering them is the need for checking that a selection by the charged hadr. PFCandidates is equivalent to a selection by the rec. Tracks.) :
18  tkminPt_ = parameters.getParameter<double>("tkminPt");
19  tkminPixelHitsn_ = parameters.getParameter<int>("tkminPixelHitsn");
20  tkminTrackerHitsn_ = parameters.getParameter<int>("tkminTrackerHitsn");
21  tkmaxipt_ = parameters.getParameter<double>("tkmaxipt");
22  tkmaxChi2_ = parameters.getParameter<double>("tkmaxChi2");
23  //
24  UsePVconstraint_ = parameters.getParameter<bool>("UsePVconstraint");
25  ChargedHadrCand_tkPVmaxDZ_ = parameters.getParameter<double>("ChargedHadrCand_tkPVmaxDZ");
26  tkPVmaxDZ_ = parameters.getParameter<double>("tkPVmaxDZ");
27 }
28 
29 PFTauTagInfo PFRecoTauTagInfoAlgorithm::buildPFTauTagInfo(const PFJetRef& thePFJet,const std::vector<reco::PFCandidatePtr>& thePFCandsInEvent, const TrackRefVector& theTracks,const Vertex& thePV) const {
30  PFTauTagInfo resultExtended;
31  resultExtended.setpfjetRef(thePFJet);
32 
33  std::vector<reco::PFCandidatePtr> thePFCands;
34  const float jetPhi = (*thePFJet).phi();
35  const float jetEta = (*thePFJet).eta();
36  auto dr2 = [jetPhi,jetEta](float phi, float eta) { return reco::deltaR2(jetEta,jetPhi,eta,phi);};
37  for (auto iPFCand : thePFCandsInEvent){
38  float delta = dr2((*iPFCand).phi(),(*iPFCand).eta());
39  if (delta < ChargedHadronsAssociationCone_*ChargedHadronsAssociationCone_) thePFCands.push_back(iPFCand);
40  }
41  bool pvIsFake = (thePV.z() < -500.);
42 
43  std::vector<reco::PFCandidatePtr> theFilteredPFChargedHadrCands;
44  if (UsePVconstraint_ && !pvIsFake) theFilteredPFChargedHadrCands=TauTagTools::filteredPFChargedHadrCands(thePFCands,ChargedHadrCand_tkminPt_,ChargedHadrCand_tkminPixelHitsn_,ChargedHadrCand_tkminTrackerHitsn_,ChargedHadrCand_tkmaxipt_,ChargedHadrCand_tkmaxChi2_,ChargedHadrCand_tkPVmaxDZ_, thePV, thePV.z());
45  else theFilteredPFChargedHadrCands=TauTagTools::filteredPFChargedHadrCands(thePFCands,ChargedHadrCand_tkminPt_,ChargedHadrCand_tkminPixelHitsn_,ChargedHadrCand_tkminTrackerHitsn_,ChargedHadrCand_tkmaxipt_,ChargedHadrCand_tkmaxChi2_, thePV);
46  resultExtended.setPFChargedHadrCands(theFilteredPFChargedHadrCands);
47  resultExtended.setPFNeutrHadrCands(TauTagTools::filteredPFNeutrHadrCands(thePFCands,NeutrHadrCand_HcalclusMinEt_));
48  resultExtended.setPFGammaCands(TauTagTools::filteredPFGammaCands(thePFCands,GammaCand_EcalclusMinEt_));
49 
50  TrackRefVector theFilteredTracks;
51  if (UsePVconstraint_ && !pvIsFake) theFilteredTracks=TauTagTools::filteredTracks(theTracks,tkminPt_,tkminPixelHitsn_,tkminTrackerHitsn_,tkmaxipt_,tkmaxChi2_,tkPVmaxDZ_,thePV, thePV.z());
52  else theFilteredTracks=TauTagTools::filteredTracks(theTracks,tkminPt_,tkminPixelHitsn_,tkminTrackerHitsn_,tkmaxipt_,tkmaxChi2_,thePV);
53  resultExtended.setTracks(theFilteredTracks);
54 
55  return resultExtended;
56 }
57 
dbl * delta
Definition: mlp_gen.cc:36
T getParameter(std::string const &) const
dictionary parameters
Definition: Parameters.py:2
void setTracks(const TrackRefVector &)
reco::PFTauTagInfo buildPFTauTagInfo(const reco::PFJetRef &, const std::vector< reco::PFCandidatePtr > &, const reco::TrackRefVector &, const reco::Vertex &) const
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
reco::TrackRefVector filteredTracks(reco::TrackRefVector theInitialTracks, double tkminPt, int tkminPixelHitsn, int tkminTrackerHitsn, double tkmaxipt, double tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:77
std::vector< reco::PFCandidatePtr > filteredPFNeutrHadrCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double NeutrHadrCand_HcalclusMinEt)
Definition: TauTagTools.cc:158
void setPFChargedHadrCands(const std::vector< reco::PFCandidatePtr > &)
Definition: PFTauTagInfo.cc:16
std::vector< reco::PFCandidatePtr > filteredPFGammaCands(std::vector< reco::PFCandidatePtr > theInitialPFCands, double GammaCand_EcalclusMinEt)
Definition: TauTagTools.cc:171
double z() const
y coordinate
Definition: Vertex.h:112
double deltaR2(const T1 &t1, const T2 &t2)
Definition: deltaR.h:36
void setpfjetRef(const PFJetRef)
Definition: PFTauTagInfo.cc:23
Geom::Phi< T > phi() const
void setPFGammaCands(const std::vector< reco::PFCandidatePtr > &)
Definition: PFTauTagInfo.cc:20
void setPFNeutrHadrCands(const std::vector< reco::PFCandidatePtr > &)
Definition: PFTauTagInfo.cc:18