CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
reco::tau::RecoTauPiZeroStripPlugin3 Class Reference
Inheritance diagram for reco::tau::RecoTauPiZeroStripPlugin3:
reco::tau::RecoTauPiZeroBuilderPlugin reco::tau::RecoTauEventHolderPlugin reco::tau::RecoTauNamedPlugin

Public Member Functions

void beginEvent () override
 Hook called at the beginning of the event. More...
 
return_type operator() (const reco::PFJet &) const override
 Build a collection of piZeros from objects in the input jet. More...
 
 RecoTauPiZeroStripPlugin3 (const edm::ParameterSet &, edm::ConsumesCollector &&iC)
 
 ~RecoTauPiZeroStripPlugin3 () override
 
- Public Member Functions inherited from reco::tau::RecoTauPiZeroBuilderPlugin
 RecoTauPiZeroBuilderPlugin (const edm::ParameterSet &pset, edm::ConsumesCollector &&iC)
 
 ~RecoTauPiZeroBuilderPlugin () override
 
- Public Member Functions inherited from reco::tau::RecoTauEventHolderPlugin
const edm::Eventevt () const
 
edm::Eventevt ()
 
const edm::EventSetupevtSetup () const
 
 RecoTauEventHolderPlugin (const edm::ParameterSet &pset)
 
void setup (edm::Event &, const edm::EventSetup &)
 
 ~RecoTauEventHolderPlugin () override
 
- Public Member Functions inherited from reco::tau::RecoTauNamedPlugin
const std::string & name () const
 
 RecoTauNamedPlugin (const edm::ParameterSet &pset)
 
virtual ~RecoTauNamedPlugin ()
 

Private Types

typedef std::vector< reco::PFCandidatePtrPFCandPtrs
 

Private Member Functions

void addCandsToStrip (RecoTauPiZero &, PFCandPtrs &, const std::vector< bool > &, std::set< size_t > &, bool &) const
 

Private Attributes

bool applyElecTrackQcuts_
 
double combinatoricStripMassHypo_
 
bool combineStrips_
 
std::unique_ptr< const TFormula > etaAssociationDistance_
 
std::vector< int > inputPdgIds_
 
int maxStripBuildIterations_
 
int maxStrips_
 
double minGammaEtStripAdd_
 
double minGammaEtStripSeed_
 
double minStripEt_
 
AddFourMomenta p4Builder_
 
std::unique_ptr< const TFormula > phiAssociationDistance_
 
std::unique_ptr< RecoTauQualityCutsqcuts_
 
bool updateStripAfterEachDaughter_
 
int verbosity_
 
RecoTauVertexAssociator vertexAssociator_
 

Additional Inherited Members

- Public Types inherited from reco::tau::RecoTauPiZeroBuilderPlugin
typedef boost::ptr_vector< RecoTauPiZeroPiZeroVector
 
typedef std::auto_ptr< PiZeroVectorreturn_type
 

Detailed Description

Definition at line 56 of file RecoTauPiZeroStripPlugin3.cc.

Member Typedef Documentation

Definition at line 67 of file RecoTauPiZeroStripPlugin3.cc.

Constructor & Destructor Documentation

reco::tau::RecoTauPiZeroStripPlugin3::RecoTauPiZeroStripPlugin3 ( const edm::ParameterSet pset,
edm::ConsumesCollector &&  iC 
)
explicit

Definition at line 113 of file RecoTauPiZeroStripPlugin3.cc.

References applyElecTrackQcuts_, combinatoricStripMassHypo_, combineStrips_, etaAssociationDistance_, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), inputPdgIds_, maxStripBuildIterations_, maxStrips_, min(), minGammaEtStripAdd_, minGammaEtStripSeed_, minStripEt_, phiAssociationDistance_, qcuts_, updateStripAfterEachDaughter_, and verbosity_.

