CMS 3D CMS Logo

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

#include <MuonAlignmentSummary.h>

Inheritance diagram for MuonAlignmentSummary:
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 dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
 MuonAlignmentSummary (const edm::ParameterSet &)
 Constructor. More...
 
 ~MuonAlignmentSummary () override
 Destructor. More...
 
- 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 Attributes

bool doCSC
 
bool doDT
 
MonitorElementhLocalAngleCSC
 
MonitorElementhLocalAngleDT
 
MonitorElementhLocalAngleRmsCSC
 
MonitorElementhLocalAngleRmsDT
 
MonitorElementhLocalPhiMeanCSC
 
MonitorElementhLocalPhiMeanDT
 
MonitorElementhLocalPhiRmsCSC
 
MonitorElementhLocalPhiRmsDT
 
MonitorElementhLocalPositionCSC
 
MonitorElementhLocalPositionDT
 
MonitorElementhLocalPositionRmsCSC
 
MonitorElementhLocalPositionRmsDT
 
MonitorElementhLocalThetaMeanCSC
 
MonitorElementhLocalThetaMeanDT
 
MonitorElementhLocalThetaRmsCSC
 
MonitorElementhLocalThetaRmsDT
 
MonitorElementhLocalXMeanCSC
 
MonitorElementhLocalXMeanDT
 
MonitorElementhLocalXRmsCSC
 
MonitorElementhLocalXRmsDT
 
MonitorElementhLocalYMeanCSC
 
MonitorElementhLocalYMeanDT
 
MonitorElementhLocalYRmsCSC
 
MonitorElementhLocalYRmsDT
 
double meanAngleRange
 
double meanPositionRange
 
std::string MEFolderName
 
std::string metname
 
edm::ParameterSet parameters
 
double rmsAngleRange
 
double rmsPositionRange
 
std::stringstream topFolder
 

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

DQM client for muon alignment summary

Author
J. Fernandez - Univ. Oviedo Javie.nosp@m.r.Fe.nosp@m.rnand.nosp@m.ez@c.nosp@m.ern.c.nosp@m.h

Definition at line 35 of file MuonAlignmentSummary.h.

Constructor & Destructor Documentation

MuonAlignmentSummary::MuonAlignmentSummary ( const edm::ParameterSet pSet)

Constructor.

Definition at line 12 of file MuonAlignmentSummary.cc.

References doCSC, doDT, cmsRelvalreport::exit, meanAngleRange, meanPositionRange, MEFolderName, rmsAngleRange, rmsPositionRange, AlCaHLTBitMon_QueryRunRegistry::string, and topFolder.

12  {
13 
14  parameters = pSet;
15 
16  meanPositionRange = parameters.getUntrackedParameter<double>("meanPositionRange");
17  rmsPositionRange = parameters.getUntrackedParameter<double>("rmsPositionRange");
18  meanAngleRange = parameters.getUntrackedParameter<double>("meanAngleRange");
19  rmsAngleRange = parameters.getUntrackedParameter<double>("rmsAngleRange");
20 
21  doDT = parameters.getUntrackedParameter<bool>("doDT");
22  doCSC = parameters.getUntrackedParameter<bool>("doCSC");
23 
24  MEFolderName = parameters.getParameter<std::string>("FolderName");
25  topFolder << MEFolderName+"Alignment/Muon";
26 
27  if (!(doDT || doCSC) ) {
28  edm::LogError("MuonAlignmentSummary") <<" Error!! At least one Muon subsystem (DT or CSC) must be monitorized!!" << std::endl;
29  edm::LogError("MuonAlignmentSummary") <<" Please enable doDT or doCSC to True in your python cfg file!!!" << std::endl;
30  exit(1);
31  }
32 
33 }
std::stringstream topFolder
MuonAlignmentSummary::~MuonAlignmentSummary ( )
override

Destructor.

Definition at line 35 of file MuonAlignmentSummary.cc.

35  {
36 }

Member Function Documentation

void MuonAlignmentSummary::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overridevirtual

Implements DQMEDHarvester.

Definition at line 39 of file MuonAlignmentSummary.cc.

