CMS 3D CMS Logo

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

#include <Validation/HcalDigisClient/src/HcalDigisClient.cc>

Inheritance diagram for HcalDigisClient:
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

Classes

struct  HistLim
 

Public Member Functions

 HcalDigisClient (const edm::ParameterSet &)
 
 ~HcalDigisClient () 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 hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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
 
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)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void book1D (DQMStore::IBooker &ib, std::string name, int n, double min, double max)
 
void book1D (DQMStore::IBooker &ib, std::string name, const HistLim &limX)
 
void book2D (DQMStore::IBooker &ib, std::string name, const HistLim &limX, const HistLim &limY)
 
void bookPf (DQMStore::IBooker &ib, std::string name, const HistLim &limX, const HistLim &limY)
 
void bookPf (DQMStore::IBooker &ib, std::string name, const HistLim &limX, const HistLim &limY, const char *option)
 
void dqmEndJob (DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) override
 
void fill1D (std::string name, double X, double weight=1)
 
void fill2D (std::string name, double X, double Y, double weight=1)
 
void fillPf (std::string name, double X, double Y)
 
int HcalDigisEndjob (const std::vector< MonitorElement * > &hcalMEs, std::string subdet_, DQMStore::IBooker &ib)
 
double integralMETH2D (MonitorElement *ME, int i0, int i1, int j0, int j1)
 
MonitorElementmonitor (std::string name)
 
virtual void runClient (DQMStore::IBooker &ib, DQMStore::IGetter &ig)
 
void scaleMETH2D (MonitorElement *ME, double s)
 
std::string str (int x)
 

Private Attributes

std::string dirName_
 
std::map< std::string, MonitorElement * > * msm_
 
std::string outputFile_
 

Additional Inherited Members

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

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 27 of file HcalDigisClient.h.

Constructor & Destructor Documentation

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

Definition at line 23 of file HcalDigisClient.cc.

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