116 {
117  minGammaEtStripSeed_ = pset.getParameter<double>("minGammaEtStripSeed");
118  minGammaEtStripAdd_ = pset.getParameter<double>("minGammaEtStripAdd");
119 
120  minStripEt_ = pset.getParameter<double>("minStripEt");
121 
122  edm::ParameterSet qcuts_pset = pset.getParameterSet("qualityCuts").getParameterSet("signalQualityCuts");
123 //-------------------------------------------------------------------------------
124 // CV: disable track quality cuts for PFElectronsPFElectron
125 // (treat PFElectrons like PFGammas for the purpose of building eta-phi strips)
126  applyElecTrackQcuts_ = pset.getParameter<bool>("applyElecTrackQcuts");
127  if ( !applyElecTrackQcuts_ ) {
128  qcuts_pset.addParameter<double>("minTrackPt", std::min(minGammaEtStripSeed_, minGammaEtStripAdd_));
129  qcuts_pset.addParameter<double>("maxTrackChi2", 1.e+9);
130  qcuts_pset.addParameter<double>("maxTransverseImpactParameter", 1.e+9);
131  qcuts_pset.addParameter<double>("maxDeltaZ", 1.e+9);
132  qcuts_pset.addParameter<double>("minTrackVertexWeight", -1.);
133  qcuts_pset.addParameter<unsigned>("minTrackPixelHits", 0);
134  qcuts_pset.addParameter<unsigned>("minTrackHits", 0);
135  }
136 //-------------------------------------------------------------------------------
137  qcuts_pset.addParameter<double>("minGammaEt", std::min(minGammaEtStripSeed_, minGammaEtStripAdd_));
138  //qcuts_ = new RecoTauQualityCuts(qcuts_pset);
139  //std::unique_ptr<RecoTauQualityCuts> qcuts_(new RecoTauQualityCuts(qcuts_pset));
140 
141  qcuts_.reset(new RecoTauQualityCuts(qcuts_pset));
142 
143  inputPdgIds_ = pset.getParameter<std::vector<int> >("stripCandidatesParticleIds");
144  const edm::ParameterSet& stripSize_eta_pset = pset.getParameterSet("stripEtaAssociationDistance");
145  etaAssociationDistance_ = makeFunction("etaAssociationDistance", stripSize_eta_pset);
146  const edm::ParameterSet& stripSize_phi_pset = pset.getParameterSet("stripPhiAssociationDistance");
147  phiAssociationDistance_ = makeFunction("phiAssociationDistance", stripSize_phi_pset);
148 
149  updateStripAfterEachDaughter_ = pset.getParameter<bool>("updateStripAfterEachDaughter");
150  maxStripBuildIterations_ = pset.getParameter<int>("maxStripBuildIterations");
151 
152  combineStrips_ = pset.getParameter<bool>("makeCombinatoricStrips");
153  if ( combineStrips_ ) {
154  maxStrips_ = pset.getParameter<int>("maxInputStrips");
155  combinatoricStripMassHypo_ = pset.getParameter<double>("stripMassWhenCombining");
156  }
157 
158  verbosity_ = ( pset.exists("verbosity") ) ?
159  pset.getParameter<int>("verbosity") : 0;
160 }
T getParameter(std::string const &) const
bool exists(std::string const &parameterName) const
checks if a parameter exists
RecoTauPiZeroBuilderPlugin(const edm::ParameterSet &pset, edm::ConsumesCollector &&iC)
T min(T a, T b)
Definition: MathUtil.h:58
std::unique_ptr< const TFormula > etaAssociationDistance_
std::unique_ptr< RecoTauQualityCuts > qcuts_
ParameterSet const & getParameterSet(std::string const &) const
std::unique_ptr< const TFormula > phiAssociationDistance_
def move(src, dest)
Definition: eostools.py:510
reco::tau::RecoTauPiZeroStripPlugin3::~RecoTauPiZeroStripPlugin3 ( )
override

Definition at line 161 of file RecoTauPiZeroStripPlugin3.cc.

162 {
163 }

Member Function Documentation

