CMS 3D CMS Logo

Public Member Functions | Private Types | Private Attributes

PFRecoTauDiscriminationByInvMass Class Reference

Inheritance diagram for PFRecoTauDiscriminationByInvMass:
TauDiscriminationProducerBase< TauType, TauDiscriminator > edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

double discriminate (const reco::PFTauRef &)
 PFRecoTauDiscriminationByInvMass (const edm::ParameterSet &pset)
 ~PFRecoTauDiscriminationByInvMass ()

Private Types

typedef std::map< IntPair,
DoublePair
DecayModeCutMap
typedef std::pair< double, double > DoublePair
typedef std::pair< unsigned
int, unsigned int > 
IntPair

Private Attributes

bool cut_
DecayModeCutMap decayModeCuts_
double max_default_
double min_default_

Detailed Description

Definition at line 13 of file PFRecoTauDiscriminationByInvMass.cc.


Member Typedef Documentation

Definition at line 47 of file PFRecoTauDiscriminationByInvMass.cc.

typedef std::pair<double, double> PFRecoTauDiscriminationByInvMass::DoublePair [private]

Definition at line 46 of file PFRecoTauDiscriminationByInvMass.cc.

typedef std::pair<unsigned int, unsigned int> PFRecoTauDiscriminationByInvMass::IntPair [private]

Definition at line 45 of file PFRecoTauDiscriminationByInvMass.cc.


Constructor & Destructor Documentation

PFRecoTauDiscriminationByInvMass::PFRecoTauDiscriminationByInvMass ( const edm::ParameterSet pset) [inline, explicit]

Definition at line 15 of file PFRecoTauDiscriminationByInvMass.cc.

References cut_, decayModeCuts_, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNamesForType(), max_default_, min_default_, reco::tau::helpers::nCharged(), and benchmark_cfg::select.

        :PFTauDiscriminationProducerBase(pset) {
      // If select is not set, just return the invariant mass
      cut_ = pset.exists("select");
      if (cut_) {
        const edm::ParameterSet &select = pset.getParameter<edm::ParameterSet>
            ("select");
        // Get default cuts
        min_default_ = select.getParameter<double>("min");
        max_default_ = select.getParameter<double>("max");
        // Get decay mode specific cuts
        std::vector<std::string> decayModeCutNames =
            select.getParameterNamesForType<edm::ParameterSet>();
        BOOST_FOREACH(const std::string& dmName, decayModeCutNames) {
          const edm::ParameterSet &dmPSet =
              select.getParameter<edm::ParameterSet>(dmName);
          unsigned int nCharged = dmPSet.getParameter<unsigned int>("charged");
          unsigned int nPiZero = dmPSet.getParameter<unsigned int>("pizeros");
          double minCut = dmPSet.getParameter<double>("min");
          double maxCut = dmPSet.getParameter<double>("max");
          // Add our dm-specific cut to the map
          decayModeCuts_[std::make_pair(nCharged, nPiZero)] =
              std::make_pair(minCut, maxCut);
        }
      }
    }
PFRecoTauDiscriminationByInvMass::~PFRecoTauDiscriminationByInvMass ( ) [inline]

Definition at line 41 of file PFRecoTauDiscriminationByInvMass.cc.

{}

Member Function Documentation

double PFRecoTauDiscriminationByInvMass::discriminate ( const reco::PFTauRef tau)

Definition at line 55 of file PFRecoTauDiscriminationByInvMass.cc.

References cut_, decayModeCuts_, max_default_, min_default_, and edm::second().

                                                                      {
  double mass = tau->mass();
  if (cut_) {
    unsigned int charged = tau->signalPFChargedHadrCands().size();
    unsigned int pizeros = tau->signalPiZeroCandidates().size();
    DecayModeCutMap::const_iterator specificCut = decayModeCuts_.find(
        std::make_pair(charged, pizeros));
    // Cut does not exist for this decay mode
    if (specificCut == decayModeCuts_.end() )
      return (mass > min_default_ && mass < max_default_);
    else
      return (mass > specificCut->second.first &&
              mass < specificCut->second.second);
  }
  // If we dont' cut, just return the mass
  return mass;
}

Member Data Documentation