CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
CaloTowersDQMClient Class Reference

#include <CaloTowersDQMClient.h>

Inheritance diagram for CaloTowersDQMClient:
DQMEDHarvester edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void beginJob (void) override
 
void beginRun (const edm::Run &run, const edm::EventSetup &c) override
 
 CaloTowersDQMClient (const edm::ParameterSet &)
 
int CaloTowersEndjob (const std::vector< MonitorElement * > &hcalMEs)
 
void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
 ~CaloTowersDQMClient () override
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
 DQMEDHarvester ()
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
void endJob () final
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, edm::EventSetup const &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
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
 
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)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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 const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
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)
 

Private Attributes

edm::ParameterSet conf_
 
bool debug_
 
std::string dirName_
 
std::string dirNameJet_
 
std::string dirNameMET_
 
std::string outputFile_
 
bool verbose_
 

Additional Inherited Members

- Public Types inherited from DQMEDHarvester
typedef dqm::harvesting::DQMStore DQMStore
 
typedef dqm::harvesting::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, 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)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDHarvester
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 34 of file CaloTowersDQMClient.h.

Constructor & Destructor Documentation

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

Definition at line 11 of file CaloTowersDQMClient.cc.

References debug_, dirName_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), outputFile_, AlCaHLTBitMon_QueryRunRegistry::string, and verbose_.

