|
| CaloParticleValidation (const edm::ParameterSet &) |
|
| ~CaloParticleValidation () override |
|
void | accumulate (edm::StreamID id, edm::Event const &event, edm::EventSetup const &setup) const final |
|
virtual void | bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms_CaloParticleValidation &) const=0 |
|
virtual void | dqmBeginRun (edm::Run const &, edm::EventSetup const &, Histograms_CaloParticleValidation &) const |
|
virtual void | dqmEndRun (edm::Run const &, edm::EventSetup const &, Histograms_CaloParticleValidation const &) const |
|
| DQMGlobalEDAnalyzer () |
|
std::shared_ptr< Histograms_CaloParticleValidation > | globalBeginRun (edm::Run const &run, edm::EventSetup const &setup) const final |
|
void | globalEndRun (edm::Run const &, edm::EventSetup const &) const final |
|
void | globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup) const final |
|
| EDProducer ()=default |
|
bool | hasAbilityToProduceInBeginLumis () const final |
|
bool | hasAbilityToProduceInBeginRuns () const final |
|
bool | hasAbilityToProduceInEndLumis () const final |
|
bool | hasAbilityToProduceInEndRuns () const final |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsStreamLuminosityBlocks () const final |
|
bool | wantsStreamRuns () const final |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
| ~EDProducerBase () override |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
|
| ProducerBase () |
|
std::vector< edm::ProductResolverIndex > const & | putTokenIndexToProductResolverIndex () const |
|
std::vector< bool > const & | recordProvenanceList () const |
|
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
|
std::function< void(BranchDescription const &)> | registrationCallback () const |
| used by the fwk to register list of products More...
|
|
void | resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel) |
|
TypeLabelList const & | typeLabelList () const |
| used by the fwk to register the list of products of this module More...
|
|
| ~ProducerBase () noexcept(false) override |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
void | convertCurrentProcessAlias (std::string const &processName) |
| Convert "@currentProcess" in InputTag process names to the actual current process name. More...
|
|
| EDConsumerBase () |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
typedef dqm::reco::DQMStore | DQMStore |
|
typedef dqm::reco::MonitorElement | MonitorElement |
|
typedef EDProducerBase | ModuleType |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > |
|
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces () |
| declare what type of product will make and with which optional label More...
|
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<BranchType B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<Transition B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
ProducesCollector | producesCollector () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
|
ConsumesCollector | consumesCollector () |
| Use a ConsumesCollector to gather consumes information from helper functions. More...
|
|
template<typename ProductType , BranchType B = InEvent> |
void | consumesMany () |
|
void | consumesMany (const TypeToGet &id) |
|
template<BranchType B> |
void | consumesMany (const TypeToGet &id) |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
Definition at line 56 of file CaloParticleValidation.cc.
Definition at line 222 of file CaloParticleValidation.cc.
227 ibook.setCurrentFolder(
folder_ +
"CaloParticles/" + std::to_string(particle));
229 histo.eta_ = ibook.book1D(
"Eta",
"Eta", 80, -4., 4.);
230 histo.energy_ = ibook.book1D(
"Energy",
"Energy", 250, 0., 500.);
231 histo.pt_ = ibook.book1D(
"Pt",
"Pt", 100, 0., 100.);
232 histo.nSimClusters_ = ibook.book1D(
"NSimClusters",
"NSimClusters", 100, 0., 100.);
233 histo.nHitInSimClusters_ = ibook.book1D(
"NHitInSimClusters",
"NHitInSimClusters", 100, 0., 100.);
234 histo.selfEnergy_ = ibook.book1D(
"SelfEnergy",
"SelfEnergy", 250, 0., 500.);
235 histo.energyDifference_ = ibook.book1D(
"EnergyDifference",
"(Energy-SelfEnergy)/Energy", 300, -5., 1.);
236 histo.eta_Zorigin_map_ = ibook.book2D(
"Eta vs Zorigin",
"Eta vs Zorigin", 80, -4., 4., 1100, -550., 550.);
239 ibook.setCurrentFolder(
folder_ +
"PFCandidates");
240 histos[
offset].pfcandidateType_ = ibook.book1D(
"PFCandidateType",
"PFCandidateType", 10, 0, 10);
241 histos[
offset].pfcandidate_vect_sum_pt_ = ibook.book1D(
"PFCandidatePtVectSum",
"PFCandidatePtVectSum", 200, 0., 200.);
243 ibook.setCurrentFolder(
folder_ +
"PFCandidates/" + std::to_string(
type));
245 histo.pfcandidateEnergy_ = ibook.book1D(
"PFCandidateEnergy",
"PFCandidateEnergy", 250, 0., 250.);
246 histo.pfcandidatePt_ = ibook.book1D(
"PFCandidatePt",
"PFCandidatePt", 250, 0., 250.);
247 histo.pfcandidateEta_ = ibook.book1D(
"PFCandidateEta",
"PFCandidateEta", 100, -5., 5.);
248 histo.pfcandidatePhi_ = ibook.book1D(
"PFCandidatePhi",
"PFCandidatePhi", 100, -4., 4.);
249 histo.pfcandidateElementsInBlocks_ = ibook.book1D(
"PFCandidateElements",
"PFCandidateElements", 20, 0., 20.);
252 ibook.setCurrentFolder(
folder_ + std::to_string(0));
253 histos[0].simPFSuperClusterSize_ = ibook.book1D(
"SimPFSuperClusterSize",
"SimPFSuperClusterSize", 40, 0., 40.);
254 histos[0].simPFSuperClusterEnergy_ =
255 ibook.book1D(
"SimPFSuperClusterEnergy",
"SimPFSuperClusterEnergy", 250, 0., 500.);
References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), reco::PFCandidate::egamma_HF, folder_, reco::PFCandidate::h, timingPdfMaker::histo, combine::histos, hltrates_dqm_sourceclient-live_cfg::offset, particles_to_monitor_, and dqm::implementation::NavigatorBase::setCurrentFolder().
Implements DQMGlobalEDAnalyzer< Histograms_CaloParticleValidation >.
Definition at line 119 of file CaloParticleValidation.cc.
132 const auto& rechitsEE = *recHitHandleEE;
133 const auto& rechitsFH = *recHitHandleFH;
134 const auto& rechitsBH = *recHitHandleBH;
135 std::map<DetId, const HGCRecHit*> hitmap;
136 for (
unsigned int i = 0;
i < rechitsEE.size(); ++
i) {
137 hitmap[rechitsEE[
i].detid()] = &rechitsEE[
i];
139 for (
unsigned int i = 0;
i < rechitsFH.size(); ++
i) {
140 hitmap[rechitsFH[
i].detid()] = &rechitsFH[
i];
142 for (
unsigned int i = 0;
i < rechitsBH.size(); ++
i) {
143 hitmap[rechitsBH[
i].detid()] = &rechitsBH[
i];
148 std::vector<SimVertex>
const&
simVertices = *simVerticesHandle;
152 std::vector<CaloParticle>
const&
caloParticles = *caloParticleHandle;
156 std::vector<reco::SuperCluster>
const& simPFClusters = *simPFClustersHandle;
163 if (caloParticle.g4Tracks()[0].eventId().event() != 0
or
164 caloParticle.g4Tracks()[0].eventId().bunchCrossing() != 0) {
165 LogDebug(
"CaloParticleValidation") <<
"Excluding CaloParticles from event: "
166 << caloParticle.g4Tracks()[0].eventId().event()
167 <<
" with BX: " << caloParticle.g4Tracks()[0].eventId().bunchCrossing()
171 int id = caloParticle.pdgId();
174 histo.eta_->Fill(caloParticle.eta());
175 histo.pt_->Fill(caloParticle.pt());
176 histo.energy_->Fill(caloParticle.energy());
177 histo.nSimClusters_->Fill(caloParticle.simClusters().size());
183 for (
auto const sc : caloParticle.simClusters()) {
184 simHits += sc->hits_and_fractions().size();
185 for (
auto const& h_and_f : sc->hits_and_fractions()) {
186 if (hitmap.count(h_and_f.first))
187 energy += hitmap[h_and_f.first]->energy() * h_and_f.second;
192 histo.energyDifference_->Fill(1. -
energy / caloParticle.energy());
197 for (
auto const& sc : simPFClusters) {
198 histos.at(0).simPFSuperClusterSize_->Fill((
float)sc.clustersSize());
199 histos.at(0).simPFSuperClusterEnergy_->Fill(sc.rawEnergy());
206 for (
auto const& pfc : simPFCandidates) {
212 histo.pfcandidateEnergy_->Fill(pfc.energy());
213 histo.pfcandidatePt_->Fill(pfc.pt());
214 histo.pfcandidateEta_->Fill(pfc.eta());
215 histo.pfcandidatePhi_->Fill(pfc.phi());
216 histo.pfcandidateElementsInBlocks_->Fill(pfc.elementsInBlocks().size());
219 histo.pfcandidate_vect_sum_pt_->Fill(
std::sqrt(ptx_tot * ptx_tot + pty_tot * pty_tot));
References caloTruthCellsProducer_cfi::caloParticles, caloParticles_, HCALHighEnergyHPDFilter_cfi::energy, timingPdfMaker::histo, combine::histos, mps_fire::i, iEvent, LogDebug, hltrates_dqm_sourceclient-live_cfg::offset, or, position, recHitsBH_, recHitsEE_, recHitsFH_, FastTrackerRecHitCombiner_cfi::simHits, simPFCandidates_, simPFClusters_, HGCalValidator_cfi::simVertices, simVertices_, and mathSSE::sqrt().