References funct::abs(), DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), relativeConstraints::chamber, doCSC, doDT, MonitorElement::Fill(), DQMStore::IGetter::get(), MonitorElement::getEntries(), MonitorElement::getMean(), MonitorElement::getMeanError(), trackerHits::histo, hLocalAngleCSC, hLocalAngleDT, hLocalAngleRmsCSC, hLocalAngleRmsDT, hLocalPhiMeanCSC, hLocalPhiMeanDT, hLocalPhiRmsCSC, hLocalPhiRmsDT, hLocalPositionCSC, hLocalPositionDT, hLocalPositionRmsCSC, hLocalPositionRmsDT, hLocalThetaMeanCSC, hLocalThetaMeanDT, hLocalThetaRmsCSC, hLocalThetaRmsDT, hLocalXMeanCSC, hLocalXMeanDT, hLocalXRmsCSC, hLocalXRmsDT, hLocalYMeanCSC, hLocalYMeanDT, hLocalYRmsCSC, hLocalYRmsDT, phase1PixelTopology::localX(), phase1PixelTopology::localY(), LogTrace, Mean, meanAngleRange, meanPositionRange, metname, callgraph::path, MonitorElement::Reset(), relativeConstraints::ring, rmsAngleRange, rmsPositionRange, MonitorElement::setBinContent(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), relativeConstraints::station, AlCaHLTBitMon_QueryRunRegistry::string, topFolder, and makeMuonMisalignmentScenario::wheel.