void reco::tau::RecoTauPiZeroStripPlugin3::addCandsToStrip ( RecoTauPiZero strip,
PFCandPtrs cands,
const std::vector< bool > &  candFlags,
std::set< size_t > &  candIdsCurrentStrip,
bool &  isCandAdded 
) const
private

Definition at line 171 of file RecoTauPiZeroStripPlugin3.cc.

References reco::CompositePtrCandidate::addDaughter(), reco::deltaPhi(), reco::LeafCandidate::eta(), etaAssociationDistance_, getTrack(), reco::PFCandidate::gsfTrackRef(), edm::Ptr< T >::id(), edm::Ref< C, T, F >::isNonnull(), edm::Ptr< T >::key(), p4Builder_, reco::LeafCandidate::phi(), phiAssociationDistance_, reco::LeafCandidate::pt(), AddFourMomenta::set(), reco::PFCandidate::trackRef(), updateStripAfterEachDaughter_, and verbosity_.

Referenced by operator()().

173 {
174  if ( verbosity_ >= 1 ) {
175  edm::LogPrint("RecoTauPiZeroStripPlugin3") << "<RecoTauPiZeroStripPlugin3::addCandsToStrip>:" ;
176  }
177  size_t numCands = cands.size();
178  for ( size_t candId = 0; candId < numCands; ++candId ) {
179  if ( (!candFlags[candId]) && candIdsCurrentStrip.find(candId) == candIdsCurrentStrip.end() ) { // do not include same cand twice
180  reco::PFCandidatePtr cand = cands[candId];
181  double etaAssociationDistance_value = etaAssociationDistance_->Eval(strip.pt()) + etaAssociationDistance_->Eval(cand->pt());
182  double phiAssociationDistance_value = phiAssociationDistance_->Eval(strip.pt()) + phiAssociationDistance_->Eval(cand->pt());
183  if ( fabs(strip.eta() - cand->eta()) < etaAssociationDistance_value && // check if cand is within eta-phi window centered on strip
184  reco::deltaPhi(strip.phi(), cand->phi()) < phiAssociationDistance_value ) {
185  if ( verbosity_ >= 2 ) {
186  edm::LogPrint("RecoTauPiZeroStripPlugin3") << "--> adding PFCand #" << candId << " (" << cand.id() << ":" << cand.key() << "): Et = " << cand->et() << ", eta = " << cand->eta() << ", phi = " << cand->phi() ;
187  }
188  strip.addDaughter(cand);
190  isCandAdded = true;
191  candIdsCurrentStrip.insert(candId);
192  }
193  }
194  }
195 }
key_type key() const
Definition: Ptr.h:185
std::unique_ptr< const TFormula > etaAssociationDistance_
double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
ProductID id() const
Accessor for product ID.
Definition: Ptr.h:180
std::unique_ptr< const TFormula > phiAssociationDistance_
void set(reco::Candidate &c) const
set up a candidate
void reco::tau::RecoTauPiZeroStripPlugin3::beginEvent ( )
overridevirtual

Hook called at the beginning of the event.

Reimplemented from reco::tau::RecoTauPiZeroBuilderPlugin.

Definition at line 166 of file RecoTauPiZeroStripPlugin3.cc.

References reco::tau::RecoTauEventHolderPlugin::evt(), reco::tau::RecoTauVertexAssociator::setEvent(), and vertexAssociator_.

167 {
169 }
void setEvent(const edm::Event &evt)
Load the vertices from the event.
RecoTauPiZeroStripPlugin3::return_type reco::tau::RecoTauPiZeroStripPlugin3::operator() ( const reco::PFJet ) const
overridevirtual

Build a collection of piZeros from objects in the input jet.

Implements reco::tau::RecoTauPiZeroBuilderPlugin.

Definition at line 215 of file RecoTauPiZeroStripPlugin3.cc.