23  {
24  outputFile_ = iConfig.getUntrackedParameter<std::string > ("outputFile", "HcalDigisClient.root");
25  dirName_ = iConfig.getParameter<std::string > ("DQMDirName");
26  msm_ = new std::map<std::string, MonitorElement*>();
27 
28 
29 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::string dirName_
std::string outputFile_
std::map< std::string, MonitorElement * > * msm_
HcalDigisClient::~HcalDigisClient ( )
override

Definition at line 32 of file HcalDigisClient.cc.

References msm_.

32  {
33  delete msm_;
34 }
std::map< std::string, MonitorElement * > * msm_

Member Function Documentation

void HcalDigisClient::book1D ( DQMStore::IBooker ib,
std::string  name,
int  n,
double  min,
double  max 
)
inlineprivate

Definition at line 55 of file HcalDigisClient.h.

References DQMStore::IBooker::book1D(), HcalDigisClient::HistLim::max, HcalDigisClient::HistLim::min, msm_, HcalDigisClient::HistLim::n, and dataset::name.

Referenced by HcalDigisEndjob().

55  {
56  if (!msm_->count(name)) (*msm_)[name] = ib.book1D(name.c_str(), name.c_str(), n, min, max);
57  }
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
T min(T a, T b)
Definition: MathUtil.h:58
std::map< std::string, MonitorElement * > * msm_
void HcalDigisClient::book1D ( DQMStore::IBooker ib,
std::string  name,
const HistLim limX 
)
inlineprivate

Definition at line 59 of file HcalDigisClient.h.

References DQMStore::IBooker::book1D(), HcalDigisClient::HistLim::max, HcalDigisClient::HistLim::min, msm_, HcalDigisClient::HistLim::n, and dataset::name.

59  {
60  if (!msm_->count(name)) (*msm_)[name] = ib.book1D(name.c_str(), name.c_str(), limX.n, limX.min, limX.max);
61  }
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
std::map< std::string, MonitorElement * > * msm_
void HcalDigisClient::book2D ( DQMStore::IBooker ib,
std::string  name,
const HistLim limX,
const HistLim limY 
)
inlineprivate

Definition at line 67 of file HcalDigisClient.h.

References DQMStore::IBooker::book2D(), HcalDigisClient::HistLim::max, HcalDigisClient::HistLim::min, msm_, HcalDigisClient::HistLim::n, and dataset::name.

67  {
68  if (!msm_->count(name)) (*msm_)[name] = ib.book2D(name.c_str(), name.c_str(), limX.n, limX.min, limX.max, limY.n, limY.min, limY.max);
69  }
std::map< std::string, MonitorElement * > * msm_
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:136
void HcalDigisClient::bookPf ( DQMStore::IBooker ib,
std::string  name,
const HistLim limX,
const HistLim limY 
)
inlineprivate

Definition at line 75 of file HcalDigisClient.h.

References DQMStore::IBooker::bookProfile(), HcalDigisClient::HistLim::max, HcalDigisClient::HistLim::min, msm_, HcalDigisClient::HistLim::n, and dataset::name.

75  {
76  if (!msm_->count(name)) (*msm_)[name] = ib.bookProfile(name.c_str(), name.c_str(), limX.n, limX.min, limX.max, limY.n, limY.min, limY.max);
77  }
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:160
std::map< std::string, MonitorElement * > * msm_
void HcalDigisClient::bookPf ( DQMStore::IBooker ib,
std::string  name,
const HistLim limX,
const HistLim limY,
const char *  option 
)
inlineprivate

Definition at line 79 of file HcalDigisClient.h.

References DQMStore::IBooker::bookProfile(), HcalDigisClient::HistLim::max, HcalDigisClient::HistLim::min, msm_, HcalDigisClient::HistLim::n, dataset::name, and TSGForRoadSearch_cfi::option.

79  {
80  if (!msm_->count(name)) (*msm_)[name] = ib.bookProfile(name.c_str(), name.c_str(), limX.n, limX.min, limX.max, limY.n, limY.min, limY.max, option);
81  }
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:160
std::map< std::string, MonitorElement * > * msm_
void HcalDigisClient::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
inlineoverrideprivatevirtual

Implements DQMEDHarvester.

Definition at line 35 of file HcalDigisClient.h.

References dirName_, runClient(), and DQMStore::IGetter::setCurrentFolder().

35  {
36  igetter.setCurrentFolder(dirName_); // This sets the DQMStore (should apply to ibooker as well
37  runClient(ibooker, igetter);
38  }
std::string dirName_
virtual void runClient(DQMStore::IBooker &ib, DQMStore::IGetter &ig)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:344
void HcalDigisClient::fill1D ( std::string  name,
double  X,
double  weight = 1 
)
inlineprivate

Definition at line 63 of file HcalDigisClient.h.

References msm_.

63  {
64  msm_->find(name)->second->Fill(X, weight);
65  }
#define X(str)
Definition: MuonsGrabber.cc:48
Definition: weight.py:1
std::map< std::string, MonitorElement * > * msm_
void HcalDigisClient::fill2D ( std::string  name,
double  X,
double  Y,
double  weight = 1 
)
inlineprivate

Definition at line 71 of file HcalDigisClient.h.

References msm_.

71  {
72  msm_->find(name)->second->Fill(X, Y, weight);
73  }
#define X(str)
Definition: MuonsGrabber.cc:48
Definition: weight.py:1
std::map< std::string, MonitorElement * > * msm_
void HcalDigisClient::fillPf ( std::string  name,
double  X,
double  Y 
)
inlineprivate

Definition at line 83 of file HcalDigisClient.h.

References integralMETH2D(), msm_, alignCSCRings::s, scaleMETH2D(), str(), AlCaHLTBitMon_QueryRunRegistry::string, and x.

83  {
84  msm_->find(name)->second->Fill(X, Y);
85  }
#define X(str)
Definition: MuonsGrabber.cc:48
std::map< std::string, MonitorElement * > * msm_
int HcalDigisClient::HcalDigisEndjob ( const std::vector< MonitorElement * > &  hcalMEs,
std::string  subdet_,
DQMStore::IBooker ib 
)
private

Definition at line 63 of file HcalDigisClient.cc.

References book1D(), ws_sso_content_reader::content, egammaForCoreTracking_cff::depth, particleFlowClusterHBHE_cfi::depths, MillePedeFileConverter_cfg::e, end, ev, spr::find(), objects.autophobj::float, MonitorElement::getEntries(), MonitorElement::getTH1F(), mps_fire::i, msm_, position, MonitorElement::setBinContent(), MonitorElement::setBinError(), mathSSE::sqrt(), str(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by runClient().

63  {
64 
65  using namespace std;
66  string strtmp;
67 
68 
69  MonitorElement * nevtot(nullptr);
70 
71  std::vector<MonitorElement*> ieta_iphi_occupancy_maps;
72  std::vector<std::string> depthID;
73 
74  // std::cout << " Number of histos " << hcalMEs.size() << std::endl;
75 
76  for (unsigned int ih = 0; ih < hcalMEs.size(); ih++) {
77 
78  if (hcalMEs[ih]->getName() == "nevtot"){
79  nevtot = hcalMEs[ih];
80  continue;
81  }
82 
83  //We search the occupancy maps corresponding to this subdetector
84  if ( (hcalMEs[ih]->getName().find("HcalDigiTask_ieta_iphi_occupancy_map_depth") != std::string::npos)
85  &&(hcalMEs[ih]->getName().find(subdet_) != std::string::npos) ){
86 
87  ieta_iphi_occupancy_maps.push_back(hcalMEs[ih]);
88 
89  std::string start = "depth";
90  std::string end = "_H";
91 
92  int position = hcalMEs[ih]->getName().find(start) + start.length();
93  int length = hcalMEs[ih]->getName().find(end) - position;
94 
95  depthID.push_back(hcalMEs[ih]->getName().substr(position, length));
96 
97  continue;
98  }
99 
100 
101  }
102 
103 
104  if ( hcalMEs.empty()){
105  edm::LogError("HcalDigisClient") << "No nevtot or maps histo found...";
106  return 0;
107  }
108  if( !nevtot){
109  edm::LogError("HcalDigisClient") << "No nevtot histoo found...";
110  return 0;
111  }
112  if( ieta_iphi_occupancy_maps.empty()){
113  edm::LogError("HcalDigisClient") << "No maps histos found...";
114  return 0;
115  }
116 
117 
118  int ev = nevtot->getEntries();
119 
120 
121  if(ev <= 0) {
122  edm::LogError("HcalDigisClient") << "normalization factor <= 0!";
123  return 0;
124  }
125 
126  float fev = (float) nevtot->getEntries();
127 
128  int depths = ieta_iphi_occupancy_maps.size();
129 
130  HistLim ietaLim(85, -42.5, 42.5);
131 
132  for (int depth = 1; depth <= depths; depth++) {
133  strtmp = "HcalDigiTask_occupancy_vs_ieta_depth" + str(depth) + "_" + subdet_;
134  book1D(ib,strtmp, ietaLim);
135  }
136 
137  std::vector<float> sumphi(depths,0);
138  std::vector<float> sumphie(depths,0);
139 
140 
141  float phi_factor;
142  float cnorm;
143  float enorm;
144 
145 
146  for(int depth = 1; depth <= depths; depth++){
147  int nx = ieta_iphi_occupancy_maps[depth-1]->getNbinsX();
148  int ny = ieta_iphi_occupancy_maps[depth-1]->getNbinsY();
149 
150 
151  for (int i = 1; i <= nx; i++) {
152  for (int j = 1; j <= ny; j++) {
153 
154  // occupancies
155  cnorm = ieta_iphi_occupancy_maps[depth-1]->getBinContent(i, j) / fev;
156  enorm = ieta_iphi_occupancy_maps[depth-1]->getBinError(i, j) / fev;
157  ieta_iphi_occupancy_maps[depth-1]->setBinContent(i, j, cnorm);
158  ieta_iphi_occupancy_maps[depth-1]->setBinError(i, j, enorm);
159 
160  } //for loop over NbinsYU
161  } //for loop over NbinsX
162  } //for loop over the occupancy maps
163 
164  for (int i = 1; i <= 82; i++) {
165 
166  int ieta = i - 42; // -41 -1, 0 40
167  if (ieta >= 0) ieta += 1; // -41 -1, 1 41 - to make it detector-like
168 
169  if (ieta >= -20 && ieta <= 20) {
170  phi_factor = 72.;
171  } else {
172  if (ieta >= 40 || ieta <= -40)
173  phi_factor = 18.;
174  else
175  phi_factor = 36.;
176  }
177 
178  //zero the sumphi and sumphie vector at the start of each ieta ring
179  sumphi.assign(depths,0);
180  sumphie.assign(depths,0);
181 
182  for (int iphi = 1; iphi <= 72; iphi++) {
183  for(int depth = 1; depth <= depths; depth++){
184  int binIeta = ieta_iphi_occupancy_maps[depth-1]->getTH2F()->GetXaxis()->FindBin(ieta);
185  int binIphi = ieta_iphi_occupancy_maps[depth-1]->getTH2F()->GetYaxis()->FindBin(iphi);
186 
187  float content = ieta_iphi_occupancy_maps[depth-1]->getBinContent(binIeta,binIphi);
188  float econtent = ieta_iphi_occupancy_maps[depth-1]->getBinError(binIeta,binIphi);
189 
190  sumphi[depth-1] += content;
191  sumphie[depth-1] += econtent*econtent;
192 
193  }//for loop over depths
194  }//for loop over phi
195 
196  //double deta = double(ieta);
197 
198  // occupancies vs ieta
199  for(int depth = 1; depth <= depths; depth++){
200  strtmp = "HcalDigiTask_occupancy_vs_ieta_depth" + depthID[depth-1] + "_" + subdet_;
201  MonitorElement* ME = msm_->find(strtmp)->second;
202  int ietabin = ME->getTH1F()->GetXaxis()->FindBin(float(ieta));
203 
204  if (sumphi[depth-1]>1.e-30){
205  cnorm = sumphi[depth-1] / phi_factor;
206  enorm = sqrt(sumphie[depth-1]) / phi_factor;
207  ME->setBinContent(ietabin,cnorm);
208  ME->setBinError(ietabin,enorm);
209  }
210  }
211  } // end of i-loop
212 
213  return 1;
214 }
Definition: start.py:1
void setBinContent(int binx, double content)
set content of bin (1-D)
TH1F * getTH1F() const
bool ev
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
Definition: ME.h:11
T sqrt(T t)
Definition: SSEVec.h:18
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
#define end
Definition: vmac.h:39
std::string str(int x)
void book1D(DQMStore::IBooker &ib, std::string name, int n, double min, double max)
std::map< std::string, MonitorElement * > * msm_
static int position[264][3]
Definition: ReadPGInfo.cc:509
double HcalDigisClient::integralMETH2D ( MonitorElement ME,
int  i0,
int  i1,
int  j0,
int  j1 
)
private

Definition at line 227 of file HcalDigisClient.cc.

References MonitorElement::getBinContent(), and mps_fire::i.

Referenced by fillPf().

227  {
228  double sum(0);
229  for (int i = i0; i <= i1; i++) {
230  for (int j = j0; j <= j1; j++) {
231  sum += ME->getBinContent(i, j);
232  }
233  }
234 
235  return sum;
236 }
double getBinContent(int binx) const
get content of bin (1-D)
MonitorElement * HcalDigisClient::monitor ( std::string  name)
private

Definition at line 216 of file HcalDigisClient.cc.

References msm_.

216  {
217  if (!msm_->count(name)) return nullptr;
218  else return msm_->find(name)->second;
219 }
std::map< std::string, MonitorElement * > * msm_
void HcalDigisClient::runClient ( DQMStore::IBooker ib,
DQMStore::IGetter ig 
)
privatevirtual

Definition at line 37 of file HcalDigisClient.cc.

References dirName_, DQMStore::IGetter::getContents(), DQMStore::IGetter::getSubdirs(), HcalDigisEndjob(), mps_fire::i, and DQMStore::IGetter::setCurrentFolder().

Referenced by dqmEndJob().

37  {
39  std::vector<MonitorElement*> hcalMEs;
40  // Since out folders are fixed to three, we can just go over these three folders
41  // i.e., CaloTowersV/CaloTowersTask, HcalRecHitsV/HcalRecHitTask, NoiseRatesV/NoiseRatesTask.
42  std::vector<std::string> fullPathHLTFolders = ig.getSubdirs();
43  for (unsigned int i = 0; i < fullPathHLTFolders.size(); i++) {
44  ig.setCurrentFolder(fullPathHLTFolders[i]);
45  std::vector<std::string> fullSubPathHLTFolders = ig.getSubdirs();
46  for (unsigned int j = 0; j < fullSubPathHLTFolders.size(); j++) {
47  if (strcmp(fullSubPathHLTFolders[j].c_str(), "HcalDigisV/HcalDigiTask") == 0) {
48  hcalMEs = ig.getContents(fullSubPathHLTFolders[j]);
49  ig.setCurrentFolder("HcalDigisV/HcalDigiTask");
50  if (!HcalDigisEndjob(hcalMEs, "HB", ib))
51  edm::LogError("HcalDigisClient") << "Error in HcalDigisEndjob! HB";
52  if (!HcalDigisEndjob(hcalMEs, "HE", ib))
53  edm::LogError("HcalDigisClient") << "Error in HcalDigisEndjob! HE";
54  if (!HcalDigisEndjob(hcalMEs, "HO", ib))
55  edm::LogError("HcalDigisClient") << "Error in HcalDigisEndjob! HO";
56  if (!HcalDigisEndjob(hcalMEs, "HF", ib))
57  edm::LogError("HcalDigisClient") << "Error in HcalDigisEndjob! HF";
58  }
59  }
60  }
61 }
std::vector< MonitorElement * > getContents(Args &&...args)
Definition: DQMStore.h:305
std::string dirName_
int HcalDigisEndjob(const std::vector< MonitorElement * > &hcalMEs, std::string subdet_, DQMStore::IBooker &ib)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:344
std::vector< std::string > getSubdirs()
Definition: DQMStore.cc:320
void HcalDigisClient::scaleMETH2D ( MonitorElement ME,
double  s 
)
private

Definition at line 238 of file HcalDigisClient.cc.

References ws_sso_content_reader::content, DEFINE_FWK_MODULE, relativeConstraints::error, MonitorElement::getBinContent(), MonitorElement::getBinError(), MonitorElement::getNbinsX(), MonitorElement::getNbinsY(), mps_fire::i, alignCSCRings::s, MonitorElement::setBinContent(), and MonitorElement::setBinError().

Referenced by fillPf().

238  {
239  int nx = ME->getNbinsX();
240  int ny = ME->getNbinsY();
241 
242  double content(0);
243  double error(0);
244  for (int i = 1; i <= nx; i++) {
245  for (int j = 1; j <= ny; j++) {
246  content = ME->getBinContent(i, j);
247  error = ME->getBinError(i, j);
248  content *= s;
249  error *= s;
250  ME->setBinContent(i, j, content);
251  ME->setBinError(i, j, error);
252  }
253  }
254 }
void setBinContent(int binx, double content)
set content of bin (1-D)
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
double getBinError(int binx) const
get uncertainty on content of bin (1-D) - See TH1::GetBinError for details
int getNbinsY() const
get # of bins in Y-axis
double getBinContent(int binx) const
get content of bin (1-D)
int getNbinsX() const
get # of bins in X-axis
std::string HcalDigisClient::str ( int  x)
private

Definition at line 221 of file HcalDigisClient.cc.

References MillePedeFileConverter_cfg::out, and x.

Referenced by fillPf(), and HcalDigisEndjob().

221  {
222  std::stringstream out;
223  out << x;
224  return out.str();
225 }

Member Data Documentation

std::string HcalDigisClient::dirName_
private

Definition at line 93 of file HcalDigisClient.h.

Referenced by dqmEndJob(), HcalDigisClient(), and runClient().

std::map<std::string, MonitorElement*>* HcalDigisClient::msm_
private
std::string HcalDigisClient::outputFile_
private

Definition at line 92 of file HcalDigisClient.h.

Referenced by HcalDigisClient().