39  {
40 
41  metname = "MuonAlignmentSummary";
42 
43  LogTrace(metname)<<"[MuonAlignmentSummary] Parameters initialization";
44 
45 
46  if (doDT) {
47  ibooker.setCurrentFolder(topFolder.str() + "/DT");
48  hLocalPositionDT = ibooker.book2D("hLocalPositionDT",
49  "Local DT position (cm) absolute MEAN residuals;Sector;;cm", 14, 1, 15, 40, 0, 40);
50 
51  hLocalAngleDT = ibooker.book2D("hLocalAngleDT",
52  "Local DT angle (rad) absolute MEAN residuals;Sector;;rad", 14, 1, 15, 40, 0, 40);
53 
54  hLocalPositionRmsDT = ibooker.book2D("hLocalPositionRmsDT",
55  "Local DT position (cm) RMS residuals;Sector;;cm", 14, 1, 15, 40, 0, 40);
56 
57  hLocalAngleRmsDT = ibooker.book2D("hLocalAngleRmsDT",
58  "Local DT angle (rad) RMS residuals;Sector;;rad", 14, 1, 15, 40, 0, 40);
59 
60  hLocalXMeanDT = ibooker.book1D("hLocalXMeanDT",
61  "Distribution of absolute MEAN Local X (cm) residuals for DT;<X> (cm);number of chambers", 100, 0, meanPositionRange);
62 
63  hLocalXRmsDT = ibooker.book1D("hLocalXRmsDT",
64  "Distribution of RMS Local X (cm) residuals for DT;X RMS (cm);number of chambers", 100, 0, rmsPositionRange);
65 
66  hLocalYMeanDT = ibooker.book1D("hLocalYMeanDT",
67  "Distribution of absolute MEAN Local Y (cm) residuals for DT;<Y> (cm);number of chambers", 100, 0, meanPositionRange);
68 
69  hLocalYRmsDT = ibooker.book1D("hLocalYRmsDT",
70  "Distribution of RMS Local Y (cm) residuals for DT;Y RMS (cm);number of chambers", 100, 0, rmsPositionRange);
71 
72  hLocalPhiMeanDT = ibooker.book1D("hLocalPhiMeanDT",
73  "Distribution of absolute MEAN #phi (rad) residuals for DT;<#phi>(rad);number of chambers", 100, 0, meanAngleRange);
74 
75  hLocalPhiRmsDT = ibooker.book1D("hLocalPhiRmsDT",
76  "Distribution of RMS #phi (rad) residuals for DT;#phi RMS (rad);number of chambers", 100, 0, rmsAngleRange);
77 
78  hLocalThetaMeanDT = ibooker.book1D("hLocalThetaMeanDT",
79  "Distribution of absolute MEAN #theta (rad) residuals for DT;<#theta>(rad);number of chambers", 100, 0, meanAngleRange);
80 
81  hLocalThetaRmsDT = ibooker.book1D("hLocalThetaRmsDT",
82  "Distribution of RMS #theta (rad) residuals for DT;#theta RMS (rad);number of chambers", 100, 0, rmsAngleRange);
83 
96 
97  }
98 
99  if (doCSC) {
100 
101  ibooker.setCurrentFolder(topFolder.str()+"/CSC");
102  hLocalPositionCSC = ibooker.book2D("hLocalPositionCSC",
103  "Local CSC position (cm) absolute MEAN residuals;Sector;;cm", 36, 1, 37, 40, 0, 40);
104 
105  hLocalAngleCSC = ibooker.book2D("hLocalAngleCSC",
106  "Local CSC angle (rad) absolute MEAN residuals;Sector;;rad", 36, 1, 37, 40, 0, 40);
107 
108  hLocalPositionRmsCSC = ibooker.book2D("hLocalPositionRmsCSC",
109  "Local CSC position (cm) RMS residuals;Sector;;cm", 36, 1, 37, 40, 0, 40);
110 
111  hLocalAngleRmsCSC = ibooker.book2D("hLocalAngleRmsCSC",
112  "Local CSC angle (rad) RMS residuals;Sector;;rad", 36, 1, 37, 40, 0, 40);
113 
114  hLocalXMeanCSC = ibooker.book1D("hLocalXMeanCSC",
115  "Distribution of absolute MEAN Local X (cm) residuals for CSC;<X> (cm);number of chambers", 100, 0, meanPositionRange);
116 
117  hLocalXRmsCSC = ibooker.book1D("hLocalXRmsCSC",
118  "Distribution of RMS Local X (cm) residuals for CSC;X RMS (cm);number of chambers", 100, 0, rmsPositionRange);
119 
120  hLocalYMeanCSC = ibooker.book1D("hLocalYMeanCSC",
121  "Distribution of absolute MEAN Local Y (cm) residuals for CSC;<Y> (cm);number of chambers", 100, 0, meanPositionRange);
122 
123  hLocalYRmsCSC = ibooker.book1D("hLocalYRmsCSC",
124  "Distribution of RMS Local Y (cm) residuals for CSC;Y RMS (cm);number of chambers", 100, 0, rmsPositionRange);
125 
126  hLocalPhiMeanCSC = ibooker.book1D("hLocalPhiMeanCSC",
127  "Distribution of absolute MEAN #phi (rad) residuals for CSC;<#phi>(rad);number of chambers", 100, 0, meanAngleRange);
128 
129  hLocalPhiRmsCSC = ibooker.book1D("hLocalPhiRmsCSC",
130  "Distribution of RMS #phi (rad) residuals for CSC;#phi RMS (rad);number of chambers", 100, 0, rmsAngleRange);
131 
132  hLocalThetaMeanCSC = ibooker.book1D("hLocalThetaMeanCSC",
133  "Distribution of absolute MEAN #theta (rad) residuals for CSC;<#theta>(rad);number of chambers", 100, 0, meanAngleRange);
134 
135  hLocalThetaRmsCSC = ibooker.book1D("hLocalThetaRmsCSC",
136  "Distribution of RMS #theta (rad) residuals for CSC;#theta RMS (rad);number of chambers", 100, 0, rmsAngleRange);
137 
143  hLocalXRmsCSC->Reset();
145  hLocalYRmsCSC->Reset();
150 
151  }
152 
153  LogTrace(metname)<<"[MuonAlignmentSummary] Saving the histos";
154 
155  char binLabel[40];
156 
157  for (int station = -4; station < 5; station++) {
158  if (doDT) {
159  if (station > 0) {
160 
161  for (int wheel = -2;wheel < 3; wheel++) {
162 
163  for (int sector = 1; sector < 15; sector++) {
164 
165  if (!((sector == 13 || sector == 14) && station != 4)) {
166 
167  std::stringstream Wheel; Wheel<<wheel;
168  std::stringstream Station; Station<<station;
169  std::stringstream Sector; Sector<<sector;
170 
171  std::string nameOfHistoLocalX="ResidualLocalX_W"+Wheel.str()+"MB"+Station.str()+"S"+Sector.str();
172  std::string nameOfHistoLocalPhi= "ResidualLocalPhi_W"+Wheel.str()+"MB"+Station.str()+"S"+Sector.str();
173  std::string nameOfHistoLocalTheta= "ResidualLocalTheta_W"+Wheel.str()+"MB"+Station.str()+"S"+Sector.str();
174  std::string nameOfHistoLocalY= "ResidualLocalY_W"+Wheel.str()+"MB"+Station.str()+"S"+Sector.str();
175 
176  std::string path= topFolder.str()+
177  "/DT/Wheel"+Wheel.str()+
178  "/Station"+Station.str()+
179  "/Sector"+Sector.str()+"/";
180 
181  std::string histo = path + nameOfHistoLocalX;
182 
183  Int_t nstation=station - 1;
184  Int_t nwheel=wheel+2;
185  MonitorElement * localX = igetter.get(histo);
186  if (localX) {
187 
188  Double_t Mean = localX->getMean();
189  Double_t Error = localX->getMeanError();
190 
191  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
192  hLocalPositionDT->setBinContent(sector, ybin, fabs(Mean));
193  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_X", wheel, station);
194  hLocalPositionDT->setBinLabel(ybin, binLabel, 2);
195  hLocalPositionRmsDT->setBinContent(sector, ybin, Error);
196  hLocalPositionRmsDT->setBinLabel(ybin, binLabel, 2);
197 
198  if (localX->getEntries() != 0){
199  hLocalXMeanDT->Fill(fabs(Mean));
200  hLocalXRmsDT->Fill(Error);}
201  }
202 
203  histo = path+nameOfHistoLocalPhi;
204  MonitorElement * localPhi = igetter.get(histo);
205  if (localPhi) {
206 
207  Double_t Mean = localPhi->getMean();
208  Double_t Error = localPhi->getMeanError();
209 
210  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
211  hLocalAngleDT->setBinContent(sector, ybin, fabs(Mean));
212  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_#phi", wheel, station);
213  hLocalAngleDT->setBinLabel(ybin ,binLabel, 2);
214  hLocalAngleRmsDT->setBinContent(sector, ybin, Error);
215  hLocalAngleRmsDT->setBinLabel(ybin, binLabel, 2);
216 
217  if (localPhi->getEntries() != 0) {
218  hLocalPhiMeanDT->Fill(fabs(Mean));
219  hLocalPhiRmsDT->Fill(Error);}
220  }
221 
222  if (station != 4) {
223 
224  histo=path+nameOfHistoLocalY;
225  MonitorElement * localY = igetter.get(histo);
226  if (localY) {
227 
228  Double_t Mean = localY->getMean();
229  Double_t Error = localY->getMeanError();
230 
231  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
232  hLocalPositionDT->setBinContent(sector,ybin,fabs(Mean));
233  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_Y", wheel, station);
234  hLocalPositionDT->setBinLabel(ybin, binLabel, 2);
235  hLocalPositionRmsDT->setBinContent(sector, ybin, Error);
236  hLocalPositionRmsDT->setBinLabel(ybin, binLabel, 2);
237  if (localY->getEntries() != 0) {
238  hLocalYMeanDT->Fill(fabs(Mean));
239  hLocalYRmsDT->Fill(Error);}
240  }
241  histo = path+nameOfHistoLocalTheta;
242  MonitorElement * localTheta = igetter.get(histo);
243  if (localTheta) {
244  Double_t Mean = localTheta->getMean();
245  Double_t Error = localTheta->getMeanError();
246 
247  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
248  hLocalAngleDT->setBinContent(sector, ybin, fabs(Mean));
249  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_#theta", wheel, station);
250  hLocalAngleDT->setBinLabel(ybin, binLabel, 2);
251  hLocalAngleRmsDT->setBinContent(sector, ybin, Error);
252  hLocalAngleRmsDT->setBinLabel(ybin, binLabel, 2);
253  if (localTheta->getEntries() != 0) {
254  hLocalThetaMeanDT->Fill(fabs(Mean));
255  hLocalThetaRmsDT->Fill(Error);}
256  }
257  }// station != 4
258  } //avoid non existing sectors
259  } //sector
260  } //wheel
261  } //station>0
262  }// doDT
263 
264  if (doCSC){
265  if (station != 0) {
266 
267  for (int ring = 1; ring < 5; ring++) {
268 
269  for (int chamber = 1; chamber < 37; chamber++){
270 
271  if ( !( ((abs(station)==2 || abs(station)==3 || abs(station)==4) && ring==1 && chamber>18) ||
272  ((abs(station)==2 || abs(station)==3 || abs(station)==4) && ring>2)) ) {
273  std::stringstream Ring; Ring<<ring;
274  std::stringstream Station; Station<<station;
275  std::stringstream Chamber; Chamber<<chamber;
276 
277  std::string nameOfHistoLocalX="ResidualLocalX_ME"+Station.str()+"R"+Ring.str()+"C"+Chamber.str();
278  std::string nameOfHistoLocalPhi= "ResidualLocalPhi_ME"+Station.str()+"R"+Ring.str()+"C"+Chamber.str();
279  std::string nameOfHistoLocalTheta= "ResidualLocalTheta_ME"+Station.str()+"R"+Ring.str()+"C"+Chamber.str();
280  std::string nameOfHistoLocalY= "ResidualLocalY_ME"+Station.str()+"R"+Ring.str()+"C"+Chamber.str();
281 
282  std::string path = topFolder.str()+
283  "/CSC/Station"+Station.str()+
284  "/Ring"+Ring.str()+
285  "/Chamber"+Chamber.str()+"/";
286 
287  Int_t ybin = abs(station) * 2 + ring;
288  if (abs(station) == 1) ybin = ring;
289  if (station > 0) ybin = ybin + 10;
290  else ybin = 11 - ybin;
291  std::string histo = path + nameOfHistoLocalX;
292  MonitorElement * localX = igetter.get(histo);
293  if (localX) {
294 
295  Double_t Mean=localX->getMean();
296  Double_t Error=localX->getMeanError();
297 
298  Int_t ybin2= 2 * ybin - 1;
299  hLocalPositionCSC->setBinContent(chamber,ybin2,fabs(Mean));
300  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_X", station, ring);
301  hLocalPositionCSC->setBinLabel(ybin2, binLabel, 2);
302  hLocalPositionRmsCSC->setBinContent(chamber, ybin2, Error);
303  hLocalPositionRmsCSC->setBinLabel(ybin2, binLabel, 2);
304  if (localX->getEntries() != 0) {
305  hLocalXMeanCSC->Fill(fabs(Mean));
306  hLocalXRmsCSC->Fill(Error);}
307  }
308  histo = path + nameOfHistoLocalPhi;
309 
310  MonitorElement * localPhi = igetter.get(histo);
311  if (localPhi) {
312 
313  Double_t Mean=localPhi->getMean();
314  Double_t Error=localPhi->getMeanError();
315 
316  Int_t ybin2 = 2 * ybin - 1;
317  hLocalAngleCSC->setBinContent(chamber, ybin2, fabs(Mean));
318  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_#phi", station, ring);
319  hLocalAngleCSC->setBinLabel(ybin2, binLabel, 2);
320  hLocalAngleRmsCSC->setBinContent(chamber, ybin2, Error);
321  hLocalAngleRmsCSC->setBinLabel(ybin2, binLabel, 2);
322  if (localPhi->getEntries() != 0){
323  hLocalPhiMeanCSC->Fill(fabs(Mean));
324  hLocalPhiRmsCSC->Fill(Error);}
325  }
326  histo = path + nameOfHistoLocalTheta;
327  MonitorElement * localTheta = igetter.get(histo);
328  if (localTheta) {
329 
330  Double_t Mean = localTheta->getMean();
331  Double_t Error = localTheta->getMeanError();
332 
333  Int_t ybin2 = 2 * ybin;
334  hLocalAngleCSC->setBinContent(chamber, ybin2, fabs(Mean));
335  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_#theta", station, ring);
336  hLocalAngleCSC->setBinLabel(ybin2, binLabel, 2);
337  hLocalAngleRmsCSC->setBinContent(chamber, ybin2, Error);
338  hLocalAngleRmsCSC->setBinLabel(ybin2, binLabel, 2);
339  if (localTheta->getEntries() != 0) {
340  hLocalThetaMeanCSC->Fill(fabs(Mean));
341  hLocalThetaRmsCSC->Fill(Error);}
342 
343  }
344  histo = path + nameOfHistoLocalY;
345 
346  MonitorElement * localY = igetter.get(histo);
347  if (localY) {
348 
349  Double_t Mean=localY->getMean();
350  Double_t Error=localY->getMeanError();
351 
352  Int_t ybin2 = 2 * ybin;
353  hLocalPositionCSC->setBinContent(chamber, ybin2, fabs(Mean));
354  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_Y", station, ring);
355  hLocalPositionCSC->setBinLabel(ybin2, binLabel, 2);
356  hLocalPositionRmsCSC->setBinContent(chamber, ybin2, Error);
357  hLocalPositionRmsCSC->setBinLabel(ybin2, binLabel, 2);
358  if (localY->getEntries() != 0) {
359  hLocalYMeanCSC->Fill(fabs(Mean));
360  hLocalYRmsCSC->Fill(Error);}
361  }
362  } //avoid non existing rings
363  } //chamber
364  } //ring
365  } // station!=0
366  }// doCSC
367  } // loop on stations
368 }
edm::ErrorSummaryEntry Error
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:302
MonitorElement * hLocalPositionRmsDT
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * hLocalAngleRmsDT
constexpr uint16_t localY(uint16_t py)
double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
double getMeanError(int axis=1) const
void Fill(long long x)
MonitorElement * hLocalYRmsDT
MonitorElement * hLocalPositionRmsCSC
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:118
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * hLocalThetaRmsDT
MonitorElement * hLocalAngleRmsCSC
MonitorElement * hLocalPhiMeanCSC
MonitorElement * hLocalYRmsCSC
void Reset()
reset ME (ie. contents, errors, etc)
MonitorElement * hLocalThetaRmsCSC
#define LogTrace(id)
MonitorElement * hLocalXMeanCSC
MonitorElement * hLocalXRmsCSC
MonitorElement * hLocalThetaMeanCSC
MonitorElement * hLocalPhiRmsDT
MonitorElement * hLocalYMeanCSC
MonitorElement * hLocalThetaMeanDT
double getEntries() const
get # of entries
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:136
constexpr uint16_t localX(uint16_t px)
MonitorElement * hLocalPhiMeanDT
MonitorElement * hLocalAngleCSC
MonitorElement * hLocalPhiRmsCSC
MonitorElement * hLocalPositionDT
MonitorElement * hLocalXRmsDT
std::stringstream topFolder
MonitorElement * hLocalYMeanDT
MonitorElement * hLocalXMeanDT
MonitorElement * hLocalPositionCSC
MonitorElement * hLocalAngleDT

