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 hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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 ( edm::ParameterSet const &  iConfig,
const AlCaHBHEMuons::Counters count 
)
explicit

Definition at line 82 of file AlCaHBHEMuonProducer.cc.

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_.

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

Definition at line 116 of file AlCaHBHEMuonProducer.cc.

116 { }

Member Function Documentation

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

Definition at line 236 of file AlCaHBHEMuonProducer.cc.

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

236  {
237  edm::LogInfo("HcalHBHEMuon") << "Run[" << nRun_ << "] " << iRun.run();
238 }
void AlCaHBHEMuonProducer::endRun ( edm::Run const &  iRun,
edm::EventSetup const &   
)
overrideprivate

Definition at line 240 of file AlCaHBHEMuonProducer.cc.

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

240  {
241  ++nRun_;
242  edm::LogInfo("HcalHBHEMuon") << "endRun[" << nRun_ << "] " << iRun.run();
243 }
void AlCaHBHEMuonProducer::endStream ( )
override

Definition at line 226 of file AlCaHBHEMuonProducer.cc.

References nAll_, and nGood_.

226  {
227  globalCache()->nAll_ += nAll_;
228  globalCache()->nGood_ += nGood_;
229 }
void AlCaHBHEMuonProducer::globalEndJob ( const AlCaHBHEMuons::Counters counters)
static

Definition at line 231 of file AlCaHBHEMuonProducer.cc.

References AlCaHBHEMuons::Counters::nAll_, and AlCaHBHEMuons::Counters::nGood_.

231  {
232  edm::LogInfo("HcalHBHEMuon") << "Finds " << count->nGood_ <<" good tracks in "
233  << count->nAll_ << " events";
234 }
static std::unique_ptr<AlCaHBHEMuons::Counters> AlCaHBHEMuonProducer::initializeGlobalCache ( edm::ParameterSet const &  )
inlinestatic

Definition at line 53 of file AlCaHBHEMuonProducer.cc.

References Ecal2004TBTDCRanges_v1_cff::endRun, and TauGenJetsDecayModeSelectorAllHadrons_cfi::select.

53  {
54  return std::make_unique<AlCaHBHEMuons::Counters>();
55  }
void AlCaHBHEMuonProducer::produce ( edm::Event ,
const edm::EventSetup  
)
override

Definition at line 118 of file AlCaHBHEMuonProducer.cc.

References accept(), reco::BeamSpot::BeamWidthX(), edm::SortedCollection< T, SORT >::begin(), edm::EventBase::bunchCrossing(), reco::BeamSpot::covariance(), reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), edm::SortedCollection< T, SORT >::end(), edm::EventID::event(), edm::Event::getByToken(), photonIsolationHIProducer_cfi::hbhe, edm::EventBase::id(), edm::InputTag::instance(), edm::HandleBase::isValid(), edm::InputTag::label(), labelBS_, labelEB_, labelEE_, labelHBHE_, labelMuon_, labelVtx_, edm::EventBase::luminosityBlock(), eostools::move(), metsig::muon, nano_cff::muons, nAll_, nGood_, reco::BeamSpot::position(), edm::Handle< T >::product(), edm::Event::put(), edm::EventID::run(), select(), reco::BeamSpot::sigmaZ(), tok_BS_, tok_EB_, tok_EE_, tok_HBHE_, tok_Muon_, tok_Vtx_, reco::BeamSpot::type(), and badGlobalMuonTaggersAOD_cff::vtx.

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

