CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
MuonRefProducer Class Reference

#include <MuonRefProducer.h>

Inheritance diagram for MuonRefProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 MuonRefProducer (const edm::ParameterSet &)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
virtual ~MuonRefProducer ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Attributes

reco::Muon::ArbitrationType arbitrationType_
 
double maxAbsDx_
 
double maxAbsDy_
 
double maxAbsPullX_
 
double maxAbsPullY_
 
double maxChamberDist_
 
double maxChamberDistPull_
 
int minNumberOfMatches_
 
edm::InputTag theReferenceCollection_
 
muon::AlgorithmType type_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Definition at line 27 of file MuonRefProducer.h.

Constructor & Destructor Documentation

MuonRefProducer::MuonRefProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 31 of file MuonRefProducer.cc.

References arbitrationType_, edm::ParameterSet::getParameter(), maxAbsDx_, maxAbsDy_, maxAbsPullX_, maxAbsPullY_, maxChamberDist_, maxChamberDistPull_, minNumberOfMatches_, reco::Muon::NoArbitration, reco::Muon::SegmentAndTrackArbitration, reco::Muon::SegmentArbitration, theReferenceCollection_, muon::TMLastStation, and type_.

32 {
33  theReferenceCollection_ = iConfig.getParameter<edm::InputTag>("ReferenceCollection");
34  type_ = muon::TMLastStation; // default type
35  std::string type = iConfig.getParameter<std::string>("algorithmType");
36  if ( type.compare("TMLastStation") != 0 )
37  edm::LogWarning("MuonIdentification") << "Unknown algorithm type is requested: " << type << "\nUsing the default one.";
38 
39  minNumberOfMatches_ = iConfig.getParameter<int>("minNumberOfMatchedStations");
40  maxAbsDx_ = iConfig.getParameter<double>("maxAbsDx");
41  maxAbsPullX_ = iConfig.getParameter<double>("maxAbsPullX");
42  maxAbsDy_ = iConfig.getParameter<double>("maxAbsDy");
43  maxAbsPullY_ = iConfig.getParameter<double>("maxAbsPullY");
44  maxChamberDist_ = iConfig.getParameter<double>("maxChamberDistance");
45  maxChamberDistPull_ = iConfig.getParameter<double>("maxChamberDistancePull");
46 
47  std::string arbitrationType = iConfig.getParameter<std::string>("arbitrationType");
48  if (arbitrationType.compare("NoArbitration")==0)
50  else if (arbitrationType.compare("SegmentArbitration")==0)
52  else if (arbitrationType.compare("SegmentAndTrackArbitration")==0)
54  else {
55  edm::LogWarning("MuonIdentification") << "Unknown arbitration type is requested: " << arbitrationType << "\nUsing the default one";
57  }
58  produces<edm::RefVector<std::vector<reco::Muon> > >();
59 }
reco::Muon::ArbitrationType arbitrationType_
type
Definition: HCALResponse.h:22
T getParameter(std::string const &) const
edm::InputTag theReferenceCollection_
muon::AlgorithmType type_
double maxChamberDistPull_
MuonRefProducer::~MuonRefProducer ( )
virtual

Definition at line 62 of file MuonRefProducer.cc.

62 {}

Member Function Documentation

void MuonRefProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Implements edm::EDProducer.

Definition at line 64 of file MuonRefProducer.cc.

References arbitrationType_, edm::Event::getByLabel(), i, muon::isGoodMuon(), maxAbsDx_, maxAbsDy_, maxAbsPullX_, maxAbsPullY_, maxChamberDist_, maxChamberDistPull_, minNumberOfMatches_, patZpeak::muons, edm::Event::put(), theReferenceCollection_, and type_.

65 {
66  std::auto_ptr<edm::RefVector<std::vector<reco::Muon> > > outputCollection(new edm::RefVector<std::vector<reco::Muon> >);
67 
69  iEvent.getByLabel(theReferenceCollection_, muons);
70 
71  // loop over input collection
72  for ( unsigned int i=0; i<muons->size(); ++i )
73  if ( muon::isGoodMuon( (*muons)[i], type_, minNumberOfMatches_,
75  outputCollection->push_back( edm::RefVector<std::vector<reco::Muon> >::value_type(muons,i) );
76  iEvent.put(outputCollection);
77 }
reco::Muon::ArbitrationType arbitrationType_
int i
Definition: DBlmapReader.cc:9
edm::InputTag theReferenceCollection_
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:85
muon::AlgorithmType type_
Container::value_type value_type
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
tuple muons
Definition: patZpeak.py:38
double maxChamberDistPull_

Member Data Documentation

reco::Muon::ArbitrationType MuonRefProducer::arbitrationType_
private

Definition at line 44 of file MuonRefProducer.h.

Referenced by MuonRefProducer(), and produce().

double MuonRefProducer::maxAbsDx_
private

Definition at line 38 of file MuonRefProducer.h.

Referenced by MuonRefProducer(), and produce().

double MuonRefProducer::maxAbsDy_
private

Definition at line 40 of file MuonRefProducer.h.

Referenced by MuonRefProducer(), and produce().

double MuonRefProducer::maxAbsPullX_
private

Definition at line 39 of file MuonRefProducer.h.

Referenced by MuonRefProducer(), and produce().

double MuonRefProducer::maxAbsPullY_
private

Definition at line 41 of file MuonRefProducer.h.

Referenced by MuonRefProducer(), and produce().

double MuonRefProducer::maxChamberDist_
private

Definition at line 42 of file MuonRefProducer.h.

Referenced by MuonRefProducer(), and produce().

double MuonRefProducer::maxChamberDistPull_
private

Definition at line 43 of file MuonRefProducer.h.

Referenced by MuonRefProducer(), and produce().

int MuonRefProducer::minNumberOfMatches_
private

Definition at line 37 of file MuonRefProducer.h.

Referenced by MuonRefProducer(), and produce().

edm::InputTag MuonRefProducer::theReferenceCollection_
private

Definition at line 34 of file MuonRefProducer.h.

Referenced by MuonRefProducer(), and produce().

muon::AlgorithmType MuonRefProducer::type_
private