CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
AlCaHBHEMuonProducer Class Reference
Inheritance diagram for AlCaHBHEMuonProducer:
edm::stream::EDProducer< edm::GlobalCache< AlCaHBHEMuons::Counters > >

Public Member Functions

 AlCaHBHEMuonProducer (edm::ParameterSet const &, const AlCaHBHEMuons::Counters *count)
 
void endStream () override
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~AlCaHBHEMuonProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< AlCaHBHEMuons::Counters > >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void globalEndJob (const AlCaHBHEMuons::Counters *counters)
 
static std::unique_ptr< AlCaHBHEMuons::CountersinitializeGlobalCache (edm::ParameterSet const &)
 

Private Member Functions

void beginRun (edm::Run const &, edm::EventSetup const &) override
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
bool select (const reco::MuonCollection &)
 

Private Attributes

edm::InputTag labelBS_
 
edm::InputTag labelEB_
 
edm::InputTag labelEE_
 
edm::InputTag labelHBHE_
 
edm::InputTag labelMuon_
 
edm::InputTag labelVtx_
 
unsigned int nAll_
 
unsigned int nGood_
 
unsigned int nRun_
 
double pMuonMin_
 
edm::EDGetTokenT< reco::BeamSpottok_BS_
 
edm::EDGetTokenT< EcalRecHitCollectiontok_EB_
 
edm::EDGetTokenT< EcalRecHitCollectiontok_EE_
 
edm::EDGetTokenT< HBHERecHitCollectiontok_HBHE_
 
edm::EDGetTokenT< reco::MuonCollectiontok_Muon_
 
edm::EDGetTokenT< reco::VertexCollectiontok_Vtx_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< AlCaHBHEMuons::Counters > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 48 of file AlCaHBHEMuonProducer.cc.

Constructor & Destructor Documentation

◆ AlCaHBHEMuonProducer()

AlCaHBHEMuonProducer::AlCaHBHEMuonProducer ( edm::ParameterSet const &  iConfig,
const AlCaHBHEMuons::Counters count 
)
explicit

Definition at line 80 of file AlCaHBHEMuonProducer.cc.

81  : nRun_(0), nAll_(0), nGood_(0) {
82  //Get the run parameters
83  labelBS_ = iConfig.getParameter<edm::InputTag>("BeamSpotLabel");
84  labelVtx_ = iConfig.getParameter<edm::InputTag>("VertexLabel");
85  labelEB_ = iConfig.getParameter<edm::InputTag>("EBRecHitLabel");
86  labelEE_ = iConfig.getParameter<edm::InputTag>("EERecHitLabel");
87  labelHBHE_ = iConfig.getParameter<edm::InputTag>("HBHERecHitLabel");
88  labelMuon_ = iConfig.getParameter<edm::InputTag>("MuonLabel");
89  pMuonMin_ = iConfig.getParameter<double>("MinimumMuonP");
90 
91  // define tokens for access
92  tok_Vtx_ = consumes<reco::VertexCollection>(labelVtx_);
93  tok_BS_ = consumes<reco::BeamSpot>(labelBS_);
94  tok_EB_ = consumes<EcalRecHitCollection>(labelEB_);
95  tok_EE_ = consumes<EcalRecHitCollection>(labelEE_);
96  tok_HBHE_ = consumes<HBHERecHitCollection>(labelHBHE_);
97  tok_Muon_ = consumes<reco::MuonCollection>(labelMuon_);
98 
99  edm::LogInfo("HcalHBHEMuon") << "Parameters read from config file \n"
100  << "\t minP of muon " << pMuonMin_ << "\t input labels " << labelBS_ << " " << labelVtx_
101  << " " << labelEB_ << " " << labelEE_ << " " << labelHBHE_ << " " << labelMuon_;
102 
103  //saves the following collections
104  produces<reco::BeamSpot>(labelBS_.label());
105  produces<reco::VertexCollection>(labelVtx_.label());
106  produces<EcalRecHitCollection>(labelEB_.instance());
107  produces<EcalRecHitCollection>(labelEE_.instance());
108  produces<HBHERecHitCollection>(labelHBHE_.label());
109  produces<reco::MuonCollection>(labelMuon_.label());
110 }

References edm::ParameterSet::getParameter(), edm::InputTag::instance(), edm::InputTag::label(), labelBS_, labelEB_, labelEE_, labelHBHE_, labelMuon_, labelVtx_, pMuonMin_, tok_BS_, tok_EB_, tok_EE_, tok_HBHE_, tok_Muon_, and tok_Vtx_.

◆ ~AlCaHBHEMuonProducer()

AlCaHBHEMuonProducer::~AlCaHBHEMuonProducer ( )
override

Definition at line 112 of file AlCaHBHEMuonProducer.cc.

112 {}

Member Function Documentation

◆ beginRun()