118  {
119 
120  ++nAll_;
121  bool valid(true);
122 #ifdef DebugLog
123  edm::LogInfo("HcalHBHEMuon") << "AlCaHBHEMuonProducer::Run "
124  << iEvent.id().run() << " Event "
125  << iEvent.id().event() << " Luminosity "
126  << iEvent.luminosityBlock() << " Bunch "
127  << iEvent.bunchCrossing();
128 #endif
129 
130  //Step1: Get all the relevant containers
132  iEvent.getByToken(tok_BS_, bmspot);
133  if (!bmspot.isValid()){
134  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelBS_;
135  valid = false;
136  }
137 
139  iEvent.getByToken(tok_Vtx_, vt);
140  if (!vt.isValid()) {
141  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelVtx_;
142  valid = false;
143  }
144 
145  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
146  iEvent.getByToken(tok_EB_, barrelRecHitsHandle);
147  if (!barrelRecHitsHandle.isValid()) {
148  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelEB_;
149  valid = false;
150  }
151 
152  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
153  iEvent.getByToken(tok_EE_, endcapRecHitsHandle);
154  if (!endcapRecHitsHandle.isValid()) {
155  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelEE_;
156  valid = false;
157  }
158 
160  iEvent.getByToken(tok_HBHE_, hbhe);
161  if (!hbhe.isValid()) {
162  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelHBHE_;
163  valid = false;
164  }
165 
167  iEvent.getByToken(tok_Muon_, muonhandle);
168  if (!muonhandle.isValid()) {
169  edm::LogWarning("HcalHBHEMuon") << "AlCaHBHEMuonProducer: Error! can't get product " << labelMuon_;
170  valid = false;
171  }
172 
173 #ifdef DebugLog
174  edm::LogInfo("HcalHBHEMuon") << "AlCaHBHEMuonProducer::obtained the collections with validity flag " << valid;
175 #endif
176 
177  //For accepted events
178  auto outputBeamSpot = std::make_unique<reco::BeamSpot>();
179  auto outputVColl = std::make_unique<reco::VertexCollection>();
180  auto outputEBColl = std::make_unique<EBRecHitCollection>();
181  auto outputEEColl = std::make_unique<EERecHitCollection>();
182  auto outputHBHEColl = std::make_unique<HBHERecHitCollection>();
183  auto outputMColl = std::make_unique<reco::MuonCollection>();
184 
185  if (valid) {
186  const reco::BeamSpot beam = *(bmspot.product());
187  outputBeamSpot = std::make_unique<reco::BeamSpot>(beam.position(),beam.sigmaZ(),
188  beam.dxdz(),beam.dydz(),beam.BeamWidthX(),
189  beam.covariance(),beam.type());
190  const reco::VertexCollection vtx = *(vt.product());
191  const EcalRecHitCollection ebcoll = *(barrelRecHitsHandle.product());
192  const EcalRecHitCollection eecoll = *(endcapRecHitsHandle.product());
193  const HBHERecHitCollection hbhecoll = *(hbhe.product());
194  const reco::MuonCollection muons = *(muonhandle.product());
195 
196  bool accept = select(muons);
197 
198  if (accept) {
199  ++nGood_;
200 
201  for (reco::VertexCollection::const_iterator vtr=vtx.begin(); vtr!=vtx.end(); ++vtr)
202  outputVColl->push_back(*vtr);
203 
204  for (edm::SortedCollection<EcalRecHit>::const_iterator ehit=ebcoll.begin(); ehit!=ebcoll.end(); ++ehit)
205  outputEBColl->push_back(*ehit);
206 
207  for (edm::SortedCollection<EcalRecHit>::const_iterator ehit=eecoll.begin(); ehit!=eecoll.end(); ++ehit)
208  outputEEColl->push_back(*ehit);
209 
210  for (std::vector<HBHERecHit>::const_iterator hhit=hbhecoll.begin(); hhit!=hbhecoll.end(); ++hhit)
211  outputHBHEColl->push_back(*hhit);
212 
213  for (reco::MuonCollection::const_iterator muon=muons.begin(); muon!=muons.end(); ++muon)
214  outputMColl->push_back(*muon);
215  }
216  }
217 
218  iEvent.put(std::move(outputBeamSpot), labelBS_.label());
219  iEvent.put(std::move(outputVColl), labelVtx_.label());
220  iEvent.put(std::move(outputEBColl), labelEB_.instance());
221  iEvent.put(std::move(outputEEColl), labelEE_.instance());
222  iEvent.put(std::move(outputHBHEColl), labelHBHE_.label());
223  iEvent.put(std::move(outputMColl), labelMuon_.label());
224 }
bool select(const reco::MuonCollection &)
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
std::vector< T >::const_iterator const_iterator
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
double dydz() const
dydz slope
Definition: BeamSpot.h:84
int iEvent
Definition: GenABIO.cc:230
edm::EDGetTokenT< HBHERecHitCollection > tok_HBHE_
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:86
bool isValid() const
Definition: HandleBase.h:74
double dxdz() const
dxdz slope
Definition: BeamSpot.h:82
const_iterator end() const
T const * product() const
Definition: Handle.h:81
double sigmaZ() const
sigma z
Definition: BeamSpot.h:80
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
edm::EDGetTokenT< reco::BeamSpot > tok_BS_
std::string const & label() const
Definition: InputTag.h:36
double covariance(int i, int j) const
(i,j)-th element of error matrix
Definition: BeamSpot.h:112
edm::EDGetTokenT< reco::VertexCollection > tok_Vtx_
const Point & position() const
position
Definition: BeamSpot.h:62
std::string const & instance() const
Definition: InputTag.h:37
def move(src, dest)
Definition: eostools.py:510
edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
const_iterator begin() const
BeamType type() const
return beam type
Definition: BeamSpot.h:129
bool AlCaHBHEMuonProducer::select ( const reco::MuonCollection muons)
private

Member Data Documentation

edm::InputTag AlCaHBHEMuonProducer::labelBS_
private

Definition at line 69 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

edm::InputTag AlCaHBHEMuonProducer::labelEB_
private

Definition at line 70 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

edm::InputTag AlCaHBHEMuonProducer::labelEE_
private

Definition at line 70 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

edm::InputTag AlCaHBHEMuonProducer::labelHBHE_
private

Definition at line 70 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

edm::InputTag AlCaHBHEMuonProducer::labelMuon_
private

Definition at line 70 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

edm::InputTag AlCaHBHEMuonProducer::labelVtx_
private

Definition at line 69 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

unsigned int AlCaHBHEMuonProducer::nAll_
private

Definition at line 68 of file AlCaHBHEMuonProducer.cc.

Referenced by endStream(), and produce().

unsigned int AlCaHBHEMuonProducer::nGood_
private

Definition at line 68 of file AlCaHBHEMuonProducer.cc.

Referenced by endStream(), and produce().

unsigned int AlCaHBHEMuonProducer::nRun_
private

Definition at line 68 of file AlCaHBHEMuonProducer.cc.

Referenced by beginRun(), and endRun().

double AlCaHBHEMuonProducer::pMuonMin_
private

Definition at line 71 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and select().

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

Definition at line 73 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

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

Definition at line 75 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

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

Definition at line 76 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

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

Definition at line 77 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

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

Definition at line 78 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().

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

Definition at line 74 of file AlCaHBHEMuonProducer.cc.

Referenced by AlCaHBHEMuonProducer(), and produce().