References addCandsToStrip(), reco::tau::RecoTauVertexAssociator::associatedVertex(), reco::TrackBase::charge(), combinatoricStripMassHypo_, combineStrips_, DEFINE_EDM_PLUGIN, reco::TrackBase::dxy(), reco::TrackBase::dz(), MillePedeFileConverter_cfg::e, CastorDataFrameFilter_impl::energySum(), reco::TrackBase::eta(), etaAssociationDistance_, plotBeamSpotDB::first, CustomPhysics_cfi::gamma, getTrack(), reco::TrackBase::hitPattern(), training_settings::idx, inputPdgIds_, edm::RefToBase< T >::isNonnull(), reco::RecoTauPiZero::kStrips, reco::RecoTauPiZero::kUndefined, maxStripBuildIterations_, maxStrips_, minGammaEtStripAdd_, minGammaEtStripSeed_, minStripEt_, reco::TrackBase::normalizedChi2(), reco::HitPattern::numberOfValidPixelHits(), reco::HitPattern::numberOfValidTrackerHits(), convertSQLitetoXML_cfg::output, p4Builder_, reco::tau::pfCandidates(), reco::TrackBase::phi(), phiAssociationDistance_, reco::LeafCandidate::pt(), reco::TrackBase::pt(), reco::TrackBase::ptError(), qcuts_, edm::second(), AddFourMomenta::set(), funct::sin(), digitizers_cfi::strip, reco::tau::takeNElements(), updateStripAfterEachDaughter_, verbosity_, and vertexAssociator_.

