CMS 3D CMS Logo

List of all members | 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

Public Member Functions

return_type operator() (const reco::Jet &jet) const override
 Build a collection of piZeros from objects in the input jet. More...
 
 RecoTauPiZeroCombinatoricPlugin (const edm::ParameterSet &pset, edm::ConsumesCollector &&iC)
 
 ~RecoTauPiZeroCombinatoricPlugin () override
 
- Public Member Functions inherited from reco::tau::RecoTauPiZeroBuilderPlugin
void beginEvent () override
 Hook called at the beginning of the event. More...
 
 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 Attributes

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

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 28 of file RecoTauPiZeroCombinatoricPlugin.cc.

Constructor & Destructor Documentation

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

Definition at line 44 of file RecoTauPiZeroCombinatoricPlugin.cc.

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

47  "qualityCuts").getParameterSet("signalQualityCuts")) {
48  minMass_ = pset.getParameter<double>("minMass");
49  maxMass_ = pset.getParameter<double>("maxMass");
50  maxInputGammas_ = pset.getParameter<unsigned int>("maxInputGammas");
51  choose_ = pset.getParameter<unsigned int>("choose");
52 }
T getParameter(std::string const &) const
RecoTauPiZeroBuilderPlugin(const edm::ParameterSet &pset, edm::ConsumesCollector &&iC)
ParameterSet const & getParameterSet(std::string const &) const
def move(src, dest)
Definition: eostools.py:511
reco::tau::RecoTauPiZeroCombinatoricPlugin::~RecoTauPiZeroCombinatoricPlugin ( )
inlineoverride

Definition at line 31 of file RecoTauPiZeroCombinatoricPlugin.cc.

References metsig::jet, and operator()().

31 {}

Member Function Documentation

RecoTauPiZeroCombinatoricPlugin::return_type reco::tau::RecoTauPiZeroCombinatoricPlugin::operator() ( const reco::Jet ) const
overridevirtual

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_, DEFINE_EDM_PLUGIN, reco::tau::RecoTauQualityCuts::filterCandRefs(), cmsBatch::generator, reco::RecoTauPiZero::kCombinatoric, ResonanceBuilder::mass, maxInputGammas_, maxMass_, minMass_, convertSQLitetoXML_cfg::output, p4Builder_, reco::tau::pfGammas(), qcuts_, AddFourMomenta::set(), and reco::tau::takeNElements().

Referenced by ~RecoTauPiZeroCombinatoricPlugin().

56  {
57  // Get list of gamma candidates
58  typedef std::vector<reco::CandidatePtr> CandPtrs;
59  typedef CandPtrs::const_iterator CandIter;
61 
62  CandPtrs pfGammaCands = qcuts_.filterCandRefs(pfGammas(jet));
63  // Check if we have anything to do...
64  if (pfGammaCands.size() < choose_)
65  return output.release();
66 
67  // Define the valid range of gammas to use
68  CandIter start_iter = pfGammaCands.begin();
69  CandIter end_iter = pfGammaCands.end();
70 
71  // Only take the desired number of piZeros
72  end_iter = takeNElements(start_iter, end_iter, maxInputGammas_);
73 
74  // Build the combinatoric generator
75  typedef CombinatoricGenerator<CandPtrs> ComboGenerator;
76  ComboGenerator generator(start_iter, end_iter, choose_);
77 
78  // Find all possible combinations
79  for (ComboGenerator::iterator combo = generator.begin();
80  combo != generator.end(); ++combo) {
81  const Candidate::LorentzVector totalP4;
82  std::unique_ptr<RecoTauPiZero> piZero(
83  new RecoTauPiZero(0, totalP4, Candidate::Point(0, 0, 0),
84  111, 10001, true, RecoTauPiZero::kCombinatoric));
85  // Add our daughters from this combination
86  for (ComboGenerator::combo_iterator candidate = combo->combo_begin();
87  candidate != combo->combo_end(); ++candidate) {
88  piZero->addDaughter(*candidate);
89  }
90  p4Builder_.set(*piZero);
91 
92  if (piZero->daughterPtr(0).isNonnull())
93  piZero->setVertex(piZero->daughterPtr(0)->vertex());
94 
95  if ((maxMass_ < 0 || piZero->mass() < maxMass_) &&
96  piZero->mass() > minMass_)
97  output.push_back(piZero.get());
98  }
99  return output.release();
100 }
InputIterator takeNElements(const InputIterator &begin, const InputIterator &end, size_t N)
Coll filterCandRefs(const Coll &refcoll, bool invert=false) const
Filter a ref vector of Candidates.
std::vector< reco::CandidatePtr > CandPtrs
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
boost::ptr_vector< RecoTauPiZero > PiZeroVector
math::XYZPoint Point
point in the space
Definition: Candidate.h:41
void set(reco::Candidate &c) const
set up a candidate
CandPtrs::iterator CandIter
std::vector< CandidatePtr > pfGammas(const Jet &jet, bool sort=true)
Extract all pfGammas from a PFJet.

Member Data Documentation

unsigned int reco::tau::RecoTauPiZeroCombinatoricPlugin::choose_
private
unsigned int reco::tau::RecoTauPiZeroCombinatoricPlugin::maxInputGammas_
private
double reco::tau::RecoTauPiZeroCombinatoricPlugin::maxMass_
private
double reco::tau::RecoTauPiZeroCombinatoricPlugin::minMass_
private
AddFourMomenta reco::tau::RecoTauPiZeroCombinatoricPlugin::p4Builder_
private

Definition at line 41 of file RecoTauPiZeroCombinatoricPlugin.cc.

Referenced by operator()().

RecoTauQualityCuts reco::tau::RecoTauPiZeroCombinatoricPlugin::qcuts_
private

Definition at line 36 of file RecoTauPiZeroCombinatoricPlugin.cc.

Referenced by operator()().