11  : conf_(iConfig) {
12  outputFile_ = iConfig.getUntrackedParameter<std::string>("outputFile", "myfile.root");
13  debug_ = false;
14  verbose_ = false;
15  dirName_ = iConfig.getParameter<std::string>("DQMDirName");
16 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::ParameterSet conf_
CaloTowersDQMClient::~CaloTowersDQMClient ( )
override

Definition at line 18 of file CaloTowersDQMClient.cc.

18 {}

Member Function Documentation

void CaloTowersDQMClient::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 20 of file CaloTowersDQMClient.cc.

20 {}
void CaloTowersDQMClient::beginRun ( const edm::Run run,
const edm::EventSetup c 
)
override

Definition at line 22 of file CaloTowersDQMClient.cc.

22 {}
int CaloTowersDQMClient::CaloTowersEndjob ( const std::vector< MonitorElement * > &  hcalMEs)

Definition at line 26 of file CaloTowersDQMClient.cc.

References generateEDF::cont, gather_cfg::cout, MillePedeFileConverter_cfg::e, dqmMemoryStats::float, dqm::impl::MonitorElement::getBinContent(), dqm::impl::MonitorElement::getBinError(), dqm::impl::MonitorElement::getEntries(), getName(), dqm::impl::MonitorElement::getNbinsX(), dqm::impl::MonitorElement::getNbinsY(), mps_fire::i, LEDCalibrationChannels::ieta, dqmiolumiharvest::j, nevent, funct::pow(), dqm::impl::MonitorElement::setBinContent(), dqm::impl::MonitorElement::setBinError(), CaloTowersParam_cfi::useAllHistos, and verbose_.

Referenced by dqmEndJob().

26  {
27  int useAllHistos = 0;
28  MonitorElement *Ntowers_vs_ieta = nullptr;
29  MonitorElement *mapEnergy_N = nullptr, *mapEnergy_E = nullptr, *mapEnergy_H = nullptr, *mapEnergy_EH = nullptr;
30  MonitorElement *occupancy_map = nullptr, *occupancy_vs_ieta = nullptr;
31  for (unsigned int ih = 0; ih < hcalMEs.size(); ih++) {
32  if (strcmp(hcalMEs[ih]->getName().c_str(), "Ntowers_per_event_vs_ieta") == 0) {
33  Ntowers_vs_ieta = hcalMEs[ih];
34  }
35  if (strcmp(hcalMEs[ih]->getName().c_str(), "CaloTowersTask_map_Nentries") == 0) {
36  mapEnergy_N = hcalMEs[ih];
37  }
38  if (strcmp(hcalMEs[ih]->getName().c_str(), "CaloTowersTask_map_energy_H") == 0) {
39  useAllHistos++;
40  mapEnergy_H = hcalMEs[ih];
41  }
42  if (strcmp(hcalMEs[ih]->getName().c_str(), "CaloTowersTask_map_energy_E") == 0) {
43  useAllHistos++;
44  mapEnergy_E = hcalMEs[ih];
45  }
46  if (strcmp(hcalMEs[ih]->getName().c_str(), "CaloTowersTask_map_energy_EH") == 0) {
47  useAllHistos++;
48  mapEnergy_EH = hcalMEs[ih];
49  }
50  if (strcmp(hcalMEs[ih]->getName().c_str(), "CaloTowersTask_map_occupancy") == 0) {
51  occupancy_map = hcalMEs[ih];
52  }
53  if (strcmp(hcalMEs[ih]->getName().c_str(), "CaloTowersTask_occupancy_vs_ieta") == 0) {
54  occupancy_vs_ieta = hcalMEs[ih];
55  }
56  }
57  if (useAllHistos != 0 && useAllHistos != 3)
58  return 0;
59 
60  double nevent = mapEnergy_N->getEntries();
61  if (verbose_)
62  std::cout << "nevent : " << nevent << std::endl;
63 
64  // mean number of towers per ieta
65  int nx = Ntowers_vs_ieta->getNbinsX();
66  float cont;
67  float conte;
68  float fev = float(nevent);
69 
70  for (int i = 1; i <= nx; i++) {
71  cont = Ntowers_vs_ieta->getBinContent(i) / fev;
72  conte = pow(Ntowers_vs_ieta->getBinContent(i), 0.5) / fev;
73  Ntowers_vs_ieta->setBinContent(i, cont);
74  Ntowers_vs_ieta->setBinError(i, conte);
75  }
76 
77  // mean energies & occupancies evaluation
78 
79  nx = mapEnergy_N->getNbinsX();
80  int ny = mapEnergy_N->getNbinsY();
81  float cnorm;
82  float cnorme;
83  float phi_factor;
84 
85  for (int i = 1; i <= nx; i++) {
86  float sumphi = 0.;
87 
88  for (int j = 1; j <= ny; j++) {
89  // Emean
90  cnorm = mapEnergy_N->getBinContent(i, j);
91  // Phi histos are not used in the macros
92  if (cnorm > 0.000001 && useAllHistos) {
93  cont = mapEnergy_E->getBinContent(i, j) / cnorm;
94  conte = mapEnergy_E->getBinError(i, j) / cnorm;
95  mapEnergy_E->setBinContent(i, j, cont);
96  mapEnergy_E->setBinError(i, j, conte);
97 
98  cont = mapEnergy_H->getBinContent(i, j) / cnorm;
99  conte = mapEnergy_H->getBinError(i, j) / cnorm;
100  mapEnergy_H->setBinContent(i, j, cont);
101  mapEnergy_H->setBinError(i, j, conte);
102 
103  cont = mapEnergy_EH->getBinContent(i, j) / cnorm;
104  conte = mapEnergy_EH->getBinError(i, j) / cnorm;
105  mapEnergy_EH->setBinContent(i, j, cont);
106  mapEnergy_EH->setBinError(i, j, conte);
107  }
108 
109  // Occupancy (needed for occupancy vs ieta)
110  cont = occupancy_map->getBinContent(i, j);
111  conte = occupancy_map->getBinError(i, j);
112  if (fev > 0. && cnorm > 1.e-30) {
113  occupancy_map->setBinContent(i, j, cont / fev);
114  occupancy_map->setBinError(i, j, conte / fev);
115  }
116 
117  sumphi += cont;
118 
119  } // end of iphy cycle (j)
120 
121  // Occupancy vs ieta histo is drawn
122  // phi-factor evaluation for occupancy_vs_ieta calculation
123  int ieta = i - 43; // should be the same as int ieta =
124  // int(occupancy_vs_ieta->getBinCenter(i));
125 
126  if (ieta >= -20 && ieta <= 20) {
127  phi_factor = 72.;
128  } else {
129  if (ieta >= 40 || ieta <= -40) {
130  phi_factor = 18.;
131  } else
132  phi_factor = 36.;
133  }
134 
135  cnorm = sumphi / phi_factor;
136  cnorme = pow(sumphi, 0.5) / phi_factor;
137  if (fev > 0. && cnorm > 1.e-30) {
138  occupancy_vs_ieta->setBinContent(i, cnorm / fev);
139  occupancy_vs_ieta->setBinError(i, cnorme / fev);
140  }
141 
142  } // end of ieta cycle (i)
143 
144  return 1;
145 }
virtual int getNbinsY() const
get # of bins in Y-axis
virtual double getBinError(int binx) const
get uncertainty on content of bin (1-D) - See TH1::GetBinError for details
int nevent
Definition: AMPTWrapper.h:84
virtual int getNbinsX() const
get # of bins in X-axis
virtual double getEntries() const
get # of entries
virtual double getBinContent(int binx) const
get content of bin (1-D)
TString getName(TString structure, int layer, TString geometry)
Definition: DMRtrends.cc:236
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
virtual void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
cont
load Luminosity info ##
Definition: generateEDF.py:629
void CaloTowersDQMClient::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overridevirtual

Implements DQMEDHarvester.

Definition at line 147 of file CaloTowersDQMClient.cc.

References CaloTowersEndjob(), gather_cfg::cout, DEFINE_FWK_MODULE, dirName_, dqm::dqmstoreimpl::DQMStore::IGetter::getContents(), dqm::dqmstoreimpl::DQMStore::IGetter::getSubdirs(), mps_fire::i, dqmiolumiharvest::j, dqm::dqmstoreimpl::DQMStore::IGetter::setCurrentFolder(), and verbose_.

147  {
148  igetter.setCurrentFolder(dirName_);
149  if (verbose_)
150  std::cout << "\nrunClient" << std::endl;
151 
152  std::vector<MonitorElement *> hcalMEs;
153 
154  // Since out folders are fixed to three, we can just go over these three
155  // folders i.e., CaloTowersD/CaloTowersTask, HcalRecHitsD/HcalRecHitTask,
156  // NoiseRatesV/NoiseRatesTask.
157  std::vector<std::string> fullPathHLTFolders = igetter.getSubdirs();
158  for (unsigned int i = 0; i < fullPathHLTFolders.size(); i++) {
159  if (verbose_)
160  std::cout << "\nfullPath: " << fullPathHLTFolders[i] << std::endl;
161  igetter.setCurrentFolder(fullPathHLTFolders[i]);
162 
163  std::vector<std::string> fullSubPathHLTFolders = igetter.getSubdirs();
164  for (unsigned int j = 0; j < fullSubPathHLTFolders.size(); j++) {
165  if (verbose_)
166  std::cout << "fullSub: " << fullSubPathHLTFolders[j] << std::endl;
167 
168  if (strcmp(fullSubPathHLTFolders[j].c_str(), "CaloTowersD/CaloTowersTask") == 0) {
169  hcalMEs = igetter.getContents(fullSubPathHLTFolders[j]);
170  if (verbose_)
171  std::cout << "hltMES size : " << hcalMEs.size() << std::endl;
172  if (!CaloTowersEndjob(hcalMEs))
173  std::cout << "\nError in CaloTowersEndjob!" << std::endl << std::endl;
174  }
175  }
176  }
177 }
int CaloTowersEndjob(const std::vector< MonitorElement * > &hcalMEs)

Member Data Documentation

edm::ParameterSet CaloTowersDQMClient::conf_
private

Definition at line 37 of file CaloTowersDQMClient.h.

bool CaloTowersDQMClient::debug_
private

Definition at line 40 of file CaloTowersDQMClient.h.

Referenced by CaloTowersDQMClient().

std::string CaloTowersDQMClient::dirName_
private

Definition at line 42 of file CaloTowersDQMClient.h.

Referenced by CaloTowersDQMClient(), and dqmEndJob().

std::string CaloTowersDQMClient::dirNameJet_
private

Definition at line 43 of file CaloTowersDQMClient.h.

std::string CaloTowersDQMClient::dirNameMET_
private

Definition at line 44 of file CaloTowersDQMClient.h.

std::string CaloTowersDQMClient::outputFile_
private

Definition at line 36 of file CaloTowersDQMClient.h.

Referenced by CaloTowersDQMClient().

bool CaloTowersDQMClient::verbose_
private

Definition at line 39 of file CaloTowersDQMClient.h.

Referenced by CaloTowersDQMClient(), CaloTowersEndjob(), and dqmEndJob().