216 {
217  if ( verbosity_ >= 1 ) {
218  edm::LogPrint("RecoTauPiZeroStripPlugin3") << "<RecoTauPiZeroStripPlugin3::operator()>:" ;
219  edm::LogPrint("RecoTauPiZeroStripPlugin3") << " minGammaEtStripSeed = " << minGammaEtStripSeed_ ;
220  edm::LogPrint("RecoTauPiZeroStripPlugin3") << " minGammaEtStripAdd = " << minGammaEtStripAdd_ ;
221  edm::LogPrint("RecoTauPiZeroStripPlugin3") << " minStripEt = " << minStripEt_ ;
222  }
223 
225 
226  // Get the candidates passing our quality cuts
228  PFCandPtrs candsVector = qcuts_->filterCandRefs(pfCandidates(jet, inputPdgIds_));
229 
230  // Convert to stl::list to allow fast deletions
231  PFCandPtrs seedCands;
232  PFCandPtrs addCands;
233  int idx = 0;
234  for ( PFCandPtrs::iterator cand = candsVector.begin();
235  cand != candsVector.end(); ++cand ) {
236  if ( verbosity_ >= 1 ) {
237  edm::LogPrint("RecoTauPiZeroStripPlugin3") << "PFGamma #" << idx << " (" << cand->id() << ":" << cand->key() << "): Et = " << (*cand)->et() << ", eta = " << (*cand)->eta() << ", phi = " << (*cand)->phi() ;
238  }
239  if ( (*cand)->et() > minGammaEtStripSeed_ ) {
240  if ( verbosity_ >= 2 ) {
241  edm::LogPrint("RecoTauPiZeroStripPlugin3") << "--> assigning seedCandId = " << seedCands.size() ;
242  const reco::TrackBaseRef candTrack = getTrack(*cand);
243  if ( candTrack.isNonnull() ) {
244  edm::LogPrint("RecoTauPiZeroStripPlugin3") << "track: Pt = " << candTrack->pt() << " eta = " << candTrack->eta() << ", phi = " << candTrack->phi() << ", charge = " << candTrack->charge() ;
245  edm::LogPrint("RecoTauPiZeroStripPlugin3") << " (dZ = " << candTrack->dz(vertexAssociator_.associatedVertex(jet)->position()) << ", dXY = " << candTrack->dxy(vertexAssociator_.associatedVertex(jet)->position()) << ","
246  << " numHits = " << candTrack->hitPattern().numberOfValidTrackerHits() << ", numPxlHits = " << candTrack->hitPattern().numberOfValidPixelHits() << ","
247  << " chi2 = " << candTrack->normalizedChi2() << ", dPt/Pt = " << (candTrack->ptError()/candTrack->pt()) << ")" ;
248  }
249  edm::LogPrint("RecoTauPiZeroStripPlugin3") << "ECAL Et: calibrated = " << (*cand)->ecalEnergy()*sin((*cand)->theta()) << ","
250  << " raw = " << (*cand)->rawEcalEnergy()*sin((*cand)->theta()) ;
251  edm::LogPrint("RecoTauPiZeroStripPlugin3") << "HCAL Et: calibrated = " << (*cand)->hcalEnergy()*sin((*cand)->theta()) << ","
252  << " raw = " << (*cand)->rawHcalEnergy()*sin((*cand)->theta()) ;
253  }
254  seedCands.push_back(*cand);
255  } else if ( (*cand)->et() > minGammaEtStripAdd_ ) {
256  if ( verbosity_ >= 2 ) {
257  edm::LogPrint("RecoTauPiZeroStripPlugin3") << "--> assigning addCandId = " << addCands.size() ;
258  }
259  addCands.push_back(*cand);
260  }
261  ++idx;
262  }
263 
264  std::vector<bool> seedCandFlags(seedCands.size()); // true/false: seedCand is already/not yet included in strip
265  std::vector<bool> addCandFlags(addCands.size()); // true/false: addCand is already/not yet included in strip
266 
267  std::set<size_t> seedCandIdsCurrentStrip;
268  std::set<size_t> addCandIdsCurrentStrip;
269 
270  size_t idxSeed = 0;
271  while ( idxSeed < seedCands.size() ) {
272  if ( verbosity_ >= 2 ) edm::LogPrint("RecoTauPiZeroStripPlugin3") << "processing seed #" << idxSeed ;
273 
274  seedCandIdsCurrentStrip.clear();
275  addCandIdsCurrentStrip.clear();
276 
277  std::auto_ptr<RecoTauPiZero> strip(new RecoTauPiZero(*seedCands[idxSeed], RecoTauPiZero::kStrips));
278  strip->addDaughter(seedCands[idxSeed]);
279  seedCandIdsCurrentStrip.insert(idxSeed);
280 
281  bool isCandAdded;
282  int stripBuildIteration = 0;
283  do {
284  isCandAdded = false;
285 
286  //if ( verbosity_ >= 2 ) edm::LogPrint("RecoTauPiZeroStripPlugin3") << " adding seedCands to strip..." ;
287  addCandsToStrip(*strip, seedCands, seedCandFlags, seedCandIdsCurrentStrip, isCandAdded);
288  //if ( verbosity_ >= 2 ) edm::LogPrint("RecoTauPiZeroStripPlugin3") << " adding addCands to strip..." ;
289  addCandsToStrip(*strip, addCands, addCandFlags, addCandIdsCurrentStrip, isCandAdded);
290 
292 
293  ++stripBuildIteration;
294  } while ( isCandAdded && (stripBuildIteration < maxStripBuildIterations_ || maxStripBuildIterations_ == -1) );
295 
296  if ( strip->et() > minStripEt_ ) { // strip passed Et cuts, add it to the event
297  if ( verbosity_ >= 2 ) edm::LogPrint("RecoTauPiZeroStripPlugin3") << "Building strip: Et = " << strip->et() << ", eta = " << strip->eta() << ", phi = " << strip->phi() ;
298 
299  // Update the vertex
300  if ( strip->daughterPtr(0).isNonnull() ) strip->setVertex(strip->daughterPtr(0)->vertex());
301  output.push_back(strip);
302 
303  // Mark daughters as being part of this strip
304  markCandsInStrip(seedCandFlags, seedCandIdsCurrentStrip);
305  markCandsInStrip(addCandFlags, addCandIdsCurrentStrip);
306  } else { // strip failed Et cuts, just skip it
307  if ( verbosity_ >= 2 ) edm::LogPrint("RecoTauPiZeroStripPlugin3") << "Discarding strip: Et = " << strip->et() << ", eta = " << strip->eta() << ", phi = " << strip->phi() ;
308  }
309 
310  ++idxSeed;
311  while ( idxSeed < seedCands.size() && seedCandFlags[idxSeed] ) {
312  ++idxSeed; // fast-forward to next seed cand not yet included in any strip
313  }
314  }
315 
316  // Check if we want to combine our strips
317  if ( combineStrips_ && output.size() > 1 ) {
318  PiZeroVector stripCombinations;
319  // Sort the output by descending pt
320  output.sort(output.begin(), output.end(),
321  boost::bind(&RecoTauPiZero::pt, _1) >
322  boost::bind(&RecoTauPiZero::pt, _2));
323  // Get the end of interesting set of strips to try and combine
324  PiZeroVector::const_iterator end_iter = takeNElements(
325  output.begin(), output.end(), maxStrips_);
326 
327  // Look at all the combinations
328  for ( PiZeroVector::const_iterator first = output.begin();
329  first != end_iter-1; ++first ) {
330  for ( PiZeroVector::const_iterator second = first+1;
331  second != end_iter; ++second ) {
332  Candidate::LorentzVector firstP4 = first->p4();
333  Candidate::LorentzVector secondP4 = second->p4();
334  // If we assume a certain mass for each strip apply it here.
335  firstP4 = applyMassConstraint(firstP4, combinatoricStripMassHypo_);
336  secondP4 = applyMassConstraint(secondP4, combinatoricStripMassHypo_);
337  Candidate::LorentzVector totalP4 = firstP4 + secondP4;
338  // Make our new combined strip
339  std::auto_ptr<RecoTauPiZero> combinedStrips(
340  new RecoTauPiZero(0, totalP4,
341  Candidate::Point(0, 0, 0),
342  //111, 10001, true, RecoTauPiZero::kCombinatoricStrips));
343  111, 10001, true, RecoTauPiZero::kUndefined));
344 
345  // Now loop over the strip members
346  for ( auto const& gamma : first->daughterPtrVector()) {
347  combinedStrips->addDaughter(gamma);
348  }
349  for ( auto const& gamma : second->daughterPtrVector()) {
350  combinedStrips->addDaughter(gamma);
351  }
352  // Update the vertex
353  if ( combinedStrips->daughterPtr(0).isNonnull() ) {
354  combinedStrips->setVertex(combinedStrips->daughterPtr(0)->vertex());
355  }
356 
357  // Add to our collection of combined strips
358  stripCombinations.push_back(combinedStrips);
359  }
360  }
361  // When done doing all the combinations, add the combined strips to the
362  // output.
363  output.transfer(output.end(), stripCombinations);
364  }
365 
366  // Compute correction to account for spread of photon energy in eta and phi
367  // in case charged pions make nuclear interactions or photons convert within the tracking detector
368  for ( PiZeroVector::iterator strip = output.begin();
369  strip != output.end(); ++strip ) {
370  double bendCorrEta = 0.;
371  double bendCorrPhi = 0.;
372  double energySum = 0.;
373  for (auto const& gamma : strip->daughterPtrVector()) {
374  bendCorrEta += (gamma->energy()*etaAssociationDistance_->Eval(gamma->pt()));
375  bendCorrPhi += (gamma->energy()*phiAssociationDistance_->Eval(gamma->pt()));
376  energySum += gamma->energy();
377  }
378  if ( energySum > 1.e-2 ) {
379  bendCorrEta /= energySum;
380  bendCorrPhi /= energySum;
381  }
382  //std::cout << "stripPt = " << strip->pt() << ": bendCorrEta = " << bendCorrEta << ", bendCorrPhi = " << bendCorrPhi << std::endl;
383  strip->setBendCorrEta(bendCorrEta);
384  strip->setBendCorrPhi(bendCorrPhi);
385  }
386 
387  return output.release();
388 }
InputIterator takeNElements(const InputIterator &begin, const InputIterator &end, size_t N)
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:561
std::vector< reco::PFCandidatePtr > PFCandPtrs
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
reco::VertexRef associatedVertex(const PFJet &jet) const
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:645
double pt() const final
transverse momentum
bool isNonnull() const
Checks for non-null.
Definition: RefToBase.h:337
std::vector< PFCandidatePtr > pfCandidates(const PFJet &jet, int particleId, bool sort=true)
U second(std::pair< T, U > const &p)
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:651
double pt() const
track transverse momentum
Definition: TrackBase.h:621
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:763
void addCandsToStrip(RecoTauPiZero &, PFCandPtrs &, const std::vector< bool > &, std::set< size_t > &, bool &) const
std::unique_ptr< const TFormula > etaAssociationDistance_
std::unique_ptr< RecoTauQualityCuts > qcuts_
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:609
static const TrackGhostTrackState * getTrack(const BasicGhostTrackState *basic)
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:446
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
int numberOfValidTrackerHits() const
Definition: HitPattern.h:828
boost::ptr_vector< RecoTauPiZero > PiZeroVector
std::unique_ptr< const TFormula > phiAssociationDistance_
int numberOfValidPixelHits() const
Definition: HitPattern.h:838
math::XYZPoint Point
point in the space
Definition: Candidate.h:41
int charge() const
track electric charge
Definition: TrackBase.h:567
void set(reco::Candidate &c) const
set up a candidate
double energySum(const DataFrame &df, int fs, int ls)
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:591

