CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFTauQualityCutWrapper.cc
Go to the documentation of this file.
2 
3 // ****************************************************
4 // ****** Isolation filters ************************
5 // ****************************************************
6 
7 using namespace reco;
8 
9 void
10 PFTauQualityCutWrapper::isolationChargedObjects(const PFTau& pfTau, const Vertex& pv, std::vector<reco::LeafCandidate>& output)
11 {
12  if( isoQCuts.useTracksInsteadOfPF )
13  {
15  isoQCuts.minTrackPt,
16  isoQCuts.minTrackPixelHits,
17  isoQCuts.minTrackHits,
18  isoQCuts.maxTransverseImpactParameter,
19  isoQCuts.maxTrackChi2,
20  isoQCuts.maxDeltaZ,
21  pv,
22  pv.position().z() ); //????
23 
24  size_t nTracks = result.size();
25  for(size_t iTrack = 0; iTrack < nTracks; ++iTrack)
26  {
27  // this sucks
28  int charge = result[iTrack]->charge();
29  math::XYZVector p3 = result[iTrack]->momentum();
30  reco::Particle::LorentzVector p4(p3.R(), p3.x(), p3.y(), p3.z());
31  output.push_back(reco::LeafCandidate(charge, p4));
32  }
33  } else
34  {
36  isoQCuts.minTrackPt,
37  isoQCuts.minTrackPixelHits,
38  isoQCuts.minTrackHits,
39  isoQCuts.maxTransverseImpactParameter,
40  isoQCuts.maxTrackChi2,
41  isoQCuts.maxDeltaZ,
42  pv,
43  pv.position().z() ); //????
44 
45  size_t nTracks = result.size();
46  for(size_t iTrack = 0; iTrack < nTracks; ++iTrack)
47  {
48  output.push_back(reco::LeafCandidate(result[iTrack]->charge(), result[iTrack]->p4()));
49  }
50  }
51 
52 }
53 
54 void
55 PFTauQualityCutWrapper::isolationGammaObjects(const PFTau& pfTau, std::vector<reco::LeafCandidate>& output)
56 {
58 
59  size_t nGammas = result.size();
60  for(size_t iGamma = 0; iGamma < nGammas; ++iGamma)
61  {
62  output.push_back(reco::LeafCandidate(result[iGamma]->charge(), result[iGamma]->p4()));
63  }
64 
65 }
66 
67 // ****************************************************
68 // ****** Signal region filters *********************
69 // ****************************************************
70 
71 void
72 PFTauQualityCutWrapper::signalChargedObjects(const PFTau& pfTau, const Vertex& pv, std::vector<reco::LeafCandidate>& output)
73 {
74  if( signalQCuts.useTracksInsteadOfPF )
75  {
77  signalQCuts.minTrackPt,
78  signalQCuts.minTrackPixelHits,
79  signalQCuts.minTrackHits,
80  signalQCuts.maxTransverseImpactParameter,
81  signalQCuts.maxTrackChi2,
82  signalQCuts.maxDeltaZ,
83  pv,
84  pv.position().z() ); //????
85 
86  size_t nTracks = result.size();
87  for(size_t iTrack = 0; iTrack < nTracks; ++iTrack)
88  {
89  // this sucks
90  int charge = result[iTrack]->charge();
91  math::XYZVector p3 = result[iTrack]->momentum();
92  reco::Particle::LorentzVector p4(p3.R(), p3.x(), p3.y(), p3.z());
93  output.push_back(reco::LeafCandidate(charge, p4));
94  }
95  } else
96  {
98  signalQCuts.minTrackPt,
99  signalQCuts.minTrackPixelHits,
100  signalQCuts.minTrackHits,
101  signalQCuts.maxTransverseImpactParameter,
102  signalQCuts.maxTrackChi2,
103  signalQCuts.maxDeltaZ,
104  pv,
105  pv.position().z() ); //????
106 
107  size_t nTracks = result.size();
108  for(size_t iTrack = 0; iTrack < nTracks; ++iTrack)
109  {
110  output.push_back(reco::LeafCandidate(result[iTrack]->charge(), result[iTrack]->p4()));
111  }
112  }
113 
114 }
115 
116 void
117 PFTauQualityCutWrapper::signalGammaObjects(const PFTau& pfTau, std::vector<reco::LeafCandidate>& output)
118 {
120 
121  size_t nGammas = result.size();
122  for(size_t iGamma = 0; iGamma < nGammas; ++iGamma)
123  {
124  output.push_back(reco::LeafCandidate(result[iGamma]->charge(), result[iGamma]->p4()));
125  }
126 
127 }
unsigned int nGammas(const GenJet &jet)
void isolationGammaObjects(const reco::PFTau &, std::vector< reco::LeafCandidate > &)
retrieve filtered isolation gamma objects from the pfTau
void signalChargedObjects(const reco::PFTau &, const reco::Vertex &, std::vector< reco::LeafCandidate > &)
retrieve filtered signal charged objects from the pfTau
virtual const reco::TrackRefVector & isolationTracks() const
Definition: BaseTau.cc:30
reco::PFCandidateRefVector filteredPFGammaCands(reco::PFCandidateRefVector theInitialPFCands, double GammaCand_EcalclusMinEt)
Definition: TauTagTools.cc:171
void isolationChargedObjects(const reco::PFTau &, const reco::Vertex &, std::vector< reco::LeafCandidate > &)
retrieve filtered isolation charged objects from the pfTau
reco::TrackRefVector filteredTracks(reco::TrackRefVector theInitialTracks, double tkminPt, int tkminPixelHitsn, int tkminTrackerHitsn, double tkmaxipt, double tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:77
const PFCandidateRefVector & signalPFChargedHadrCands() const
Charged hadrons in signal region.
Definition: PFTau.cc:75
const Point & position() const
position
Definition: Vertex.h:93
double charge(const std::vector< uint8_t > &Ampls)
void signalGammaObjects(const reco::PFTau &, std::vector< reco::LeafCandidate > &)
retrieve filtered signal gamma objects from the pfTau
double p4[4]
Definition: TauolaWrapper.h:92
const PFCandidateRefVector & isolationPFGammaCands() const
Gamma candidates in isolation region.
Definition: PFTau.cc:88
tuple result
Definition: query.py:137
virtual const reco::TrackRefVector & signalTracks() const
Definition: BaseTau.cc:28
reco::PFCandidateRefVector filteredPFChargedHadrCands(reco::PFCandidateRefVector theInitialPFCands, double ChargedHadrCand_tkminPt, int ChargedHadrCand_tkminPixelHitsn, int ChargedHadrCand_tkminTrackerHitsn, double ChargedHadrCand_tkmaxipt, double ChargedHadrCand_tkmaxChi2, reco::Vertex pV)
Definition: TauTagTools.cc:119
const PFCandidateRefVector & signalPFGammaCands() const
Gamma candidates in signal region.
Definition: PFTau.cc:79
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
size_type size() const
Size of the RefVector.
Definition: RefVector.h:84
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:26
const PFCandidateRefVector & isolationPFChargedHadrCands() const
Charged candidates in isolation region.
Definition: PFTau.cc:84
double p3[4]
Definition: TauolaWrapper.h:91