7 #include <boost/foreach.hpp>
9 namespace reco {
namespace tau {
namespace disc {
18 const RecoTauPiZero& removeRef(
const RecoTauPiZero& piZero) {
23 template<
typename Collection,
typename Function>
27 output.reserve(cands.size());
28 for(
typename Collection::const_iterator cand = cands.begin();
29 cand != cands.end(); ++cand) {
30 output.push_back(func(removeRef(*cand)));
50 for (
size_t itrk = 0; itrk < 3; ++itrk) {
64 if (ref != mainTrackRef)
79 return tau.
jetRef()->eta();
105 return sum/tau.
jetRef()->pt();
110 tau.
jetRef()->etaetaMoment()));
116 for (
size_t i = 0;
i < cands.
size()-1; ++
i) {
117 for (
size_t j =
i+1;
j < cands.
size(); ++
j) {
118 double deltaRVal =
deltaR(cands[
i]->
p4(), cands[
j]->
p4());
119 if (deltaRVal > max) {
128 return max*tau.
pt();;
133 tau.
jetRef()->phiphiMoment()));
138 double averagePt = (nIsoCharged) ?
152 output.reserve(otherSignalTracks.
size() + pizeros.size());
156 output.push_back(p4.mass());
161 output.push_back(p4.mass());
170 BOOST_FOREACH(
double pt, isocands) {
181 BOOST_FOREACH(
double pt, isocands) {
201 BOOST_FOREACH(
double pt, isocands) {
212 BOOST_FOREACH(
double pt, isocands) {
246 return (!trk) ? 0.0 : trk->pt();
251 return (!trk) ? 0.0 : trk->eta();
256 return (!trk) ? 0.0 :
deltaR(trk->p4(), tau.
p4());
double NeutralOutlierSumPt(Tau)
double IsolationECALSumHardRelative(Tau tau)
double ScaledPhiJetCollimation(Tau tau)
float isolationPFGammaCandsEtSum() const
const PFCandidateRefVector & isolationPFCands() const
PFCandidates in isolation region.
const PFJetRef & jetRef() const
float isolationPFChargedHadrCandsPtSum() const
VDouble ChargedOutlierPt(Tau)
double OutlierNCharged(Tau)
double ChargedOutlierSumPt(Tau)
std::vector< double > VDouble
double IsolationECALSumHard(Tau tau)
double SignalPtFraction(Tau tau)
double IsolationChargedSumSoftRelative(Tau tau)
const PFCandidateRefVector & signalPFChargedHadrCands() const
Charged hadrons in signal region.
double ScaledOpeningDeltaR(Tau tau)
double IsolationChargedPtFraction(Tau tau)
virtual double eta() const
momentum pseudorapidity
const PFCandidateRefVector & signalPFCands() const
PFCandidates in signal region.
VDouble InvariantMass(Tau)
double ScaledEtaJetCollimation(Tau tau)
double deltaR(double eta1, double phi1, double eta2, double phi2)
double ImpactParameterSignificance(Tau tau)
VDouble OutlierAngle(Tau)
VDouble GammaOccupancy(Tau)
PFCandidateRef mainTrack(const PFTau &tau)
PFCandidateRefVector notMainTrack(Tau tau)
const T & max(const T &a, const T &b)
const std::vector< RecoTauPiZero > & signalPiZeroCandidates() const
Retrieve the association of signal region gamma candidates into candidate PiZeros.
double IsolationChargedSumHard(Tau tau)
const PFCandidateRefVector & isolationPFGammaCands() const
Gamma candidates in isolation region.
double IsolationChargedAveragePtFraction(Tau tau)
virtual int charge() const
electric charge
const reco::Candidate::LorentzVector & axis_
double IsolationECALPtFraction(Tau tau)
double MainTrackPtFraction(Tau tau)
edm::Ref< PFCandidateCollection > PFCandidateRef
persistent reference to a PFCandidate
void reserve(size_type n)
Reserve space for RefVector.
VDouble InvariantMassOfSignalWithFiltered(Tau)
float leadPFChargedHadrCandsignedSipt() const
VDouble FilteredObjectPt(Tau)
VDouble ChargedOutlierAngle(Tau)
double EMFraction(Tau tau)
int extract(std::vector< int > *output, const std::string &dati)
const PFCandidateRef & leadPFChargedHadrCand() const
double IsolationChargedSumHardRelative(Tau tau)
virtual double pt() const
transverse momentum
double MainTrackAngle(Tau)
double IsolationECALSumSoftRelative(Tau tau)
double IsolationChargedSumSoft(Tau tau)
math::XYZTLorentzVector LorentzVector
Lorentz vector.
double IsolationNeutralHadronPtFraction(Tau tau)
double IsolationECALSumSoft(Tau tau)
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
size_type size() const
Size of the RefVector.
VDouble NeutralOutlierAngle(Tau)
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
VDouble NeutralOutlierPt(Tau)
const PFCandidateRefVector & isolationPFNeutrHadrCands() const
const PFCandidateRefVector & isolationPFChargedHadrCands() const
Charged candidates in isolation region.