![]() |
![]() |
#include <PhysicsTools/TagProbeMassProducer/src/TagProbeMassProducer.cc>
Public Member Functions | |
TagProbeMassProducer (const edm::ParameterSet &) | |
~TagProbeMassProducer () | |
Private Member Functions | |
virtual void | beginJob () |
virtual void | endJob () |
bool | isPassingProbe (const unsigned int iprobe) const |
virtual void | produce (edm::Event &, const edm::EventSetup &) |
Private Attributes | |
double | delRMaxCut_ |
double | delRMinCut_ |
double | massMaxCut_ |
double | massMinCut_ |
edm::InputTag | passingProbeCollection_ |
edm::Handle< reco::CandidateView > | passingProbes |
edm::InputTag | probeCollection_ |
edm::Handle< reco::CandidateView > | probes |
bool | requireOS_ |
edm::InputTag | tagCollection_ |
edm::Handle< reco::CandidateView > | tags |
Description: <one line="" class="" summary>="">
Usage: <usage>
Description: <one line="" class="" summary>="">
Implementation: <Notes on="" implementation>="">
Definition at line 34 of file TagProbeMassProducer.h.
TagProbeMassProducer::TagProbeMassProducer | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 37 of file TagProbeMassProducer.cc.
References delRMaxCut_, delRMinCut_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), massMaxCut_, massMinCut_, passingProbeCollection_, probeCollection_, requireOS_, and tagCollection_.
{ tagCollection_ = iConfig.getParameter<edm::InputTag>("TagCollection"); probeCollection_ = iConfig.getParameter<edm::InputTag>("ProbeCollection"); passingProbeCollection_ = iConfig.getParameter<edm::InputTag>("PassingProbeCollection"); massMinCut_ = iConfig.getUntrackedParameter<double>("MassMinCut",50.0); massMaxCut_ = iConfig.getUntrackedParameter<double>("MassMaxCut",120.0); delRMinCut_ = iConfig.getUntrackedParameter<double>("DelRMinCut",0.0); delRMaxCut_ = iConfig.getUntrackedParameter<double>("DelRMaxCut",10000.0); requireOS_ = iConfig.getUntrackedParameter<bool>("RequireOS",true); produces<std::vector<float> >("TPmass"); }
TagProbeMassProducer::~TagProbeMassProducer | ( | ) |
Definition at line 54 of file TagProbeMassProducer.cc.
{ }
void TagProbeMassProducer::beginJob | ( | void | ) | [private, virtual] |
void TagProbeMassProducer::endJob | ( | void | ) | [private, virtual] |
bool TagProbeMassProducer::isPassingProbe | ( | const unsigned int | iprobe | ) | const [private] |
Definition at line 138 of file TagProbeMassProducer.cc.
References passingProbes, and probes.
Referenced by produce().
{ if (iProbe > probes->size()) return false; edm::RefToBase<reco::Candidate> probeRef = probes->refAt(iProbe); edm::RefToBase<reco::Candidate> passingProbeRef; unsigned int numPassingProbes = passingProbes->size(); for (unsigned int iPassProbe = 0; iPassProbe < numPassingProbes; ++iPassProbe) { passingProbeRef = passingProbes->refAt(iPassProbe); if (passingProbeRef == probeRef) { return true; } } return false; }
void TagProbeMassProducer::produce | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDProducer.
Definition at line 66 of file TagProbeMassProducer.cc.
References edm::RefToBaseVector< T >::begin(), delRMaxCut_, delRMinCut_, edm::RefToBaseVector< T >::end(), edm::Event::getByLabel(), reco::tau::disc::InvariantMass(), isPassingProbe(), edm::HandleBase::isValid(), massMaxCut_, massMinCut_, passingProbeCollection_, passingProbes, probeCollection_, probes, edm::Event::put(), requireOS_, GlobalPosition_Frontier_DevDB_cff::tag, tagCollection_, and tags.
{ // We need the output Muon association collection to fill std::auto_ptr<std::vector<float> > TPmass( new std::vector<float>); if ( !iEvent.getByLabel( tagCollection_, tags ) ) { edm::LogWarning("TagProbe") << "Could not extract tag muons with input tag " << tagCollection_; } if ( !iEvent.getByLabel( probeCollection_, probes ) ) { edm::LogWarning("TagProbe") << "Could not extract probe muons with input tag " << probeCollection_; } if ( !iEvent.getByLabel( passingProbeCollection_, passingProbes ) ) { edm::LogWarning("TagProbe") << "Could not extract passing probe muons with input tag " << passingProbeCollection_; } // Loop over Tag and associate with Probes if( tags.isValid() && probes.isValid() ) { const edm::RefToBaseVector<reco::Candidate>& vtags = tags->refVector(); const edm::RefToBaseVector<reco::Candidate>& vprobes = probes->refVector(); int itag = 0; edm::RefToBaseVector<reco::Candidate>::const_iterator tag = vtags.begin(); for( ; tag != vtags.end(); ++tag, ++itag ) { int iprobe = 0; edm::RefToBaseVector<reco::Candidate>::const_iterator probe = vprobes.begin(); for( ; probe != vprobes.end(); ++probe, ++iprobe ) { // Tag-Probe invariant mass cut double invMass = ROOT::Math::VectorUtil::InvariantMass((*tag)->p4(), (*probe)->p4()); if( invMass < massMinCut_ ) continue; if( invMass > massMaxCut_ ) continue; // Tag-Probe deltaR cut double delR = reco::deltaR<double>((*tag)->eta(),(*tag)->phi(),(*probe)->eta(),(*probe)->phi()); if( delR < delRMinCut_ ) continue; if( delR > delRMaxCut_ ) continue; // Tag-Probe opposite sign int sign = (*tag)->charge() * (*probe)->charge(); if( requireOS_ && sign > 0 ) continue; bool isPassing = isPassingProbe (iprobe); if (isPassing) TPmass->push_back(invMass); } } } // Finally put the tag probe collection in the event iEvent.put( TPmass,"TPmass" ); }
double TagProbeMassProducer::delRMaxCut_ [private] |
Definition at line 60 of file TagProbeMassProducer.h.
Referenced by produce(), and TagProbeMassProducer().
double TagProbeMassProducer::delRMinCut_ [private] |
Definition at line 59 of file TagProbeMassProducer.h.
Referenced by produce(), and TagProbeMassProducer().
double TagProbeMassProducer::massMaxCut_ [private] |
Definition at line 58 of file TagProbeMassProducer.h.
Referenced by produce(), and TagProbeMassProducer().
double TagProbeMassProducer::massMinCut_ [private] |
Definition at line 57 of file TagProbeMassProducer.h.
Referenced by produce(), and TagProbeMassProducer().
Definition at line 51 of file TagProbeMassProducer.h.
Referenced by produce(), and TagProbeMassProducer().
Definition at line 55 of file TagProbeMassProducer.h.
Referenced by isPassingProbe(), and produce().
Definition at line 50 of file TagProbeMassProducer.h.
Referenced by produce(), and TagProbeMassProducer().
edm::Handle< reco::CandidateView > TagProbeMassProducer::probes [private] |
Definition at line 54 of file TagProbeMassProducer.h.
Referenced by isPassingProbe(), and produce().
bool TagProbeMassProducer::requireOS_ [private] |
Definition at line 62 of file TagProbeMassProducer.h.
Referenced by produce(), and TagProbeMassProducer().
Definition at line 49 of file TagProbeMassProducer.h.
Referenced by produce(), and TagProbeMassProducer().
edm::Handle< reco::CandidateView > TagProbeMassProducer::tags [private] |
Definition at line 53 of file TagProbeMassProducer.h.
Referenced by produce().