Member Data Documentation

bool MuonAlignmentSummary::doCSC
private

Definition at line 87 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob(), and MuonAlignmentSummary().

bool MuonAlignmentSummary::doDT
private

Definition at line 87 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob(), and MuonAlignmentSummary().

MonitorElement* MuonAlignmentSummary::hLocalAngleCSC
private

Definition at line 66 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalAngleDT
private

Definition at line 52 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalAngleRmsCSC
private

Definition at line 67 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalAngleRmsDT
private

Definition at line 53 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalPhiMeanCSC
private

Definition at line 73 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalPhiMeanDT
private

Definition at line 59 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalPhiRmsCSC
private

Definition at line 74 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalPhiRmsDT
private

Definition at line 60 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalPositionCSC
private

Definition at line 64 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalPositionDT
private

Definition at line 50 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalPositionRmsCSC
private

Definition at line 65 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalPositionRmsDT
private

Definition at line 51 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalThetaMeanCSC
private

Definition at line 75 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalThetaMeanDT
private

Definition at line 61 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalThetaRmsCSC
private

Definition at line 76 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalThetaRmsDT
private

Definition at line 62 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalXMeanCSC
private

Definition at line 69 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalXMeanDT
private

Definition at line 55 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalXRmsCSC
private

Definition at line 70 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalXRmsDT
private

