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
L2MuonIsolationProducer Class Reference

#include <L2MuonIsolationProducer.h>

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

Public Member Functions

virtual void beginJob ()
 setup the job More...
 
 L2MuonIsolationProducer (const edm::ParameterSet &)
 constructor with config More...
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 Produce isolation maps. More...
 
virtual ~L2MuonIsolationProducer ()
 destructor More...
 
- 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

bool optOutputDecision
 
muonisolation::MuIsoBaseIsolatortheDepositIsolator
 
reco::isodeposit::IsoDepositExtractortheExtractor
 
edm::InputTag theSACollectionLabel
 

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)
 
- 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

Author
J. Alcaraz

L2 HLT muon isolation producer

Author
J.Alcaraz

Definition at line 19 of file L2MuonIsolationProducer.h.

Constructor & Destructor Documentation

L2MuonIsolationProducer::L2MuonIsolationProducer ( const edm::ParameterSet par)

constructor with config

Definition at line 34 of file L2MuonIsolationProducer.cc.

References edm::ParameterSet::empty(), reco::get(), edm::ParameterSet::getParameter(), LogDebug, optOutputDecision, theDepositIsolator, and theExtractor.

34  :
35  theSACollectionLabel(par.getParameter<edm::InputTag>("StandAloneCollectionLabel")),
36  theExtractor(0),
38 {
39  LogDebug("Muon|RecoMuon|L2MuonIsolationProducer")<<" L2MuonIsolationProducer constructor called";
40 
41 
42  //
43  // Extractor
44  //
45  edm::ParameterSet extractorPSet = par.getParameter<edm::ParameterSet>("ExtractorPSet");
46  std::string extractorName = extractorPSet.getParameter<std::string>("ComponentName");
47  theExtractor = IsoDepositExtractorFactory::get()->create( extractorName, extractorPSet);
48 
49 
50  edm::ParameterSet isolatorPSet = par.getParameter<edm::ParameterSet>("IsolatorPSet");
51  optOutputDecision = !isolatorPSet.empty();
52  if (optOutputDecision){
53  std::string type = isolatorPSet.getParameter<std::string>("ComponentName");
54  theDepositIsolator = MuonIsolatorFactory::get()->create(type,isolatorPSet);
55  }
56  if (optOutputDecision) produces<edm::ValueMap<bool> >();
57  produces<reco::IsoDepositMap>();
58 }
#define LogDebug(id)
type
Definition: HCALResponse.h:22
T getParameter(std::string const &) const
bool empty() const
Definition: ParameterSet.h:213
reco::isodeposit::IsoDepositExtractor * theExtractor
muonisolation::MuIsoBaseIsolator * theDepositIsolator
T get(const Candidate &c)
Definition: component.h:56
L2MuonIsolationProducer::~L2MuonIsolationProducer ( )
virtual

destructor

Definition at line 61 of file L2MuonIsolationProducer.cc.

References LogDebug, and theExtractor.

61  {
62  LogDebug("Muon|RecoMuon|L2MuonIsolationProducer")<<" L2MuonIsolationProducer destructor called";
63  if (theExtractor) delete theExtractor;
64 }
#define LogDebug(id)
reco::isodeposit::IsoDepositExtractor * theExtractor

Member Function Documentation

void L2MuonIsolationProducer::beginJob ( void  )
virtual

setup the job

beginJob

Reimplemented from edm::EDProducer.

Definition at line 67 of file L2MuonIsolationProducer.cc.

67  {
68 
69 }
void L2MuonIsolationProducer::produce ( edm::Event event,
const edm::EventSetup eventSetup 
)
virtual

Produce isolation maps.

build deposits

do the business of filling iso map

annoying – I will forget it at some point

Implements edm::EDProducer.

Definition at line 72 of file L2MuonIsolationProducer.cc.

References reco::isodeposit::IsoDepositExtractor::deposit(), edm::helper::Filler< Map >::fill(), reco::isodeposit::IsoDepositExtractor::fillVetos(), i, edm::helper::Filler< Map >::insert(), LogDebug, metname, optOutputDecision, muonisolation::MuIsoBaseIsolator::result(), theDepositIsolator, theExtractor, theSACollectionLabel, testEve_cfg::tracks, and muonisolation::MuIsoBaseIsolator::Result::valBool.

72  {
73  std::string metname = "Muon|RecoMuon|L2MuonIsolationProducer";
74 
75  LogDebug(metname)<<" L2 Muon Isolation producing...";
76 
77  // Take the SA container
78  LogDebug(metname)<<" Taking the StandAlone muons: "<<theSACollectionLabel;
80  event.getByLabel(theSACollectionLabel,tracks);
81 
82  // Find deposits and load into event
83  LogDebug(metname)<<" Get energy around";
84  std::auto_ptr<reco::IsoDepositMap> depMap( new reco::IsoDepositMap());
85  std::auto_ptr<edm::ValueMap<bool> > isoMap( new edm::ValueMap<bool> ());
86 
87  theExtractor->fillVetos(event,eventSetup,*tracks);
88 
89  unsigned int nTracks = tracks->size();
90  std::vector<IsoDeposit> deps(nTracks);
91  std::vector<bool> isos(nTracks, false);
92 
93  for (unsigned int i=0; i<nTracks; i++) {
94  TrackRef tk(tracks,i);
95 
96  deps[i] = theExtractor->deposit(event, eventSetup, *tk);
97 
98  if (optOutputDecision){
100  isos[i] = theDepositIsolator->result( isoContainer, *tk ).valBool;
101  }
102  }
103 
104 
105 
107  reco::IsoDepositMap::Filler depFiller(*depMap);
108  depFiller.insert(tracks, deps.begin(), deps.end());
109  depFiller.fill();
110  event.put(depMap);
111 
112  if (optOutputDecision){
113  edm::ValueMap<bool> ::Filler isoFiller(*isoMap);
114  isoFiller.insert(tracks, isos.begin(), isos.end());
115  isoFiller.fill();
116  event.put(isoMap);
117  }
118 
119  LogDebug(metname) <<" Event loaded"
120  <<"================================";
121 }
#define LogDebug(id)
reco::isodeposit::IsoDepositExtractor * theExtractor
int i
Definition: DBlmapReader.cc:9
const std::string metname
virtual void fillVetos(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::TrackCollection &tracks)=0
virtual Result result(DepositContainer deposits) const =0
Compute and return the isolation variable.
std::vector< DepositAndVetos > DepositContainer
tuple tracks
Definition: testEve_cfg.py:39
muonisolation::MuIsoBaseIsolator * theDepositIsolator
virtual reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &track) const =0

Member Data Documentation

bool L2MuonIsolationProducer::optOutputDecision
private

Definition at line 42 of file L2MuonIsolationProducer.h.

Referenced by L2MuonIsolationProducer(), and produce().

muonisolation::MuIsoBaseIsolator* L2MuonIsolationProducer::theDepositIsolator
private

Definition at line 48 of file L2MuonIsolationProducer.h.

Referenced by L2MuonIsolationProducer(), and produce().

reco::isodeposit::IsoDepositExtractor* L2MuonIsolationProducer::theExtractor
private
edm::InputTag L2MuonIsolationProducer::theSACollectionLabel
private

Definition at line 39 of file L2MuonIsolationProducer.h.

Referenced by produce().