1 #include <boost/foreach.hpp>
13 double factor =
sqrt(vec.energy()*vec.energy()-mass*mass)/vec.P();
15 vec.px()*factor,vec.py()*factor,vec.pz()*factor,vec.energy());
42 typedef std::pair<unsigned int, unsigned int>
IntPair;
54 signalConeFun_(pset.getParameter<std::
string>(
"coneSizeFormula"))
60 typedef std::vector<edm::ParameterSet> VPSet;
61 const VPSet& decayModes = pset.
getParameter<VPSet>(
"decayModes");
67 if (dm.
exists(
"minPi0Mass")) {
74 if (dm.
exists(
"assumeStripMass")) {
93 delete it->second.maxMass_;
107 DecayModeCutMap::const_iterator massWindowIter =
108 decayModeCuts_.find(std::make_pair(tau->signalPFChargedHadrCands().size(),
109 tau->signalPiZeroCandidates().size()));
121 tau->signalPiZeroCandidates()){
129 tau->signalPiZeroCandidates()){
135 stripsP4 += correction;
141 double maxMass_value = (*massWindow.
maxMass_)(*tau);
142 if (tauP4.M() > maxMass_value || tauP4.M() < massWindow.
minMass_) {
162 tau->signalPFChargedHadrCands()) {
164 if (
deltaR(cand->p4(), tauP4) > cone_size)
169 tau->signalPiZeroCandidates()) {
171 if (
deltaR(cand.
p4(), tauP4) > cone_size)
~PFRecoTauDiscriminationByHPSSelection()
T getParameter(std::string const &) const
std::map< IntPair, DecayModeCuts > DecayModeCutMap
PFRecoTauDiscriminationByHPSSelection(const edm::ParameterSet &)
virtual const LorentzVector & p4() const GCC11_FINAL
four-momentum Lorentz vector
#define DEFINE_FWK_MODULE(type)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
std::pair< unsigned int, unsigned int > IntPair
double deltaR(double eta1, double eta2, double phi1, double phi2)
std::pair< double, double > DoublePair
StringObjectFunction< reco::PFTau > TauFunc
double discriminate(const reco::PFTauRef &)
math::XYZTLorentzVector LorentzVector
Lorentz vector.
DecayModeCutMap decayModeCuts_