Definition at line 56 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalYMeanCSC
private

Definition at line 71 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalYMeanDT
private

Definition at line 57 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalYRmsCSC
private

Definition at line 72 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

MonitorElement* MuonAlignmentSummary::hLocalYRmsDT
private

Definition at line 58 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

double MuonAlignmentSummary::meanAngleRange
private

Definition at line 84 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob(), and MuonAlignmentSummary().

double MuonAlignmentSummary::meanPositionRange
private

Definition at line 84 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob(), and MuonAlignmentSummary().

std::string MuonAlignmentSummary::MEFolderName
private

Definition at line 90 of file MuonAlignmentSummary.h.

Referenced by MuonAlignmentSummary().

std::string MuonAlignmentSummary::metname
private

Definition at line 81 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob().

edm::ParameterSet MuonAlignmentSummary::parameters
private
double MuonAlignmentSummary::rmsAngleRange
private

Definition at line 84 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob(), and MuonAlignmentSummary().

double MuonAlignmentSummary::rmsPositionRange
private

Definition at line 84 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob(), and MuonAlignmentSummary().

std::stringstream MuonAlignmentSummary::topFolder
private

Definition at line 91 of file MuonAlignmentSummary.h.

Referenced by dqmEndJob(), and MuonAlignmentSummary().