void AlCaHBHEMuonProducer::beginRun ( edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overrideprivate

Definition at line 226 of file AlCaHBHEMuonProducer.cc.

226  {
227  edm::LogInfo("HcalHBHEMuon") << "Run[" << nRun_ << "] " << iRun.run();
228 }

References nRun_, and edm::RunBase::run().

◆ endRun()

void AlCaHBHEMuonProducer::endRun ( edm::Run const &  iRun,
edm::EventSetup const &   
)
overrideprivate

Definition at line 230 of file AlCaHBHEMuonProducer.cc.

230  {
231  ++nRun_;
232  edm::LogInfo("HcalHBHEMuon") << "endRun[" << nRun_ << "] " << iRun.run();
233 }

References nRun_, and edm::RunBase::run().

◆ endStream()

void AlCaHBHEMuonProducer::endStream ( )
override

Definition at line 217 of file AlCaHBHEMuonProducer.cc.

217  {
218  globalCache()->nAll_ += nAll_;
219  globalCache()->nGood_ += nGood_;
220 }

References nAll_, and nGood_.

◆ globalEndJob()

void AlCaHBHEMuonProducer::globalEndJob ( const AlCaHBHEMuons::Counters counters)
static

Definition at line 222 of file AlCaHBHEMuonProducer.cc.

222  {
223  edm::LogInfo("HcalHBHEMuon") << "Finds " << count->nGood_ << " good tracks in " << count->nAll_ << " events";
224 }

References KineDebug3::count().

◆ initializeGlobalCache()

static std::unique_ptr<AlCaHBHEMuons::Counters> AlCaHBHEMuonProducer::initializeGlobalCache ( edm::ParameterSet const &  )
inlinestatic

Definition at line 53 of file AlCaHBHEMuonProducer.cc.

53  {
54  return std::make_unique<AlCaHBHEMuons::Counters>();
55  }

◆ produce()

void AlCaHBHEMuonProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 114 of file AlCaHBHEMuonProducer.cc.

114  {
115  ++nAll_;
116  bool valid(true);
117 #ifdef DebugLog
118  edm::LogInfo("HcalHBHEMuon") << "AlCaHBHEMuonProducer::Run " << iEvent.id().run() << " Event " << iEvent.id().event()
119  << " Luminosity " << iEvent.luminosityBlock() << " Bunch " << iEvent.bunchCrossing();
120 #endif
121 
122  //Step1: Get all the relevant containers
124  iEvent.getByToken(tok_BS_, bmspot);
125  if (!bmspot.isValid()) {
126  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelBS_;
127  valid = false;
128  }
129 
131  iEvent.getByToken(tok_Vtx_, vt);
132  if (!vt.isValid()) {
133  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelVtx_;
134  valid = false;
135  }
136 
137  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
138  iEvent.getByToken(tok_EB_, barrelRecHitsHandle);
139  if (!barrelRecHitsHandle.isValid()) {
140  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelEB_;
141  valid = false;
142  }
143 
144  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
145  iEvent.getByToken(tok_EE_, endcapRecHitsHandle);
146  if (!endcapRecHitsHandle.isValid()) {
147  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelEE_;
148  valid = false;
149  }
150 
152  iEvent.getByToken(tok_HBHE_, hbhe);
153  if (!hbhe.isValid()) {
154  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelHBHE_;
155  valid = false;
156  }
157 
159  iEvent.getByToken(tok_Muon_, muonhandle);
160  if (!muonhandle.isValid()) {
161  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelMuon_;
162  valid = false;
163  }
164 
165 #ifdef DebugLog
166  edm::LogInfo("HcalHBHEMuon") << "AlCaHBHEMuonProducer::obtained the collections with validity flag " << valid;
167 #endif
168 
169  //For accepted events
170  auto outputBeamSpot = std::make_unique<reco::BeamSpot>();
171  auto outputVColl = std::make_unique<reco::VertexCollection>();
172  auto outputEBColl = std::make_unique<EBRecHitCollection>();
173  auto outputEEColl = std::make_unique<EERecHitCollection>();
174  auto outputHBHEColl = std::make_unique<HBHERecHitCollection>();
175  auto outputMColl = std::make_unique<reco::MuonCollection>();
176 
177  if (valid) {
178  const reco::BeamSpot beam = *(bmspot.product());
179  outputBeamSpot = std::make_unique<reco::BeamSpot>(
180  beam.position(), beam.sigmaZ(), beam.dxdz(), beam.dydz(), beam.BeamWidthX(), beam.covariance(), beam.type());
181  const reco::VertexCollection vtx = *(vt.product());
182  const EcalRecHitCollection ebcoll = *(barrelRecHitsHandle.product());
183  const EcalRecHitCollection eecoll = *(endcapRecHitsHandle.product());
184  const HBHERecHitCollection hbhecoll = *(hbhe.product());
185  const reco::MuonCollection muons = *(muonhandle.product());
186 
187  bool accept = select(muons);
188 
189  if (accept) {
190  ++nGood_;
191 
192  for (reco::VertexCollection::const_iterator vtr = vtx.begin(); vtr != vtx.end(); ++vtr)
193  outputVColl->push_back(*vtr);
194 
195  for (edm::SortedCollection<EcalRecHit>::const_iterator ehit = ebcoll.begin(); ehit != ebcoll.end(); ++ehit)
196  outputEBColl->push_back(*ehit);
197 
198  for (edm::SortedCollection<EcalRecHit>::const_iterator ehit = eecoll.begin(); ehit != eecoll.end(); ++ehit)
199  outputEEColl->push_back(*ehit);
200 
201  for (std::vector<HBHERecHit>::const_iterator hhit = hbhecoll.begin(); hhit != hbhecoll.end(); ++hhit)
202  outputHBHEColl->push_back(*hhit);
203 
204  for (reco::MuonCollection::const_iterator muon = muons.begin(); muon != muons.end(); ++muon)
205  outputMColl->push_back(*muon);
206  }
207  }
208 
209  iEvent.put(std::move(outputBeamSpot), labelBS_.label());
210  iEvent.put(std::move(outputVColl), labelVtx_.label());
211  iEvent.put(std::move(outputEBColl), labelEB_.instance());
212  iEvent.put(std::move(outputEEColl), labelEE_.instance());
213  iEvent.put(std::move(outputHBHEColl), labelHBHE_.label());
214  iEvent.put(std::move(outputMColl), labelMuon_.label());
215 }

References accept(), EcalCondDBWriter_cfi::beam, edm::SortedCollection< T, SORT >::begin(), edm::SortedCollection< T, SORT >::end(), photonIsolationHIProducer_cfi::hbhe, iEvent, edm::InputTag::instance(), edm::HandleBase::isValid(), edm::InputTag::label(), labelBS_, labelEB_, labelEE_, labelHBHE_, labelMuon_, labelVtx_, eostools::move(), HLT_2018_cff::muon, PDWG_BPHSkim_cff::muons, nAll_, nGood_, edm::Handle< T >::product(), select(), tok_BS_, tok_EB_, tok_EE_, tok_HBHE_, tok_Muon_, tok_Vtx_, validateGeometry_cfg::valid, and badGlobalMuonTaggersAOD_cff::vtx.

◆ select()

bool AlCaHBHEMuonProducer::select ( const reco::MuonCollection muons)
private

Definition at line 235 of file AlCaHBHEMuonProducer.cc.

235  {
236  bool ok(false);
237  for (unsigned int k = 0; k < muons.size(); ++k) {
238  if (muons[k].p() > pMuonMin_) {
239  ok = true;
240  break;
241  }
242  }
243  return ok;
244 }

References dqmdumpme::k, PDWG_BPHSkim_cff::muons, convertSQLiteXML::ok, AlCaHLTBitMon_ParallelJobs::p, and pMuonMin_.

Referenced by produce().

Member Data Documentation

◆ labelBS_

edm::InputTag AlCaHBHEMuonProducer::labelBS_
private

Definition at line 68 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ labelEB_

edm::InputTag AlCaHBHEMuonProducer::labelEB_
private

Definition at line 69 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ labelEE_

edm::InputTag AlCaHBHEMuonProducer::labelEE_
private

Definition at line 69 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ labelHBHE_

edm::InputTag AlCaHBHEMuonProducer::labelHBHE_
private

Definition at line 69 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ labelMuon_

edm::InputTag AlCaHBHEMuonProducer::labelMuon_
private

Definition at line 69 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ labelVtx_

edm::InputTag AlCaHBHEMuonProducer::labelVtx_
private

Definition at line 68 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ nAll_

unsigned int AlCaHBHEMuonProducer::nAll_
private

Definition at line 67 of file AlCaHBHEMuonProducer.cc.

Referenced by endStream(), and produce().

◆ nGood_

unsigned int AlCaHBHEMuonProducer::nGood_
private

Definition at line 67 of file AlCaHBHEMuonProducer.cc.

Referenced by endStream(), and produce().

◆ nRun_

unsigned int AlCaHBHEMuonProducer::nRun_
private

Definition at line 67 of file AlCaHBHEMuonProducer.cc.

Referenced by beginRun(), and endRun().

◆ pMuonMin_

double AlCaHBHEMuonProducer::pMuonMin_
private

Definition at line 70 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and select().

◆ tok_BS_

edm::EDGetTokenT<reco::BeamSpot> AlCaHBHEMuonProducer::tok_BS_
private

Definition at line 72 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ tok_EB_

edm::EDGetTokenT<EcalRecHitCollection> AlCaHBHEMuonProducer::tok_EB_
private

Definition at line 74 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ tok_EE_

edm::EDGetTokenT<EcalRecHitCollection> AlCaHBHEMuonProducer::tok_EE_
private

Definition at line 75 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ tok_HBHE_

edm::EDGetTokenT<HBHERecHitCollection> AlCaHBHEMuonProducer::tok_HBHE_
private

Definition at line 76 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ tok_Muon_

edm::EDGetTokenT<reco::MuonCollection> AlCaHBHEMuonProducer::tok_Muon_
private

Definition at line 77 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

◆ tok_Vtx_

edm::EDGetTokenT<reco::VertexCollection> AlCaHBHEMuonProducer::tok_Vtx_
private

Definition at line 73 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

PDWG_BPHSkim_cff.muons
muons
Definition: PDWG_BPHSkim_cff.py:47
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
edm::Handle::product
T const * product() const
Definition: Handle.h:70
AlCaHBHEMuonProducer::labelBS_
edm::InputTag labelBS_
Definition: AlCaHBHEMuonProducer.cc:68
edm::InputTag::instance
std::string const & instance() const
Definition: InputTag.h:37
muon
Definition: MuonCocktails.h:17
AlCaHBHEMuonProducer::labelHBHE_
edm::InputTag labelHBHE_
Definition: AlCaHBHEMuonProducer.cc:69
AlCaHBHEMuonProducer::tok_Vtx_
edm::EDGetTokenT< reco::VertexCollection > tok_Vtx_
Definition: AlCaHBHEMuonProducer.cc:73
AlCaHBHEMuonProducer::select
bool select(const reco::MuonCollection &)
Definition: AlCaHBHEMuonProducer.cc:235
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
reco::VertexCollection
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
AlCaHBHEMuonProducer::labelVtx_
edm::InputTag labelVtx_
Definition: AlCaHBHEMuonProducer.cc:68
edm::LogInfo
Definition: MessageLogger.h:254
AlCaHBHEMuonProducer::tok_BS_
edm::EDGetTokenT< reco::BeamSpot > tok_BS_
Definition: AlCaHBHEMuonProducer.cc:72
edm::SortedCollection< EcalRecHit >
AlCaHBHEMuonProducer::tok_Muon_
edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
Definition: AlCaHBHEMuonProducer.cc:77
AlCaHBHEMuonProducer::tok_EE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
Definition: AlCaHBHEMuonProducer.cc:75
HLT_2018_cff.muon
muon
Definition: HLT_2018_cff.py:10349
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
edm::Handle< reco::BeamSpot >
validateGeometry_cfg.valid
valid
Definition: validateGeometry_cfg.py:21
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
AlCaHBHEMuonProducer::nGood_
unsigned int nGood_
Definition: AlCaHBHEMuonProducer.cc:67
accept
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
reco::MuonCollection
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
AlCaHBHEMuonProducer::labelMuon_
edm::InputTag labelMuon_
Definition: AlCaHBHEMuonProducer.cc:69
reco::BeamSpot
Definition: BeamSpot.h:21
EcalCondDBWriter_cfi.beam
beam
Definition: EcalCondDBWriter_cfi.py:45
dqmdumpme.k
k
Definition: dqmdumpme.py:60
AlCaHBHEMuonProducer::labelEE_
edm::InputTag labelEE_
Definition: AlCaHBHEMuonProducer.cc:69
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition: badGlobalMuonTaggersAOD_cff.py:5
edm::LogWarning
Definition: MessageLogger.h:141
AlCaHBHEMuonProducer::nRun_
unsigned int nRun_
Definition: AlCaHBHEMuonProducer.cc:67
AlCaHBHEMuonProducer::pMuonMin_
double pMuonMin_
Definition: AlCaHBHEMuonProducer.cc:70
KineDebug3::count
void count()
Definition: KinematicConstrainedVertexUpdatorT.h:21
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
iEvent
int iEvent
Definition: GenABIO.cc:224
photonIsolationHIProducer_cfi.hbhe
hbhe
Definition: photonIsolationHIProducer_cfi.py:8
eostools.move
def move(src, dest)
Definition: eostools.py:511
AlCaHBHEMuonProducer::labelEB_
edm::InputTag labelEB_
Definition: AlCaHBHEMuonProducer.cc:69
AlCaHBHEMuonProducer::nAll_
unsigned int nAll_
Definition: AlCaHBHEMuonProducer.cc:67
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
AlCaHBHEMuonProducer::tok_HBHE_
edm::EDGetTokenT< HBHERecHitCollection > tok_HBHE_
Definition: AlCaHBHEMuonProducer.cc:76
AlCaHBHEMuonProducer::tok_EB_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
Definition: AlCaHBHEMuonProducer.cc:74
edm::InputTag
Definition: InputTag.h:15