Member Data Documentation

bool reco::tau::RecoTauPiZeroStripPlugin3::applyElecTrackQcuts_
private

Definition at line 73 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by RecoTauPiZeroStripPlugin3().

double reco::tau::RecoTauPiZeroStripPlugin3::combinatoricStripMassHypo_
private

Definition at line 89 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by operator()(), and RecoTauPiZeroStripPlugin3().

bool reco::tau::RecoTauPiZeroStripPlugin3::combineStrips_
private

Definition at line 87 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by operator()(), and RecoTauPiZeroStripPlugin3().

std::unique_ptr<const TFormula> reco::tau::RecoTauPiZeroStripPlugin3::etaAssociationDistance_
private
std::vector<int> reco::tau::RecoTauPiZeroStripPlugin3::inputPdgIds_
private

Definition at line 79 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by operator()(), and RecoTauPiZeroStripPlugin3().

int reco::tau::RecoTauPiZeroStripPlugin3::maxStripBuildIterations_
private

Definition at line 84 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by operator()(), and RecoTauPiZeroStripPlugin3().

int reco::tau::RecoTauPiZeroStripPlugin3::maxStrips_
private

Definition at line 88 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by operator()(), and RecoTauPiZeroStripPlugin3().

double reco::tau::RecoTauPiZeroStripPlugin3::minGammaEtStripAdd_
private

