CMS 3D CMS Logo

Public Member Functions | Private Attributes

reco::tau::RecoTauPiZeroCombinatoricPlugin Class Reference

Inheritance diagram for reco::tau::RecoTauPiZeroCombinatoricPlugin:
reco::tau::RecoTauPiZeroBuilderPlugin reco::tau::RecoTauEventHolderPlugin reco::tau::RecoTauNamedPlugin

List of all members.

Public Member Functions

return_type operator() (const reco::PFJet &jet) const
 Build a collection of piZeros from objects in the input jet.
 RecoTauPiZeroCombinatoricPlugin (const edm::ParameterSet &pset)
 ~RecoTauPiZeroCombinatoricPlugin ()

Private Attributes

unsigned int choose_
unsigned int maxInputGammas_
double maxMass_
double minMass_
AddFourMomenta p4Builder_
RecoTauQualityCuts qcuts_

Detailed Description

Definition at line 29 of file RecoTauPiZeroCombinatoricPlugin.cc.


Constructor & Destructor Documentation

reco::tau::RecoTauPiZeroCombinatoricPlugin::RecoTauPiZeroCombinatoricPlugin ( const edm::ParameterSet pset) [explicit]

Definition at line 45 of file RecoTauPiZeroCombinatoricPlugin.cc.

References choose_, edm::ParameterSet::getParameter(), maxInputGammas_, maxMass_, and minMass_.

                                :RecoTauPiZeroBuilderPlugin(pset),
    qcuts_(pset.getParameter<edm::ParameterSet>("qualityCuts")) {
  minMass_ = pset.getParameter<double>("minMass");
  maxMass_ = pset.getParameter<double>("maxMass");
  maxInputGammas_ = pset.getParameter<unsigned int>("maxInputGammas");
  choose_ = pset.getParameter<unsigned int>("choose");
}
reco::tau::RecoTauPiZeroCombinatoricPlugin::~RecoTauPiZeroCombinatoricPlugin ( ) [inline]

Definition at line 32 of file RecoTauPiZeroCombinatoricPlugin.cc.

{}

Member Function Documentation

RecoTauPiZeroCombinatoricPlugin::return_type reco::tau::RecoTauPiZeroCombinatoricPlugin::operator() ( const reco::PFJet ) const [virtual]

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

Implements reco::tau::RecoTauPiZeroBuilderPlugin.

Definition at line 55 of file RecoTauPiZeroCombinatoricPlugin.cc.

References choose_, reco::tau::RecoTauQualityCuts::filterRefs(), python::IdGenerator::generator, reco::RecoTauPiZero::kCombinatoric, maxInputGammas_, maxMass_, minMass_, convertSQLitetoXML_cfg::output, p4Builder_, reco::tau::pfGammas(), qcuts_, AddFourMomenta::set(), and reco::tau::takeNElements().

                                {
  // Get list of gamma candidates
  typedef std::vector<reco::PFCandidatePtr> PFCandPtrs;
  typedef PFCandPtrs::const_iterator PFCandIter;
  PiZeroVector output;

  PFCandPtrs pfGammaCands = qcuts_.filterRefs(pfGammas(jet));
  // Check if we have anything to do...
  if (pfGammaCands.size() < choose_)
    return output.release();

  // Define the valid range of gammas to use
  PFCandIter start_iter = pfGammaCands.begin();
  PFCandIter end_iter = pfGammaCands.end();

  // Only take the desired number of piZeros
  end_iter = takeNElements(start_iter, end_iter, maxInputGammas_);

  // Build the combinatoric generator
  typedef CombinatoricGenerator<PFCandPtrs> ComboGenerator;
  ComboGenerator generator(start_iter, end_iter, choose_);

  // Find all possible combinations
  for (ComboGenerator::iterator combo = generator.begin();
      combo != generator.end(); ++combo) {
    const Candidate::LorentzVector totalP4;
    std::auto_ptr<RecoTauPiZero> piZero(
        new RecoTauPiZero(0, totalP4, Candidate::Point(0, 0, 0),
                          111, 10001, true, RecoTauPiZero::kCombinatoric));
    // Add our daughters from this combination
    for (ComboGenerator::combo_iterator candidate = combo->combo_begin();
        candidate != combo->combo_end();  ++candidate) {
      piZero->addDaughter(*candidate);
    }
    p4Builder_.set(*piZero);

    if (piZero->daughterPtr(0).isNonnull())
      piZero->setVertex(piZero->daughterPtr(0)->vertex());

    if ((maxMass_ < 0 || piZero->mass() < maxMass_) &&
        piZero->mass() > minMass_)
      output.push_back(piZero);
  }
  return output.release();
}

Member Data Documentation

Definition at line 42 of file RecoTauPiZeroCombinatoricPlugin.cc.

Referenced by operator()().

Definition at line 37 of file RecoTauPiZeroCombinatoricPlugin.cc.

Referenced by operator()().