Definition at line 75 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by operator()(), and RecoTauPiZeroStripPlugin3().

double reco::tau::RecoTauPiZeroStripPlugin3::minGammaEtStripSeed_
private

Definition at line 74 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by operator()(), and RecoTauPiZeroStripPlugin3().

double reco::tau::RecoTauPiZeroStripPlugin3::minStripEt_
private

Definition at line 77 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by operator()(), and RecoTauPiZeroStripPlugin3().

AddFourMomenta reco::tau::RecoTauPiZeroStripPlugin3::p4Builder_
private

Definition at line 91 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by addCandsToStrip(), and operator()().

std::unique_ptr<const TFormula> reco::tau::RecoTauPiZeroStripPlugin3::phiAssociationDistance_
private
std::unique_ptr<RecoTauQualityCuts> reco::tau::RecoTauPiZeroStripPlugin3::qcuts_
private

Definition at line 72 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by operator()(), and RecoTauPiZeroStripPlugin3().

bool reco::tau::RecoTauPiZeroStripPlugin3::updateStripAfterEachDaughter_
private
int reco::tau::RecoTauPiZeroStripPlugin3::verbosity_
private
RecoTauVertexAssociator reco::tau::RecoTauPiZeroStripPlugin3::vertexAssociator_
private

Definition at line 70 of file RecoTauPiZeroStripPlugin3.cc.

Referenced by beginEvent(), and operator()().