CMS 3D CMS Logo

SiStripMonitorCluster.cc
Go to the documentation of this file.
1 
2 // -*- C++ -*-
3 // Package: SiStripMonitorCluster
4 // Class: SiStripMonitorCluster
8 // Original Author: Dorian Kcira
9 // Created: Wed Feb 1 16:42:34 CET 2006
10 #include <cmath>
11 #include <fstream>
12 #include <numeric>
13 #include <vector>
18 
19 #include "TNamed.h"
20 
32 
35 
37 
38 #include <iostream>
39 #include "TMath.h"
40 
41 //--------------------------------------------------------------------------------------------
43  : conf_(iConfig),
44  show_mechanical_structure_view(true),
45  show_readout_view(false),
46  show_control_view(false),
47  select_all_detectors(false),
48  reset_each_run(false),
49  m_cacheID_(0),
50  qualityLabel_{conf_.getParameter<std::string>("StripQualityLabel")},
51  trackerTopologyRunToken_{esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>()},
52  tkDetMapToken_{esConsumes<TkDetMap, TrackerTopologyRcd, edm::Transition::BeginRun>()},
53  siStripDetCablingRunToken_{esConsumes<SiStripDetCabling, SiStripDetCablingRcd, edm::Transition::BeginRun>()},
54  trackerTopologyEventToken_{esConsumes<TrackerTopology, TrackerTopologyRcd>()},
55  siStripNoisesToken_{esConsumes<SiStripNoises, SiStripNoisesRcd>()},
56  siStripGainToken_{esConsumes<SiStripGain, SiStripGainRcd>()},
57  siStripQualityToken_{esConsumes<SiStripQuality, SiStripQualityRcd>(edm::ESInputTag("", qualityLabel_))},
58  siStripDetCablingEventToken_{esConsumes<SiStripDetCabling, SiStripDetCablingRcd>()} {
59  // initialize
60  passBPTXfilter_ = true;
61 
62  // initialize GenericTriggerEventFlag by specific configuration
63  // in this way, one can set specific selections for different MEs
64  genTriggerEventFlagBPTXfilter_ =
65  new GenericTriggerEventFlag(iConfig.getParameter<edm::ParameterSet>("BPTXfilter"), consumesCollector(), *this);
66  genTriggerEventFlagPixelDCSfilter_ = new GenericTriggerEventFlag(
67  iConfig.getParameter<edm::ParameterSet>("PixelDCSfilter"), consumesCollector(), *this);
68  genTriggerEventFlagStripDCSfilter_ = new GenericTriggerEventFlag(
69  iConfig.getParameter<edm::ParameterSet>("StripDCSfilter"), consumesCollector(), *this);
70 
71  firstEvent = -1;
72  eventNb = 0;
73 
74  // Detector Partitions
75  SubDetPhasePartMap["TIB"] = "TI";
76  SubDetPhasePartMap["TID__MINUS"] = "TI";
77  SubDetPhasePartMap["TID__PLUS"] = "TI";
78  SubDetPhasePartMap["TOB"] = "TO";
79  SubDetPhasePartMap["TEC__MINUS"] = "TM";
80  SubDetPhasePartMap["TEC__PLUS"] = "TP";
81 
82  // get on/off option for every cluster from cfi
83  edm::ParameterSet ParametersnClusters = conf_.getParameter<edm::ParameterSet>("TH1nClusters");
84  layerswitchncluson = ParametersnClusters.getParameter<bool>("layerswitchon");
85  moduleswitchncluson = ParametersnClusters.getParameter<bool>("moduleswitchon");
86 
87  edm::ParameterSet ParametersClusterCharge = conf_.getParameter<edm::ParameterSet>("TH1ClusterCharge");
88  layerswitchcluschargeon = ParametersClusterCharge.getParameter<bool>("layerswitchon");
89  moduleswitchcluschargeon = ParametersClusterCharge.getParameter<bool>("moduleswitchon");
90  subdetswitchcluschargeon = ParametersClusterCharge.getParameter<bool>("subdetswitchon");
91 
92  edm::ParameterSet ParametersClusterStoN = conf_.getParameter<edm::ParameterSet>("TH1ClusterStoN");
93  layerswitchclusstonon = ParametersClusterStoN.getParameter<bool>("layerswitchon");
94  moduleswitchclusstonon = ParametersClusterStoN.getParameter<bool>("moduleswitchon");
95 
96  edm::ParameterSet ParametersClusterStoNVsPos = conf_.getParameter<edm::ParameterSet>("TH1ClusterStoNVsPos");
97  layerswitchclusstonVsposon = ParametersClusterStoNVsPos.getParameter<bool>("layerswitchon");
98  moduleswitchclusstonVsposon = ParametersClusterStoNVsPos.getParameter<bool>("moduleswitchon");
99 
100  edm::ParameterSet ParametersClusterPos = conf_.getParameter<edm::ParameterSet>("TH1ClusterPos");
101  layerswitchclusposon = ParametersClusterPos.getParameter<bool>("layerswitchon");
102  moduleswitchclusposon = ParametersClusterPos.getParameter<bool>("moduleswitchon");
103 
104  edm::ParameterSet ParametersClusterDigiPos = conf_.getParameter<edm::ParameterSet>("TH1ClusterDigiPos");
105  layerswitchclusdigiposon = ParametersClusterDigiPos.getParameter<bool>("layerswitchon");
106  moduleswitchclusdigiposon = ParametersClusterDigiPos.getParameter<bool>("moduleswitchon");
107 
108  edm::ParameterSet ParametersClusterNoise = conf_.getParameter<edm::ParameterSet>("TH1ClusterNoise");
109  layerswitchclusnoiseon = ParametersClusterNoise.getParameter<bool>("layerswitchon");
110  moduleswitchclusnoiseon = ParametersClusterNoise.getParameter<bool>("moduleswitchon");
111 
112  edm::ParameterSet ParametersClusterWidth = conf_.getParameter<edm::ParameterSet>("TH1ClusterWidth");
113  layerswitchcluswidthon = ParametersClusterWidth.getParameter<bool>("layerswitchon");
114  moduleswitchcluswidthon = ParametersClusterWidth.getParameter<bool>("moduleswitchon");
115  subdetswitchcluswidthon = ParametersClusterWidth.getParameter<bool>("subdetswitchon");
116 
117  edm::ParameterSet ParametersModuleLocalOccupancy = conf_.getParameter<edm::ParameterSet>("TH1ModuleLocalOccupancy");
118  layerswitchlocaloccupancy = ParametersModuleLocalOccupancy.getParameter<bool>("layerswitchon");
119  moduleswitchlocaloccupancy = ParametersModuleLocalOccupancy.getParameter<bool>("moduleswitchon");
120 
121  edm::ParameterSet ParametersNrOfClusterizedStrips = conf_.getParameter<edm::ParameterSet>("TH1NrOfClusterizedStrips");
122  layerswitchnrclusterizedstrip = ParametersNrOfClusterizedStrips.getParameter<bool>("layerswitchon");
123  moduleswitchnrclusterizedstrip = ParametersNrOfClusterizedStrips.getParameter<bool>("moduleswitchon");
124 
125  edm::ParameterSet ParametersClusterProf = conf_.getParameter<edm::ParameterSet>("TProfNumberOfCluster");
126  layerswitchnumclusterprofon = ParametersClusterProf.getParameter<bool>("layerswitchon");
127 
128  edm::ParameterSet ParametersClusterWidthProf = conf_.getParameter<edm::ParameterSet>("TProfClusterWidth");
129  layerswitchclusterwidthprofon = ParametersClusterWidthProf.getParameter<bool>("layerswitchon");
130 
131  edm::ParameterSet ParametersTotClusterProf = conf_.getParameter<edm::ParameterSet>("TProfTotalNumberOfClusters");
132  subdetswitchtotclusprofon = ParametersTotClusterProf.getParameter<bool>("subdetswitchon");
133 
134  edm::ParameterSet ParametersTotClusterTH1 = conf_.getParameter<edm::ParameterSet>("TH1TotalNumberOfClusters");
135  subdetswitchtotclusth1on = ParametersTotClusterTH1.getParameter<bool>("subdetswitchon");
136 
137  edm::ParameterSet ParametersClusterApvProf = conf_.getParameter<edm::ParameterSet>("TProfClustersApvCycle");
138  subdetswitchapvcycleprofon = ParametersClusterApvProf.getParameter<bool>("subdetswitchon");
139 
140  edm::ParameterSet ParametersClustersApvTH2 = conf_.getParameter<edm::ParameterSet>("TH2ClustersApvCycle");
141  subdetswitchapvcycleth2on = ParametersClustersApvTH2.getParameter<bool>("subdetswitchon");
142 
143  edm::ParameterSet ParametersApvCycleDBxProf2 = conf_.getParameter<edm::ParameterSet>("TProf2ApvCycleVsDBx");
144  subdetswitchapvcycledbxprof2on = ParametersApvCycleDBxProf2.getParameter<bool>("subdetswitchon");
145 
146  edm::ParameterSet ParametersDBxCycleProf = conf_.getParameter<edm::ParameterSet>("TProfClustersVsDBxCycle");
147  subdetswitchdbxcycleprofon = ParametersDBxCycleProf.getParameter<bool>("subdetswitchon");
148 
149  edm::ParameterSet ParametersCStripVsCPix = conf_.getParameter<edm::ParameterSet>("TH2CStripVsCpixel");
150  globalswitchcstripvscpix = ParametersCStripVsCPix.getParameter<bool>("globalswitchon");
151 
152  edm::ParameterSet ParametersMultiplicityRegionsTH1 = conf_.getParameter<edm::ParameterSet>("TH1MultiplicityRegions");
153  globalswitchMultiRegions = ParametersMultiplicityRegionsTH1.getParameter<bool>("globalswitchon");
154 
155  edm::ParameterSet ParametersApvCycleVsDBxGlobalTH2 = conf_.getParameter<edm::ParameterSet>("TH2ApvCycleVsDBxGlobal");
156  globalswitchapvcycledbxth2on = ParametersApvCycleVsDBxGlobalTH2.getParameter<bool>("globalswitchon");
157 
158  edm::ParameterSet ParametersNoiseStrip2ApvCycle = conf_.getParameter<edm::ParameterSet>("TH1StripNoise2ApvCycle");
159  globalswitchstripnoise2apvcycle = ParametersNoiseStrip2ApvCycle.getParameter<bool>("globalswitchon");
160 
161  edm::ParameterSet ParametersNoiseStrip3ApvCycle = conf_.getParameter<edm::ParameterSet>("TH1StripNoise3ApvCycle");
162  globalswitchstripnoise3apvcycle = ParametersNoiseStrip3ApvCycle.getParameter<bool>("globalswitchon");
163 
164  edm::ParameterSet ParametersMainDiagonalPosition = conf_.getParameter<edm::ParameterSet>("TH1MainDiagonalPosition");
165  globalswitchmaindiagonalposition = ParametersMainDiagonalPosition.getParameter<bool>("globalswitchon");
166 
167  edm::ParameterSet ClusterMultiplicityRegions = conf_.getParameter<edm::ParameterSet>("MultiplicityRegions");
168  k0 = ClusterMultiplicityRegions.getParameter<double>("k0");
169  q0 = ClusterMultiplicityRegions.getParameter<double>("q0");
170  dk0 = ClusterMultiplicityRegions.getParameter<double>("dk0");
171  maxClus = ClusterMultiplicityRegions.getParameter<double>("MaxClus");
172  minPix = ClusterMultiplicityRegions.getParameter<double>("MinPix");
173 
174  edm::ParameterSet ParametersNclusVsCycleTimeProf2D = conf_.getParameter<edm::ParameterSet>("NclusVsCycleTimeProf2D");
175  globalswitchnclusvscycletimeprof2don = ParametersNclusVsCycleTimeProf2D.getParameter<bool>("globalswitchon");
176 
177  edm::ParameterSet ParametersFEDCluster = conf_.getParameter<edm::ParameterSet>("TProfNClustersFED");
178  globalswitchFEDCluster = ParametersFEDCluster.getParameter<bool>("globalswitchon");
179 
180  edm::ParameterSet ParametersClusWidthVsAmpTH2 = conf_.getParameter<edm::ParameterSet>("ClusWidthVsAmpTH2");
181  clusterWidth_vs_amplitude_on = ParametersClusWidthVsAmpTH2.getParameter<bool>("globalswitchon");
182  layer_clusterWidth_vs_amplitude_on = ParametersClusWidthVsAmpTH2.getParameter<bool>("layerswitchon");
183  subdet_clusterWidth_vs_amplitude_on = ParametersClusWidthVsAmpTH2.getParameter<bool>("subdetswitchon");
184  module_clusterWidth_vs_amplitude_on = ParametersClusWidthVsAmpTH2.getParameter<bool>("moduleswitchon");
185 
186  clustertkhistomapon = conf_.getParameter<bool>("TkHistoMap_On");
187  clusterchtkhistomapon = conf_.getParameter<bool>("ClusterChTkHistoMap_On");
188  createTrendMEs = conf_.getParameter<bool>("CreateTrendMEs");
189  trendVs10Ls_ = conf_.getParameter<bool>("TrendVs10LS");
190  Mod_On_ = conf_.getParameter<bool>("Mod_On");
191  ClusterHisto_ = conf_.getParameter<bool>("ClusterHisto");
192 
193  topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
194 
195  // Poducer name of input StripClusterCollection
196  clusterProducerStripToken_ =
197  consumes<edmNew::DetSetVector<SiStripCluster> >(conf_.getParameter<edm::InputTag>("ClusterProducerStrip"));
198  clusterProducerPixToken_ =
199  consumes<edmNew::DetSetVector<SiPixelCluster> >(conf_.getParameter<edm::InputTag>("ClusterProducerPix"));
200  /*
201  clusterProducerStrip_ =
202  conf_.getParameter<edm::InputTag>("ClusterProducerStrip"); clusterProducerPix_
203  = conf_.getParameter<edm::InputTag>("ClusterProducerPix");
204  */
205  // cluster quality conditions
206  edm::ParameterSet cluster_condition = conf_.getParameter<edm::ParameterSet>("ClusterConditions");
207  applyClusterQuality_ = cluster_condition.getParameter<bool>("On");
208  sToNLowerLimit_ = cluster_condition.getParameter<double>("minStoN");
209  sToNUpperLimit_ = cluster_condition.getParameter<double>("maxStoN");
210  widthLowerLimit_ = cluster_condition.getParameter<double>("minWidth");
211  widthUpperLimit_ = cluster_condition.getParameter<double>("maxWidth");
212 
213  // Event History Producer
214  // historyProducer_ = conf_.getParameter<edm::InputTag>("HistoryProducer");
215  historyProducerToken_ = consumes<EventWithHistory>(conf_.getParameter<edm::InputTag>("HistoryProducer"));
216  // Apv Phase Producer
217  // apvPhaseProducer_ = conf_.getParameter<edm::InputTag>("ApvPhaseProducer");
218  apvPhaseProducerToken_ = consumes<APVCyclePhaseCollection>(conf_.getParameter<edm::InputTag>("ApvPhaseProducer"));
219  // Create DCS Status
220  bool checkDCS = conf_.getParameter<bool>("UseDCSFiltering");
221  if (checkDCS)
222  dcsStatus_ = new SiStripDCSStatus(consumesCollector());
223  else
224  dcsStatus_ = nullptr;
225 }
226 
228  if (dcsStatus_)
229  delete dcsStatus_;
236 }
237 
238 //--------------------------------------------------------------------------------------------
240  // Initialize the GenericTriggerEventFlag
247 }
248 
249 //--------------------------------------------------------------------------------------------
252  const TrackerTopology* const tTopo = &es.getData(trackerTopologyRunToken_);
253  const TkDetMap* tkDetMap = &es.getData(tkDetMapToken_);
254  const SiStripDetCabling& siStripDetCabling = es.getData(siStripDetCablingRunToken_);
255 
256  // get list of active detectors from SiStripDetCabling
257  std::vector<uint32_t> activeDets;
258  siStripDetCabling.addActiveDetectorsRawIds(activeDets);
259 
260  SiStripFolderOrganizer folder_organizer;
261  folder_organizer.setSiStripFolderName(topFolderName_);
262  folder_organizer.setSiStripFolder();
263 
264  // Create TkHistoMap for Cluster
265  if (clustertkhistomapon) {
266  // std::cout << "[SiStripMonitorCluster::createMEs] topFolderName_: "
267  // << topFolderName_ << " ";
268  if ((topFolderName_ == "SiStrip") or (std::string::npos != topFolderName_.find("HLT")))
269  tkmapcluster =
270  std::make_unique<TkHistoMap>(tkDetMap, ibooker, topFolderName_, "TkHMap_NumberOfCluster", 0., true);
271  else
272  tkmapcluster = std::make_unique<TkHistoMap>(
273  tkDetMap, ibooker, topFolderName_ + "/TkHistoMap", "TkHMap_NumberOfCluster", 0., false);
274  }
275  if (clusterchtkhistomapon) {
276  if ((topFolderName_ == "SiStrip") or (std::string::npos != topFolderName_.find("HLT")))
278  std::make_unique<TkHistoMap>(tkDetMap, ibooker, topFolderName_, "TkHMap_ClusterCharge", 0., true);
279  else
280  tkmapclusterch = std::make_unique<TkHistoMap>(
281  tkDetMap, ibooker, topFolderName_ + "/TkHistoMap", "TkHMap_ClusterCharge", 0., false);
282  }
283 
284  // loop over detectors and book MEs
285  edm::LogInfo("SiStripTkDQM|SiStripMonitorCluster") << "nr. of activeDets: " << activeDets.size();
286  for (std::vector<uint32_t>::iterator detid_iterator = activeDets.begin(); detid_iterator != activeDets.end();
287  detid_iterator++) {
288  uint32_t detid = (*detid_iterator);
289  // remove any eventual zero elements - there should be none, but just in
290  // case
291  if (detid == 0) {
292  activeDets.erase(detid_iterator);
293  continue;
294  }
295 
296  if (Mod_On_) {
297  ModMEs mod_single;
298  // set appropriate folder using SiStripFolderOrganizer
299  folder_organizer.setDetectorFolder(detid, tTopo); // pass the detid to this method
300  if (reset_each_run)
301  ResetModuleMEs(detid);
302  createModuleMEs(mod_single, detid, ibooker, siStripDetCabling);
303  // append to ModuleMEsMap
304  ModuleMEsMap.insert(std::make_pair(detid, mod_single));
305  }
306 
307  // Create Layer Level MEs if they are not created already
308  std::pair<std::string, int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid, tTopo);
309  SiStripHistoId hidmanager;
310  std::string label = hidmanager.getSubdetid(detid, tTopo, false);
311 
312  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(label);
313  if (iLayerME == LayerMEsMap.end()) {
314  // get detids for the layer
315  int32_t lnumber = det_layer_pair.second;
316  std::vector<uint32_t> layerDetIds;
317  if (det_layer_pair.first == "TIB") {
318  SiStripSubStructure::getTIBDetectors(activeDets, layerDetIds, tTopo, lnumber, 0, 0, 0);
319  } else if (det_layer_pair.first == "TOB") {
320  SiStripSubStructure::getTOBDetectors(activeDets, layerDetIds, tTopo, lnumber, 0, 0);
321  } else if (det_layer_pair.first == "TID" && lnumber > 0) {
322  SiStripSubStructure::getTIDDetectors(activeDets, layerDetIds, tTopo, 2, std::abs(lnumber), 0, 0);
323  } else if (det_layer_pair.first == "TID" && lnumber < 0) {
324  SiStripSubStructure::getTIDDetectors(activeDets, layerDetIds, tTopo, 1, std::abs(lnumber), 0, 0);
325  } else if (det_layer_pair.first == "TEC" && lnumber > 0) {
326  SiStripSubStructure::getTECDetectors(activeDets, layerDetIds, tTopo, 2, std::abs(lnumber), 0, 0, 0, 0);
327  } else if (det_layer_pair.first == "TEC" && lnumber < 0) {
328  SiStripSubStructure::getTECDetectors(activeDets, layerDetIds, tTopo, 1, std::abs(lnumber), 0, 0, 0, 0);
329  }
330  LayerDetMap[label] = layerDetIds;
331 
332  // book Layer MEs
333  folder_organizer.setLayerFolder(detid, tTopo, det_layer_pair.second);
334  createLayerMEs(label, layerDetIds.size(), ibooker);
335  }
336  // book sub-detector plots
337  auto sdet_pair = folder_organizer.getSubDetFolderAndTag(detid, tTopo);
338  if (SubDetMEsMap.find(sdet_pair.second) == SubDetMEsMap.end()) {
339  ibooker.setCurrentFolder(sdet_pair.first);
340 
341  createSubDetMEs(sdet_pair.second, ibooker);
342  }
343  } // end of loop over detectors
344 
345  // Create Global Histogram
347  ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/");
348  edm::ParameterSet GlobalTH2Parameters = conf_.getParameter<edm::ParameterSet>("TH2ApvCycleVsDBxGlobal");
349  std::string HistoName = "DeltaBx_vs_ApvCycle";
351  HistoName,
352  GlobalTH2Parameters.getParameter<int32_t>("Nbinsx"),
353  GlobalTH2Parameters.getParameter<double>("xmin"),
354  GlobalTH2Parameters.getParameter<double>("xmax"),
355  GlobalTH2Parameters.getParameter<int32_t>("Nbinsy"),
356  GlobalTH2Parameters.getParameter<double>("ymin"),
357  GlobalTH2Parameters.getParameter<double>("ymax"));
358  GlobalApvCycleDBxTH2->setAxisTitle("APV Cycle (Corrected Absolute Bx % 70)", 1);
359  GlobalApvCycleDBxTH2->setAxisTitle("Delta Bunch Crossing Cycle", 2);
360 
361  // plot DeltaBX ***************************
362  edm::ParameterSet GlobalTH1Parameters = conf_.getParameter<edm::ParameterSet>("TH1DBxGlobal");
363  HistoName = "DeltaBx";
364  GlobalDBxTH1 = ibooker.book1D(HistoName,
365  HistoName,
366  GlobalTH1Parameters.getParameter<int32_t>("Nbinsx"),
367  GlobalTH1Parameters.getParameter<double>("xmin"),
368  GlobalTH1Parameters.getParameter<double>("xmax"));
369  GlobalDBxTH1->setAxisTitle("Delta Bunch Crossing", 1);
370 
371  // plot DeltaBXCycle ***************************
372  edm::ParameterSet DBxCycle = conf_.getParameter<edm::ParameterSet>("TH1DBxCycleGlobal");
373  HistoName = "DeltaBxCycle";
375  HistoName,
376  DBxCycle.getParameter<int32_t>("Nbinsx"),
377  DBxCycle.getParameter<double>("xmin"),
378  DBxCycle.getParameter<double>("xmax"));
379  GlobalDBxCycleTH1->setAxisTitle("Delta Bunch Crossing Cycle", 1);
380  }
381 
383  ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/");
384  edm::ParameterSet GlobalTH2Parameters = conf_.getParameter<edm::ParameterSet>("TH2CStripVsCpixel");
385  std::string HistoName = "StripClusVsPixClus";
387  HistoName,
388  GlobalTH2Parameters.getParameter<int32_t>("Nbinsx"),
389  GlobalTH2Parameters.getParameter<double>("xmin"),
390  GlobalTH2Parameters.getParameter<double>("xmax"),
391  GlobalTH2Parameters.getParameter<int32_t>("Nbinsy"),
392  GlobalTH2Parameters.getParameter<double>("ymin"),
393  GlobalTH2Parameters.getParameter<double>("ymax"));
394  GlobalCStripVsCpix->setAxisTitle("Strip Clusters", 1);
395  GlobalCStripVsCpix->setAxisTitle("Pix Clusters", 2);
396 
397  // Absolute Bunch Crossing ***********************
398  edm::ParameterSet GlobalTH1Parameters = conf_.getParameter<edm::ParameterSet>("TH1ABx_CSCP");
399  HistoName = "AbsoluteBx_CStripVsCpixel";
401  HistoName,
402  GlobalTH1Parameters.getParameter<int32_t>("Nbinsx"),
403  GlobalTH1Parameters.getParameter<double>("xmin"),
404  GlobalTH1Parameters.getParameter<double>("xmax"));
405  GlobalABXTH1_CSCP->setAxisTitle("Absolute Bunch Crossing", 1);
406  }
407 
409  ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/");
410  edm::ParameterSet GlobalTH2Parameters = conf_.getParameter<edm::ParameterSet>("TH1MultiplicityRegions");
411  std::string HistoName = "ClusterMultiplicityRegions";
413  HistoName,
414  GlobalTH2Parameters.getParameter<int32_t>("Nbinx"),
415  GlobalTH2Parameters.getParameter<double>("xmin"),
416  GlobalTH2Parameters.getParameter<double>("xmax"));
418  PixVsStripMultiplicityRegions->setBinLabel(1, "Main Diagonal");
419  PixVsStripMultiplicityRegions->setBinLabel(2, "Strip Noise");
420  PixVsStripMultiplicityRegions->setBinLabel(3, "High Strip Noise");
421  PixVsStripMultiplicityRegions->setBinLabel(4, "Beam Background");
422  PixVsStripMultiplicityRegions->setBinLabel(5, "No Strip Clusters");
423  }
424 
426  ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/");
427  edm::ParameterSet GlobalTH1Parameters = conf_.getParameter<edm::ParameterSet>("TH1MainDiagonalPosition");
428  std::string HistoName = "MainDiagonal Position";
430  HistoName,
431  GlobalTH1Parameters.getParameter<int32_t>("Nbinsx"),
432  GlobalTH1Parameters.getParameter<double>("xmin"),
433  GlobalTH1Parameters.getParameter<double>("xmax"));
434  GlobalMainDiagonalPosition->setAxisTitle("atan(NPix/(k*NStrip))");
435 
436  // PLOT MainDiagonalPosition_vs_BX ***************************
437  edm::ParameterSet GlobalTProfParameters = conf_.getParameter<edm::ParameterSet>("TProfMainDiagonalPosition");
438  HistoName = "MainDiagonalPosition_vs_BX";
440  HistoName,
441  GlobalTProfParameters.getParameter<int32_t>("Nbinsx"),
442  GlobalTProfParameters.getParameter<double>("xmin"),
443  GlobalTProfParameters.getParameter<double>("xmax"),
444  GlobalTProfParameters.getParameter<int32_t>("Nbinsy"),
445  GlobalTProfParameters.getParameter<double>("ymin"),
446  GlobalTProfParameters.getParameter<double>("ymax"));
447 
449  GlobalMainDiagonalPosition_vs_BX->setAxisTitle("tan^{-1}(NPix/k*NStrip))", 2);
450 
451  edm::ParameterSet GlobalTH2Parameters = conf_.getParameter<edm::ParameterSet>("TH2MainDiagonalPosition");
452  HistoName = "TH2MainDiagonalPosition_vs_BX";
454  HistoName,
455  GlobalTH2Parameters.getParameter<int32_t>("Nbinsx"),
456  GlobalTH2Parameters.getParameter<double>("xmin"),
457  GlobalTH2Parameters.getParameter<double>("xmax"),
458  GlobalTH2Parameters.getParameter<int32_t>("Nbinsy"),
459  GlobalTH2Parameters.getParameter<double>("ymin"),
460  GlobalTH2Parameters.getParameter<double>("ymax"));
462  GlobalTH2MainDiagonalPosition_vs_BX->setAxisTitle("tan^{-1}(NPix/k*NStrip))", 2);
463  }
464 
465  // TO BE ADDED !!!
466  /*
467  if ( globalswitchapvcycledbxth2on or globalswitchcstripvscpix or
468  globalswitchMultiRegions or ClusterHisto_ ) {
469  ibooker.setCurrentFolder(topFolderName_+"/MechanicalView/");
470  std::string HistoName = "BPTX rate";
471  BPTXrateTrend = ibooker.bookProfile(HistoName,HistoName, LSBin, LSMin,
472  LSMax, 0, 10000.,""); BPTXrateTrend->getTH1()->SetCanExtend(TH1::kAllAxes);
473  BPTXrateTrend->setAxisTitle("#Lumi section",1);
474  BPTXrateTrend->setAxisTitle("Number of BPTX events per LS",2);
475  }
476  */
477 
479  ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/");
480  edm::ParameterSet GlobalTH1Parameters = conf_.getParameter<edm::ParameterSet>("TH1StripNoise2ApvCycle");
481  std::string HistoName = "StripNoise_ApvCycle";
483  HistoName,
484  GlobalTH1Parameters.getParameter<int32_t>("Nbinsx"),
485  GlobalTH1Parameters.getParameter<double>("xmin"),
486  GlobalTH1Parameters.getParameter<double>("xmax"));
487  StripNoise2Cycle->setAxisTitle("APV Cycle");
488  }
489 
491  ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/");
492  edm::ParameterSet GlobalTH1Parameters = conf_.getParameter<edm::ParameterSet>("TH1StripNoise3ApvCycle");
493  std::string HistoName = "HighStripNoise_ApvCycle";
495  HistoName,
496  GlobalTH1Parameters.getParameter<int32_t>("Nbinsx"),
497  GlobalTH1Parameters.getParameter<double>("xmin"),
498  GlobalTH1Parameters.getParameter<double>("xmax"));
499  StripNoise3Cycle->setAxisTitle("APV Cycle");
500  }
501 
503  const char* HistoName = "StripClusVsBXandOrbit";
504  const char* HistoTitle =
505  "Strip cluster multiplicity vs BX mod(70) and Orbit;Event 1 BX "
506  "mod(70);time [Orb#]";
507  edm::ParameterSet ParametersNclusVsCycleTimeProf2D =
508  conf_.getParameter<edm::ParameterSet>("NclusVsCycleTimeProf2D");
510  HistoTitle,
511  ParametersNclusVsCycleTimeProf2D.getParameter<int32_t>("Nbins"),
512  ParametersNclusVsCycleTimeProf2D.getParameter<double>("xmin"),
513  ParametersNclusVsCycleTimeProf2D.getParameter<double>("xmax"),
514  ParametersNclusVsCycleTimeProf2D.getParameter<int32_t>("Nbinsy"),
515  ParametersNclusVsCycleTimeProf2D.getParameter<double>("ymin"),
516  ParametersNclusVsCycleTimeProf2D.getParameter<double>("ymax"),
517  0,
518  0);
520  NclusVsCycleTimeProf2D->getTH1()->SetCanExtend(TH1::kAllAxes);
521  }
523  ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/");
524  edm::ParameterSet ParametersClusWidthVsAmpTH2 = conf_.getParameter<edm::ParameterSet>("ClusWidthVsAmpTH2");
525  const char* HistoName = "ClusterWidths_vs_Amplitudes";
526  const char* HistoTitle =
527  "Cluster widths vs amplitudes;Amplitudes (integrated ADC "
528  "counts);Cluster widths";
530  HistoTitle,
531  ParametersClusWidthVsAmpTH2.getParameter<int32_t>("Nbinsx"),
532  ParametersClusWidthVsAmpTH2.getParameter<double>("xmin"),
533  ParametersClusWidthVsAmpTH2.getParameter<double>("xmax"),
534  ParametersClusWidthVsAmpTH2.getParameter<int32_t>("Nbinsy"),
535  ParametersClusWidthVsAmpTH2.getParameter<double>("ymin"),
536  ParametersClusWidthVsAmpTH2.getParameter<double>("ymax"));
537  }
538 
539  if (ClusterHisto_) {
540  ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/");
541  edm::ParameterSet PixelCluster = conf_.getParameter<edm::ParameterSet>("TH1NClusPx");
542  std::string HistoName = "NumberOfClustersInPixel";
544  HistoName,
545  PixelCluster.getParameter<int32_t>("Nbinsx"),
546  PixelCluster.getParameter<double>("xmin"),
547  PixelCluster.getParameter<double>("xmax"));
548  NumberOfPixelClus->setAxisTitle("# of Clusters in Pixel", 1);
549  NumberOfPixelClus->setAxisTitle("Number of Events", 2);
550  //
551  edm::ParameterSet StripCluster = conf_.getParameter<edm::ParameterSet>("TH1NClusStrip");
552  HistoName = "NumberOfClustersInStrip";
554  HistoName,
555  StripCluster.getParameter<int32_t>("Nbinsx"),
556  StripCluster.getParameter<double>("xmin"),
557  StripCluster.getParameter<double>("xmax"));
558  NumberOfStripClus->setAxisTitle("# of Clusters in Strip", 1);
559  NumberOfStripClus->setAxisTitle("Number of Events", 2);
560 
561  // NumberOfClustersinStrip vs BX PLOT ****************************
562  edm::ParameterSet StripClusterBX = conf_.getParameter<edm::ParameterSet>("TProfNClusStrip");
563  HistoName = "NumberOfClustersInStrip_vs_BX";
565  HistoName,
566  StripClusterBX.getParameter<int32_t>("Nbinsx"),
567  StripClusterBX.getParameter<double>("xmin"),
568  StripClusterBX.getParameter<double>("xmax"),
569  StripClusterBX.getParameter<int32_t>("Nbinsy"),
570  StripClusterBX.getParameter<double>("ymin"),
571  StripClusterBX.getParameter<double>("ymax"));
572 
573  NumberOfStripClus_vs_BX->setAxisTitle("Absolute BX", 1);
574  NumberOfStripClus_vs_BX->setAxisTitle("# of Clusters in Strip", 2);
575 
576  // NumberOfClustersinStrip vs BX PLOT ****************************
577  edm::ParameterSet PixelClusterBX = conf_.getParameter<edm::ParameterSet>("TProfNClusPixel");
578  HistoName = "NumberOfClustersInPixel_vs_BX";
580  HistoName,
581  PixelClusterBX.getParameter<int32_t>("Nbinsx"),
582  PixelClusterBX.getParameter<double>("xmin"),
583  PixelClusterBX.getParameter<double>("xmax"),
584  PixelClusterBX.getParameter<int32_t>("Nbinsy"),
585  PixelClusterBX.getParameter<double>("ymin"),
586  PixelClusterBX.getParameter<double>("ymax"));
587 
588  NumberOfPixelClus_vs_BX->setAxisTitle("Absolute BX", 1);
589  NumberOfPixelClus_vs_BX->setAxisTitle("# of Clusters in Pixel", 2);
590 
592  // Number of clusters per FED
593  edm::ParameterSet FEDCluster = conf_.getParameter<edm::ParameterSet>("TProfNClustersFED");
594  HistoName = "NumberOfClustersinFED_v_FEDID";
596  HistoName,
597  FEDCluster.getParameter<int32_t>("Nbinsx"),
598  FEDCluster.getParameter<double>("xmin"),
599  FEDCluster.getParameter<double>("xmax"),
600  FEDCluster.getParameter<int32_t>("Nbinsy"),
601  FEDCluster.getParameter<double>("ymin"),
602  FEDCluster.getParameter<double>("ymax"),
603  "");
604  NumberOfFEDClus->setAxisTitle("FED ID", 1);
605  NumberOfFEDClus->setAxisTitle("Mean # of Cluster in FED", 2);
606  }
607  }
608 
609  } // end of if
610 } // end of method
611 
612 //--------------------------------------------------------------------------------------------
613 
616  unsigned long long cacheID = es.get<SiStripDetCablingRcd>().cacheIdentifier();
617  if (m_cacheID_ != cacheID) {
618  m_cacheID_ = cacheID;
619  edm::LogInfo("SiStripMonitorCluster") << "SiStripMonitorCluster::bookHistograms: "
620  << " Creating MEs for new Cabling ";
621 
622  createMEs(es, ibooker);
623  }
624  } else if (reset_each_run) {
625  edm::LogInfo("SiStripMonitorCluster") << "SiStripMonitorCluster::bookHistograms: "
626  << " Resetting MEs ";
627  for (std::map<uint32_t, ModMEs>::const_iterator idet = ModuleMEsMap.begin(); idet != ModuleMEsMap.end(); idet++) {
628  ResetModuleMEs(idet->first);
629  }
630  }
631 }
632 
633 //--------------------------------------------------------------------------------------------
635  // Retrieve tracker topology from geometry
636  const TrackerTopology* const tTopo = &iSetup.getData(trackerTopologyEventToken_);
637 
638  // Filter out events if Trigger Filtering is requested
641  : true;
644  : true;
647  : true;
648  // std::cout << "passBPTXfilter_ ? " << passBPTXfilter_ << std::endl;
649 
650  // Filter out events if DCS Event if requested
651  bool passDCSFilter_ = !(dcsStatus_ && !dcsStatus_->getStatus(iEvent, iSetup));
652 
653  runNb = iEvent.id().run();
654  eventNb++;
655  trendVar = trendVs10Ls_ ? iEvent.orbitNumber() / (10 * 262144.0)
656  : iEvent.orbitNumber() / (1 * 262144.0); // 10 lumisection : lumisection
657 
658  int NPixClusters = 0, NStripClusters = 0, MultiplicityRegion = 0;
659  bool isPixValid = false;
660 
661  const SiStripNoises& siStripNoises = iSetup.getData(siStripNoisesToken_);
662  const SiStripGain& siStripGain = iSetup.getData(siStripGainToken_);
663  const SiStripQuality& siStripQuality = iSetup.getData(siStripQualityToken_);
664  const SiStripDetCabling& siStripDetCabling = iSetup.getData(siStripDetCablingEventToken_);
665 
666  // get collection of DetSetVector of clusters from Event
668  iEvent.getByToken(clusterProducerStripToken_, cluster_detsetvektor);
669 
670  // get pixel clusters
671  edm::Handle<edmNew::DetSetVector<SiPixelCluster> > cluster_detsetvektor_pix;
672  iEvent.getByToken(clusterProducerPixToken_, cluster_detsetvektor_pix);
673 
674  if (!cluster_detsetvektor.isValid())
675  return;
676 
677  const edmNew::DetSetVector<SiStripCluster>* StrC = cluster_detsetvektor.product();
678  NStripClusters = StrC->data().size();
679 
680  if (cluster_detsetvektor_pix.isValid()) {
681  const edmNew::DetSetVector<SiPixelCluster>* PixC = cluster_detsetvektor_pix.product();
682  NPixClusters = PixC->data().size();
683  isPixValid = true;
684  MultiplicityRegion = FindRegion(NStripClusters, NPixClusters);
685 
686  if (passBPTXfilter_ and passPixelDCSfilter_ and passStripDCSfilter_ and passDCSFilter_) {
688  GlobalCStripVsCpix->Fill(NStripClusters, NPixClusters);
689  if (globalswitchmaindiagonalposition && NStripClusters > 0)
690  GlobalMainDiagonalPosition->Fill(atan(NPixClusters / (k0 * NStripClusters)));
691 
693  PixVsStripMultiplicityRegions->Fill(MultiplicityRegion);
694  }
695 
696  if (ClusterHisto_ and passDCSFilter_) {
698  NumberOfPixelClus->Fill(NPixClusters);
700  NumberOfStripClus->Fill(NStripClusters);
701  }
702  }
703  // initialise # of clusters to zero
704  for (std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.begin(); iSubdet != SubDetMEsMap.end();
705  iSubdet++) {
706  iSubdet->second.totNClusters = 0;
707  }
708 
709  SiStripFolderOrganizer folder_organizer;
710  bool found_layer_me = false;
711  // Map of cumulative clusters per fed ID.
712  std::map<int, int> FEDID_v_clustersum;
713 
714  for (std::map<std::string, std::vector<uint32_t> >::const_iterator iterLayer = LayerDetMap.begin();
715  iterLayer != LayerDetMap.end();
716  iterLayer++) {
717  std::string layer_label = iterLayer->first;
718 
719  int ncluster_layer = 0;
720  std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(layer_label);
721 
722  // get Layer MEs
723  LayerMEs layer_single;
724  if (iLayerME != LayerMEsMap.end()) {
725  layer_single = iLayerME->second;
726  found_layer_me = true;
727  }
728 
729  int ncluster_ring[20] = {0};
730 
731  bool found_module_me = false;
732  uint16_t iDet = 0;
733  std::string subdet_label = "";
734  // loop over all modules in the layer
735  for (std::vector<uint32_t>::const_iterator iterDets = iterLayer->second.begin();
736  iterDets != iterLayer->second.end();
737  iterDets++) {
738  iDet++;
739  // detid and type of ME
740  uint32_t detid = (*iterDets);
741 
742  // Get SubDet label once
743  if (subdet_label.empty())
744  subdet_label = folder_organizer.getSubDetFolderAndTag(detid, tTopo).second;
745 
746  // DetId and corresponding set of MEs
747  ModMEs mod_single;
748  if (Mod_On_) {
749  std::map<uint32_t, ModMEs>::iterator imodME = ModuleMEsMap.find(detid);
750  if (imodME != ModuleMEsMap.end()) {
751  mod_single = imodME->second;
752  found_module_me = true;
753  }
754  } else
755  found_module_me = false;
756 
758  cluster_detsetvektor->find(detid); // search clusters of detid
759 
760  if (isearch == cluster_detsetvektor->end() and passDCSFilter_) {
761  if (found_module_me && moduleswitchncluson && (mod_single.NumberOfClusters)) {
762  (mod_single.NumberOfClusters)->Fill(0.); // no clusters for this
763  // detector module,fill
764  // histogram with 0
765  }
767  tkmapcluster->fill(detid, 0.);
769  tkmapclusterch->fill(detid, 0.);
770  if (found_layer_me && layerswitchnumclusterprofon)
771  layer_single.LayerNumberOfClusterProfile->Fill(iDet, 0.0);
772  }
773 
774  if (isearch == cluster_detsetvektor->end()) {
775  continue; // no clusters for this detid => jump to next step of loop
776  }
777 
778  // cluster_detset is a structure, cluster_detset.data is a
779  // std::vector<SiStripCluster>, cluster_detset.id is uint32_t
780  // edmNew::DetSet<SiStripCluster> cluster_detset =
781  // (*cluster_detsetvektor)[detid]; // the statement above makes sure there
782  // exists an element with 'detid'
783  edmNew::DetSet<SiStripCluster> cluster_detset = (*isearch);
784 
786  // Get all FED connections associated with given detID.
787  // All connections for a detid have same FED Id therefore one FEDID is
788  // associated with a given detID. Vector of constant FedChannelConnection
789  // objects to variable pointers.
790  std::vector<const FedChannelConnection*> fedConnections = siStripDetCabling.getConnections(detid);
791 
792  // Filling FED Id associated clusters map.
793 
794  int good_fcc_index = -999;
795  for (unsigned int x = 0; x < fedConnections.size(); x++) {
796  if (fedConnections[x] != nullptr) {
797  good_fcc_index = x;
798  break;
799  }
800  }
801  if (good_fcc_index != -999 && fedConnections[good_fcc_index] != nullptr) {
802  int temp_fedid = fedConnections[good_fcc_index]->fedId();
803  if (FEDID_v_clustersum.find(temp_fedid) != FEDID_v_clustersum.end()) {
804  if (cluster_detset.size() < 1000 && !cluster_detset.empty()) {
805  FEDID_v_clustersum[temp_fedid] = FEDID_v_clustersum.find(temp_fedid)->second + cluster_detset.size();
806  }
807  } else {
808  if (cluster_detset.size() < 1000 && !cluster_detset.empty()) {
809  FEDID_v_clustersum[temp_fedid] = cluster_detset.size();
810  }
811  }
812  } else {
813  edm::LogInfo("SiStripMonitorCluster") << "SiStripMonitorCluster::analyze WARNING! no good connections "
814  "for detid = "
815  << detid << endl;
816  }
818 
819  // Filling TkHistoMap with number of clusters for each module
820  if (clustertkhistomapon and passDCSFilter_) {
821  tkmapcluster->fill(detid, static_cast<float>(cluster_detset.size()));
822  }
823 
824  if (moduleswitchncluson && found_module_me && (mod_single.NumberOfClusters != nullptr) &&
825  passDCSFilter_) { // nr. of clusters per module
826  (mod_single.NumberOfClusters)->Fill(static_cast<float>(cluster_detset.size()));
827  }
828 
829  if (found_layer_me && layerswitchnumclusterprofon && passDCSFilter_)
830  layer_single.LayerNumberOfClusterProfile->Fill(iDet, static_cast<float>(cluster_detset.size()));
831  ncluster_layer += cluster_detset.size();
832 
833  short total_clusterized_strips = 0;
834 
835  SiStripNoises::Range detNoiseRange = siStripNoises.getRange(detid);
836  SiStripApvGain::Range detGainRange = siStripGain.getRange(detid);
837  SiStripQuality::Range qualityRange = siStripQuality.getRange(detid);
838 
839  for (edmNew::DetSet<SiStripCluster>::const_iterator clusterIter = cluster_detset.begin();
840  clusterIter != cluster_detset.end();
841  clusterIter++) {
842  const auto& ampls = clusterIter->amplitudes();
843  // cluster position
844  float cluster_position = clusterIter->barycenter();
845  // start defined as nr. of first strip beloning to the cluster
846  short cluster_start = clusterIter->firstStrip();
847  // width defined as nr. of strips that belong to cluster
848  short cluster_width = ampls.size();
849  // add nr of strips of this cluster to total nr. of clusterized strips
850  total_clusterized_strips = total_clusterized_strips + cluster_width;
851 
852  if (clusterchtkhistomapon and passDCSFilter_)
853  tkmapclusterch->fill(detid, static_cast<float>(clusterIter->charge()));
854 
855  // cluster signal and noise from the amplitudes
856  float cluster_signal = 0.0;
857  float cluster_noise = 0.0;
858  int nrnonzeroamplitudes = 0;
859  float noise2 = 0.0;
860  float noise = 0.0;
861  for (uint iamp = 0; iamp < ampls.size(); iamp++) {
862  if (ampls[iamp] > 0) { // nonzero amplitude
863  cluster_signal += ampls[iamp];
864  if (!siStripQuality.IsStripBad(qualityRange, clusterIter->firstStrip() + iamp)) {
865  noise = siStripNoises.getNoise(clusterIter->firstStrip() + iamp, detNoiseRange) /
866  siStripGain.getStripGain(clusterIter->firstStrip() + iamp, detGainRange);
867  }
868  noise2 += noise * noise;
869  nrnonzeroamplitudes++;
870  }
871  } // End loop over cluster amplitude
872 
873  if (nrnonzeroamplitudes > 0)
874  cluster_noise = sqrt(noise2 / nrnonzeroamplitudes);
875 
876  if (applyClusterQuality_ &&
877  (cluster_signal / cluster_noise < sToNLowerLimit_ || cluster_signal / cluster_noise > sToNUpperLimit_ ||
878  cluster_width < widthLowerLimit_ || cluster_width > widthUpperLimit_))
879  continue;
880 
881  ClusterProperties cluster_properties;
882  cluster_properties.charge = cluster_signal;
883  cluster_properties.position = cluster_position;
884  cluster_properties.start = cluster_start;
885  cluster_properties.width = cluster_width;
886  cluster_properties.noise = cluster_noise;
887 
888  // Fill Module Level MEs
889  if (found_module_me and passDCSFilter_)
890  fillModuleMEs(mod_single, cluster_properties);
891 
892  // Fill Layer Level MEs
893  if (found_layer_me and passDCSFilter_) {
894  fillLayerMEs(layer_single, cluster_properties);
896  layer_single.LayerClusterWidthProfile->Fill(iDet, cluster_width);
897  }
898 
900  std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.find(subdet_label);
901  if (iSubdet != SubDetMEsMap.end()) {
902  if (subdetswitchcluschargeon and passDCSFilter_)
903  iSubdet->second.SubDetClusterChargeTH1->Fill(cluster_signal);
904  if (subdetswitchcluswidthon and passDCSFilter_)
905  iSubdet->second.SubDetClusterWidthTH1->Fill(cluster_width);
906  }
907  }
908 
909  if (subdet_clusterWidth_vs_amplitude_on and passDCSFilter_) {
910  std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.find(subdet_label);
911  if (iSubdet != SubDetMEsMap.end())
912  iSubdet->second.SubDetClusWidthVsAmpTH2->Fill(cluster_signal, cluster_width);
913  }
914 
915  if (clusterWidth_vs_amplitude_on and passDCSFilter_) {
916  ClusWidthVsAmpTH2->Fill(cluster_signal, cluster_width);
917  }
918 
920  (subdet_label.find("TID") != std::string::npos || subdet_label.find("TEC") != std::string::npos)) {
921  std::pair<std::string, int32_t> det_ring_pair = folder_organizer.GetSubDetAndLayer(detid, tTopo, true);
922  ncluster_ring[std::abs(det_ring_pair.second)]++;
923  }
924 
925  } // end loop over clusters
926 
928  std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.find(subdet_label);
929  std::pair<std::string, int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid, tTopo);
930  iSubdet->second.SubDetNumberOfClusterPerLayerTrend->Fill(
931  trendVar, std::abs(det_layer_pair.second), ncluster_layer);
932  }
933 
935  (subdet_label.find("TID") != std::string::npos || subdet_label.find("TEC") != std::string::npos)) {
936  std::pair<std::string, int32_t> det_ring_pair = folder_organizer.GetSubDetAndLayer(detid, tTopo, true);
938  trendVar, std::abs(det_ring_pair.second), ncluster_ring[std::abs(det_ring_pair.second)]);
939  }
940 
941  short total_nr_strips = siStripDetCabling.nApvPairs(detid) * 2 * 128; // get correct # of avp pairs
942  float local_occupancy = static_cast<float>(total_clusterized_strips) / static_cast<float>(total_nr_strips);
943  if (found_module_me and passDCSFilter_) {
944  if (moduleswitchnrclusterizedstrip && mod_single.NrOfClusterizedStrips) { // nr of clusterized strips
945  mod_single.NrOfClusterizedStrips->Fill(static_cast<float>(total_clusterized_strips));
946  }
947 
948  if (moduleswitchlocaloccupancy && mod_single.ModuleLocalOccupancy) { // Occupancy
949  mod_single.ModuleLocalOccupancy->Fill(local_occupancy);
950  }
951  }
952  if (layerswitchlocaloccupancy && found_layer_me && layer_single.LayerLocalOccupancy && passDCSFilter_) {
953  fillME(layer_single.LayerLocalOccupancy, local_occupancy);
954  if (createTrendMEs)
955  fillME(layer_single.LayerLocalOccupancyTrend, trendVar, local_occupancy);
956  }
957  }
958 
960  fillME(layer_single.LayerNumberOfClusterTrend, trendVar, ncluster_layer);
961 
962  std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.find(subdet_label);
963  if (iSubdet != SubDetMEsMap.end())
964  iSubdet->second.totNClusters += ncluster_layer;
965  }
966 
967  // EventHistory
968  edm::Handle<EventWithHistory> event_history;
969  iEvent.getByToken(historyProducerToken_, event_history);
970 
971  // Phase of APV
972  edm::Handle<APVCyclePhaseCollection> apv_phase_collection;
973  iEvent.getByToken(apvPhaseProducerToken_, apv_phase_collection);
974 
975  if (event_history.isValid() && !event_history.failedToGet() && apv_phase_collection.isValid() &&
976  !apv_phase_collection.failedToGet()) {
977  long long dbx = event_history->deltaBX();
978  long long tbx = event_history->absoluteBX();
979 
980  bool global_histo_filled = false;
981  bool MultiplicityRegion_Vs_APVcycle_filled = false;
982 
983  // plot n 2
984  if (passBPTXfilter_ and passPixelDCSfilter_ and passStripDCSfilter_ && passDCSFilter_) {
986  GlobalABXTH1_CSCP->Fill(tbx % 3564);
987  }
988  // plot n 2
989 
990  for (std::map<std::string, SubDetMEs>::iterator it = SubDetMEsMap.begin(); it != SubDetMEsMap.end(); it++) {
991  std::string sdet = it->first;
992  // std::string sdet = sdet_tag.substr(0,sdet_tag.find_first_of("_"));
993  SubDetMEs sdetmes = it->second;
994 
995  int the_phase = APVCyclePhaseCollection::invalid;
996  long long tbx_corr = tbx;
997 
998  if (SubDetPhasePartMap.find(sdet) != SubDetPhasePartMap.end())
999  the_phase = apv_phase_collection->getPhase(SubDetPhasePartMap[sdet]);
1001  the_phase == APVCyclePhaseCollection::invalid) {
1002  the_phase = 30;
1003  // std::cout << " subdet " << it->first << " not valid" << " MR " <<
1004  // MultiplicityRegion <<std::endl;
1005  }
1006  tbx_corr -= the_phase;
1007 
1008  long long dbxincycle = event_history->deltaBXinCycle(the_phase);
1009  // std::cout<<"dbx in cycle: " << dbxincycle << std::endl;
1010  if (globalswitchapvcycledbxth2on && !global_histo_filled && passDCSFilter_) {
1011  GlobalApvCycleDBxTH2->Fill(tbx_corr % 70, dbx);
1012  GlobalDBxTH1->Fill(dbx);
1013  GlobalDBxCycleTH1->Fill(dbxincycle);
1014  global_histo_filled = true;
1015  }
1016 
1017  // Fill MainDiagonalPosition plots ***************
1018  if (cluster_detsetvektor_pix.isValid()) {
1019  if (ClusterHisto_) {
1020  if (passBPTXfilter_ and passStripDCSfilter_ and passDCSFilter_) {
1021  NumberOfStripClus_vs_BX->Fill(tbx % 3564, NStripClusters);
1022  if (passPixelDCSfilter_) {
1023  NumberOfPixelClus_vs_BX->Fill(tbx % 3564, NPixClusters);
1024  if (globalswitchmaindiagonalposition && NStripClusters > 0) {
1025  GlobalMainDiagonalPosition_vs_BX->Fill(tbx % 3564, atan(NPixClusters / (k0 * NStripClusters)));
1026  GlobalTH2MainDiagonalPosition_vs_BX->Fill(tbx % 3564, atan(NPixClusters / (k0 * NStripClusters)));
1027  }
1028  }
1029  }
1030 
1031  // Filling # clusters per FED ID histogram from FED Id clusters map
1032  // (for all layers simultaneously).
1033  map<int, int>::iterator it;
1034  // for(it=FEDID_v_clustersum.begin(); it!=FEDID_v_clustersum.end();
1035  // it++){
1036  for (auto const& fedidEntry : FEDID_v_clustersum) {
1037  // NumberOfFEDClus->Fill(it->first,it->second);
1038  if (passDCSFilter_)
1039  NumberOfFEDClus->Fill(fedidEntry.first, fedidEntry.second);
1040  // if(it->first < 100){
1041  // Trend_NumberOfFEDClus->Fill(trendVar,it->first,it->second);
1042  //}
1043  }
1044  FEDID_v_clustersum.clear();
1045  }
1046  }
1047 
1048  if (isPixValid && !MultiplicityRegion_Vs_APVcycle_filled && passDCSFilter_) {
1049  if (globalswitchstripnoise2apvcycle && MultiplicityRegion == 2) {
1050  StripNoise2Cycle->Fill(tbx_corr % 70);
1051  }
1052  if (globalswitchstripnoise3apvcycle && MultiplicityRegion == 3) {
1053  StripNoise3Cycle->Fill(tbx_corr % 70);
1054  }
1055  MultiplicityRegion_Vs_APVcycle_filled = true;
1056  }
1057 
1058  if (subdetswitchtotclusth1on and passDCSFilter_)
1059  sdetmes.SubDetTotClusterTH1->Fill(sdetmes.totNClusters);
1061  sdetmes.SubDetTotClusterProf->Fill(trendVar, sdetmes.totNClusters);
1062  if (subdetswitchapvcycleprofon and passDCSFilter_)
1063  sdetmes.SubDetClusterApvProf->Fill(tbx_corr % 70, sdetmes.totNClusters);
1064  if (subdetswitchapvcycleth2on and passDCSFilter_)
1065  sdetmes.SubDetClusterApvTH2->Fill(tbx_corr % 70, sdetmes.totNClusters);
1066  if (subdetswitchdbxcycleprofon and passDCSFilter_) {
1067  sdetmes.SubDetClusterDBxCycleProf->Fill(dbxincycle, sdetmes.totNClusters);
1068  }
1069  if (subdetswitchapvcycledbxprof2on and passDCSFilter_)
1070  sdetmes.SubDetApvDBxProf2->Fill(tbx_corr % 70, dbx, sdetmes.totNClusters);
1071  }
1072 
1073  if (globalswitchnclusvscycletimeprof2don and passDCSFilter_) {
1074  long long tbx_corr = tbx;
1075  int the_phase = apv_phase_collection->getPhase("All");
1076 
1078  the_phase == APVCyclePhaseCollection::invalid)
1079  the_phase = 30;
1080 
1081  tbx_corr -= the_phase;
1082 
1083  NclusVsCycleTimeProf2D->Fill(tbx_corr % 70, (int)event_history->_orbit, NStripClusters);
1084  }
1085  }
1086 }
1087 //
1088 // -- Reset MEs
1089 //------------------------------------------------------------------------------
1091  std::map<uint32_t, ModMEs>::iterator pos = ModuleMEsMap.find(idet);
1092  ModMEs mod_me = pos->second;
1093 
1094  if (moduleswitchncluson)
1095  mod_me.NumberOfClusters->Reset();
1097  mod_me.ClusterPosition->Reset();
1099  mod_me.ClusterDigiPosition->Reset();
1103  mod_me.ClusterWidth->Reset();
1105  mod_me.ClusterCharge->Reset();
1107  mod_me.ClusterNoise->Reset();
1109  mod_me.ClusterSignalOverNoise->Reset();
1111  mod_me.ModuleLocalOccupancy->Reset();
1113  mod_me.NrOfClusterizedStrips->Reset();
1115  mod_me.Module_ClusWidthVsAmpTH2->Reset();
1116 }
1117 //
1118 // -- Create Module Level MEs
1119 //
1121  uint32_t detid,
1122  DQMStore::IBooker& ibooker,
1123  const SiStripDetCabling& siStripDetCabling) {
1124  // use SistripHistoId for producing histogram id (and title)
1125  SiStripHistoId hidmanager;
1126  std::string hid;
1127 
1128  // nr. of clusters per module
1129  if (moduleswitchncluson) {
1130  hid = hidmanager.createHistoId("NumberOfClusters", "det", detid);
1131  mod_single.NumberOfClusters = bookME1D("TH1nClusters", hid.c_str(), ibooker);
1132  mod_single.NumberOfClusters->setAxisTitle("number of clusters in one detector module");
1133  mod_single.NumberOfClusters->setStatOverflows(kTRUE); // over/underflows in Mean calculation
1134  }
1135 
1136  // ClusterPosition
1137  if (moduleswitchclusposon) {
1138  short total_nr_strips = siStripDetCabling.nApvPairs(detid) * 2 * 128; // get correct # of avp pairs
1139  hid = hidmanager.createHistoId("ClusterPosition", "det", detid);
1140  mod_single.ClusterPosition = ibooker.book1D(hid, hid, total_nr_strips, 0.5, total_nr_strips + 0.5);
1141  mod_single.ClusterPosition->setAxisTitle("cluster position [strip number +0.5]");
1142  }
1143 
1144  // ClusterDigiPosition
1146  short total_nr_strips = siStripDetCabling.nApvPairs(detid) * 2 * 128; // get correct # of avp pairs
1147  hid = hidmanager.createHistoId("ClusterDigiPosition", "det", detid);
1148  mod_single.ClusterDigiPosition = ibooker.book1D(hid, hid, total_nr_strips, 0.5, total_nr_strips + 0.5);
1149  mod_single.ClusterDigiPosition->setAxisTitle("digi in cluster position [strip number +0.5]");
1150  }
1151 
1152  // ClusterWidth
1154  hid = hidmanager.createHistoId("ClusterWidth", "det", detid);
1155  mod_single.ClusterWidth = bookME1D("TH1ClusterWidth", hid.c_str(), ibooker);
1156  mod_single.ClusterWidth->setAxisTitle("cluster width [nr strips]");
1157  }
1158 
1159  // ClusterCharge
1161  hid = hidmanager.createHistoId("ClusterCharge", "det", detid);
1162  mod_single.ClusterCharge = bookME1D("TH1ClusterCharge", hid.c_str(), ibooker);
1163  mod_single.ClusterCharge->setAxisTitle("cluster charge [ADC]");
1164  }
1165 
1166  // ClusterNoise
1168  hid = hidmanager.createHistoId("ClusterNoise", "det", detid);
1169  mod_single.ClusterNoise = bookME1D("TH1ClusterNoise", hid.c_str(), ibooker);
1170  mod_single.ClusterNoise->setAxisTitle("cluster noise");
1171  }
1172 
1173  // ClusterSignalOverNoise
1174  if (moduleswitchclusstonon) {
1175  hid = hidmanager.createHistoId("ClusterSignalOverNoise", "det", detid);
1176  mod_single.ClusterSignalOverNoise = bookME1D("TH1ClusterStoN", hid.c_str(), ibooker);
1177  mod_single.ClusterSignalOverNoise->setAxisTitle("ratio of signal to noise for each cluster");
1178  }
1179 
1180  // ClusterSignalOverNoiseVsPos
1182  hid = hidmanager.createHistoId("ClusterSignalOverNoiseVsPos", "det", detid);
1183  Parameters = conf_.getParameter<edm::ParameterSet>("TH1ClusterStoNVsPos");
1184  mod_single.ClusterSignalOverNoiseVsPos = ibooker.bookProfile(hid.c_str(),
1185  hid.c_str(),
1186  Parameters.getParameter<int32_t>("Nbinx"),
1187  Parameters.getParameter<double>("xmin"),
1188  Parameters.getParameter<double>("xmax"),
1189  Parameters.getParameter<int32_t>("Nbiny"),
1190  Parameters.getParameter<double>("ymin"),
1191  Parameters.getParameter<double>("ymax"));
1192  mod_single.ClusterSignalOverNoiseVsPos->setAxisTitle("pos");
1193  }
1194 
1195  // ModuleLocalOccupancy
1197  hid = hidmanager.createHistoId("ClusterLocalOccupancy", "det", detid);
1198  mod_single.ModuleLocalOccupancy = bookME1D("TH1ModuleLocalOccupancy", hid.c_str(), ibooker);
1199  mod_single.ModuleLocalOccupancy->setAxisTitle("module local occupancy [% of clusterized strips]");
1200  }
1201 
1202  // NrOfClusterizedStrips
1204  hid = hidmanager.createHistoId("NrOfClusterizedStrips", "det", detid);
1205  mod_single.NrOfClusterizedStrips = bookME1D("TH1NrOfClusterizedStrips", hid.c_str(), ibooker);
1206  mod_single.NrOfClusterizedStrips->setAxisTitle("number of clusterized strips");
1207  }
1208 
1210  hid = hidmanager.createHistoId("ClusterWidths_vs_Amplitudes", "det", detid);
1211  Parameters = conf_.getParameter<edm::ParameterSet>("ClusWidthVsAmpTH2");
1212  int32_t Nbinsx = Parameters.getParameter<int32_t>("Nbinsx");
1213  Nbinsx = Nbinsx / 2; // Without this "rebinning" the job is killed on
1214  // lxplus. We think it's due to the high memory needed
1215  // to create all those histograms.
1216  mod_single.Module_ClusWidthVsAmpTH2 = ibooker.book2D(hid.c_str(),
1217  hid.c_str(),
1218  Nbinsx,
1219  Parameters.getParameter<double>("xmin"),
1220  Parameters.getParameter<double>("xmax"),
1221  Parameters.getParameter<int32_t>("Nbinsy"),
1222  Parameters.getParameter<double>("ymin"),
1223  Parameters.getParameter<double>("ymax"));
1224  mod_single.Module_ClusWidthVsAmpTH2->setAxisTitle("Amplitudes (integrated ADC counts)", 1);
1225  mod_single.Module_ClusWidthVsAmpTH2->setAxisTitle("Cluster widths", 2);
1226  }
1227 }
1228 //
1229 // -- Create Module Level MEs
1230 //
1232  SiStripHistoId hidmanager;
1233 
1234  LayerMEs layerMEs;
1235  layerMEs.LayerClusterStoN = nullptr;
1236  layerMEs.LayerClusterStoNTrend = nullptr;
1237  layerMEs.LayerClusterCharge = nullptr;
1238  layerMEs.LayerClusterChargeTrend = nullptr;
1239  layerMEs.LayerClusterNoise = nullptr;
1240  layerMEs.LayerClusterNoiseTrend = nullptr;
1241  layerMEs.LayerClusterWidth = nullptr;
1242  layerMEs.LayerClusterWidthTrend = nullptr;
1243  layerMEs.LayerLocalOccupancy = nullptr;
1244  layerMEs.LayerLocalOccupancyTrend = nullptr;
1245  layerMEs.LayerNumberOfClusterProfile = nullptr;
1246  layerMEs.LayerNumberOfClusterTrend = nullptr;
1247  layerMEs.LayerNumberOfClusterPerRingTrend = nullptr;
1248  layerMEs.LayerClusterWidthProfile = nullptr;
1249  layerMEs.LayerClusWidthVsAmpTH2 = nullptr;
1250  layerMEs.LayerClusterPosition = nullptr;
1251 
1252  // Cluster Width
1253  if (layerswitchcluswidthon) {
1254  layerMEs.LayerClusterWidth = bookME1D(
1255  "TH1ClusterWidth", hidmanager.createHistoLayer("Summary_ClusterWidth", "layer", label, "").c_str(), ibooker);
1256  if (createTrendMEs)
1257  layerMEs.LayerClusterWidthTrend =
1258  bookMETrend(hidmanager.createHistoLayer("Trend_ClusterWidth", "layer", label, "").c_str(), ibooker);
1259  }
1260 
1261  // Cluster Noise
1262  if (layerswitchclusnoiseon) {
1263  layerMEs.LayerClusterNoise = bookME1D(
1264  "TH1ClusterNoise", hidmanager.createHistoLayer("Summary_ClusterNoise", "layer", label, "").c_str(), ibooker);
1265  if (createTrendMEs)
1266  layerMEs.LayerClusterNoiseTrend =
1267  bookMETrend(hidmanager.createHistoLayer("Trend_ClusterNoise", "layer", label, "").c_str(), ibooker);
1268  }
1269 
1270  // Cluster Charge
1272  layerMEs.LayerClusterCharge = bookME1D(
1273  "TH1ClusterCharge", hidmanager.createHistoLayer("Summary_ClusterCharge", "layer", label, "").c_str(), ibooker);
1274  if (createTrendMEs)
1275  layerMEs.LayerClusterChargeTrend =
1276  bookMETrend(hidmanager.createHistoLayer("Trend_ClusterCharge", "layer", label, "").c_str(), ibooker);
1277  }
1278 
1279  // Cluster StoN
1280  if (layerswitchclusstonon) {
1281  layerMEs.LayerClusterStoN =
1282  bookME1D("TH1ClusterStoN",
1283  hidmanager.createHistoLayer("Summary_ClusterSignalOverNoise", "layer", label, "").c_str(),
1284  ibooker);
1285  if (createTrendMEs)
1286  layerMEs.LayerClusterStoNTrend =
1287  bookMETrend(hidmanager.createHistoLayer("Trend_ClusterSignalOverNoise", "layer", label, "").c_str(), ibooker);
1288  }
1289 
1290  // Cluster Occupancy
1292  layerMEs.LayerLocalOccupancy =
1293  bookME1D("TH1ModuleLocalOccupancy",
1294  hidmanager.createHistoLayer("Summary_ClusterLocalOccupancy", "layer", label, "").c_str(),
1295  ibooker);
1296  if (createTrendMEs)
1297  layerMEs.LayerLocalOccupancyTrend =
1298  bookMETrend(hidmanager.createHistoLayer("Trend_ClusterLocalOccupancy", "layer", label, "").c_str(), ibooker);
1299  }
1300 
1301  // # of Cluster Profile
1303  std::string hid = hidmanager.createHistoLayer("NumberOfClusterProfile", "layer", label, "");
1304  layerMEs.LayerNumberOfClusterProfile = ibooker.bookProfile(hid, hid, ndets, 0.5, ndets + 0.5, 21, -0.5, 20.5);
1305  }
1306 
1307  // # of Cluster Trend
1309  layerMEs.LayerNumberOfClusterTrend =
1310  bookMETrend(hidmanager.createHistoLayer("NumberOfClusterTrend", "layer", label, "").c_str(), ibooker);
1311 
1312  if (label.find("TID") != std::string::npos || label.find("TEC") != std::string::npos) {
1313  edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("NumberOfClusterPerRingVsTrendVar");
1314 
1316  "NumberOfClusterPerRingVsTrendVar",
1317  hidmanager.createHistoLayer("NumberOfClusterPerRing_vs_TrendVar", "layer", label, "").c_str(),
1318  Parameters.getParameter<int32_t>("Nbinsx"),
1319  Parameters.getParameter<double>("xmin"),
1320  Parameters.getParameter<double>("xmax"),
1321  Parameters.getParameter<int32_t>("Nbinsy"),
1322  Parameters.getParameter<double>("ymin"),
1323  Parameters.getParameter<double>("ymax"),
1324  0,
1325  0,
1326  "");
1327  }
1328  }
1329 
1330  // Cluster Width Profile
1332  std::string hid = hidmanager.createHistoLayer("ClusterWidthProfile", "layer", label, "");
1333  layerMEs.LayerClusterWidthProfile = ibooker.bookProfile(hid, hid, ndets, 0.5, ndets + 0.5, 20, -0.5, 19.5);
1334  }
1335 
1337  layerMEs.LayerClusWidthVsAmpTH2 =
1338  bookME2D("ClusWidthVsAmpTH2",
1339  hidmanager.createHistoLayer("ClusterWidths_vs_Amplitudes", "layer", label, "").c_str(),
1340  ibooker);
1341  }
1342 
1343  // Cluster Position
1344  if (layerswitchclusposon) {
1345  std::string hid = hidmanager.createHistoLayer("ClusterPosition", "layer", label, "");
1346  layerMEs.LayerClusterPosition = ibooker.book1D(hid, hid, 128 * 6, 0.5, 128 * 6 + 0.5);
1347  }
1348 
1349  LayerMEsMap[label] = layerMEs;
1350 }
1351 //
1352 // -- Create SubDetector MEs
1353 //
1355  SubDetMEs subdetMEs;
1356  subdetMEs.totNClusters = 0;
1357  subdetMEs.SubDetTotClusterTH1 = nullptr;
1358  subdetMEs.SubDetTotClusterProf = nullptr;
1359  subdetMEs.SubDetClusterApvProf = nullptr;
1360  subdetMEs.SubDetClusterApvTH2 = nullptr;
1361  subdetMEs.SubDetClusterDBxCycleProf = nullptr;
1362  subdetMEs.SubDetApvDBxProf2 = nullptr;
1363  subdetMEs.SubDetClusterChargeTH1 = nullptr;
1364  subdetMEs.SubDetClusterWidthTH1 = nullptr;
1365  subdetMEs.SubDetClusWidthVsAmpTH2 = nullptr;
1366  subdetMEs.SubDetNumberOfClusterPerLayerTrend = nullptr;
1367 
1369  // cluster charge
1371  HistoName = "ClusterCharge__" + label;
1372  subdetMEs.SubDetClusterChargeTH1 = bookME1D("TH1ClusterCharge", HistoName.c_str(), ibooker);
1373  subdetMEs.SubDetClusterChargeTH1->setAxisTitle("Cluster charge [ADC counts]");
1374  subdetMEs.SubDetClusterChargeTH1->setStatOverflows(kTRUE); // over/underflows in Mean calculation
1375  }
1376  // cluster width
1378  HistoName = "ClusterWidth__" + label;
1379  subdetMEs.SubDetClusterWidthTH1 = bookME1D("TH1ClusterWidth", HistoName.c_str(), ibooker);
1380  subdetMEs.SubDetClusterWidthTH1->setAxisTitle("Cluster width [strips]");
1381  subdetMEs.SubDetClusterWidthTH1->setStatOverflows(kTRUE); // over/underflows in Mean calculation
1382  }
1383  // Total Number of Cluster - 1D
1385  HistoName = "TotalNumberOfCluster__" + label;
1386  subdetMEs.SubDetTotClusterTH1 = bookME1D("TH1TotalNumberOfClusters", HistoName.c_str(), ibooker);
1387  subdetMEs.SubDetTotClusterTH1->setAxisTitle("Total number of clusters in subdetector");
1388  subdetMEs.SubDetTotClusterTH1->setStatOverflows(kTRUE); // over/underflows in Mean calculation
1389  }
1390  // Total Number of Cluster vs Time - Profile
1393  : conf_.getParameter<edm::ParameterSet>("Trending");
1394  HistoName = "TotalNumberOfClusterProfile__" + label;
1395  subdetMEs.SubDetTotClusterProf = ibooker.bookProfile(HistoName,
1396  HistoName,
1397  Parameters.getParameter<int32_t>("Nbins"),
1398  Parameters.getParameter<double>("xmin"),
1399  Parameters.getParameter<double>("xmax"),
1400  0,
1401  0,
1402  "");
1403  subdetMEs.SubDetTotClusterProf->setAxisTitle(Parameters.getParameter<std::string>("xaxis"), 1);
1405  subdetMEs.SubDetTotClusterProf->getTH1()->SetCanExtend(TH1::kAllAxes);
1406 
1407  Parameters = conf_.getParameter<edm::ParameterSet>("NumberOfClusterPerLayerTrendVar");
1408  HistoName = "TotalNumberOfClusterPerLayer__" + label;
1409  subdetMEs.SubDetNumberOfClusterPerLayerTrend = ibooker.bookProfile2D("NumberOfClusterPerLayerTrendVar",
1410  HistoName.c_str(),
1411  Parameters.getParameter<int32_t>("Nbinsx"),
1412  Parameters.getParameter<double>("xmin"),
1413  Parameters.getParameter<double>("xmax"),
1414  Parameters.getParameter<int32_t>("Nbinsy"),
1415  Parameters.getParameter<double>("ymin"),
1416  Parameters.getParameter<double>("ymax"),
1417  0,
1418  0,
1419  "");
1420  subdetMEs.SubDetNumberOfClusterPerLayerTrend->setAxisTitle("Lumisection", 1);
1421  subdetMEs.SubDetNumberOfClusterPerLayerTrend->setAxisTitle("Layer Number", 2);
1422  }
1423 
1424  // Total Number of Cluster vs APV cycle - Profile
1426  edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TProfClustersApvCycle");
1427  HistoName = "Cluster_vs_ApvCycle__" + label;
1428  subdetMEs.SubDetClusterApvProf = ibooker.bookProfile(HistoName,
1429  HistoName,
1430  Parameters.getParameter<int32_t>("Nbins"),
1431  Parameters.getParameter<double>("xmin"),
1432  Parameters.getParameter<double>("xmax"),
1433  200, // that parameter should not be there !?
1434  Parameters.getParameter<double>("ymin"),
1435  Parameters.getParameter<double>("ymax"),
1436  "");
1437  subdetMEs.SubDetClusterApvProf->setAxisTitle("Apv Cycle (Corrected Absolute Bx % 70)", 1);
1438  }
1439 
1440  // Total Number of Clusters vs ApvCycle - 2D
1443  HistoName = "Cluster_vs_ApvCycle_2D__" + label;
1444  // Adjusting the scale for 2D histogram
1445  double h2ymax = 9999.0;
1446  double yfact = Parameters.getParameter<double>("yfactor");
1447  if (label.find("TIB") != std::string::npos)
1448  h2ymax = (6984. * 256.) * yfact;
1449  else if (label.find("TID") != std::string::npos)
1450  h2ymax = (2208. * 256.) * yfact;
1451  else if (label.find("TOB") != std::string::npos)
1452  h2ymax = (12906. * 256.) * yfact;
1453  else if (label.find("TEC") != std::string::npos)
1454  h2ymax = (7552. * 2. * 256.) * yfact;
1455 
1456  subdetMEs.SubDetClusterApvTH2 = ibooker.book2D(HistoName,
1457  HistoName,
1458  Parameters.getParameter<int32_t>("Nbinsx"),
1459  Parameters.getParameter<double>("xmin"),
1460  Parameters.getParameter<double>("xmax"),
1461  Parameters.getParameter<int32_t>("Nbinsy"),
1462  Parameters.getParameter<double>("ymin"),
1463  h2ymax);
1464  subdetMEs.SubDetClusterApvTH2->setAxisTitle("Apv Cycle (Corrected Absolute Bx % 70))", 1);
1465  subdetMEs.SubDetClusterApvTH2->setAxisTitle("Total # of Clusters", 2);
1466  }
1467 
1468  // Cluster widths vs amplitudes - 2D
1471  HistoName = "ClusterWidths_vs_Amplitudes__" + label;
1472  subdetMEs.SubDetClusWidthVsAmpTH2 = ibooker.book2D(HistoName,
1473  HistoName,
1474  Parameters.getParameter<int32_t>("Nbinsx"),
1475  Parameters.getParameter<double>("xmin"),
1476  Parameters.getParameter<double>("xmax"),
1477  Parameters.getParameter<int32_t>("Nbinsy"),
1478  Parameters.getParameter<double>("ymin"),
1479  Parameters.getParameter<double>("ymax"));
1480  subdetMEs.SubDetClusWidthVsAmpTH2->setAxisTitle("Amplitudes (integrated ADC counts)", 1);
1481  subdetMEs.SubDetClusWidthVsAmpTH2->setAxisTitle("Cluster widths", 2);
1482  }
1483 
1484  // Total Number of Cluster vs DeltaBxCycle - Profile
1486  edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TProfClustersVsDBxCycle");
1487  HistoName = "Cluster_vs_DeltaBxCycle__" + label;
1488  subdetMEs.SubDetClusterDBxCycleProf = ibooker.bookProfile(HistoName,
1489  HistoName,
1490  Parameters.getParameter<int32_t>("Nbins"),
1491  Parameters.getParameter<double>("xmin"),
1492  Parameters.getParameter<double>("xmax"),
1493  200, // that parameter should not be there !?
1494  Parameters.getParameter<double>("ymin"),
1495  Parameters.getParameter<double>("ymax"),
1496  "");
1497  subdetMEs.SubDetClusterDBxCycleProf->setAxisTitle("Delta Bunch Crossing Cycle", 1);
1498  }
1499  // DeltaBx vs ApvCycle - 2DProfile
1502  HistoName = "DeltaBx_vs_ApvCycle__" + label;
1503  subdetMEs.SubDetApvDBxProf2 = ibooker.bookProfile2D(HistoName,
1504  HistoName,
1505  Parameters.getParameter<int32_t>("Nbinsx"),
1506  Parameters.getParameter<double>("xmin"),
1507  Parameters.getParameter<double>("xmax"),
1508  Parameters.getParameter<int32_t>("Nbinsy"),
1509  Parameters.getParameter<double>("ymin"),
1510  Parameters.getParameter<double>("ymax"),
1511  Parameters.getParameter<double>("zmin"),
1512  Parameters.getParameter<double>("zmax"),
1513  "");
1514  subdetMEs.SubDetApvDBxProf2->setAxisTitle("APV Cycle (Corrected Absolute Bx % 70)", 1);
1515  subdetMEs.SubDetApvDBxProf2->setAxisTitle("Delta Bunch Crossing Cycle", 2);
1516  }
1517  SubDetMEsMap[label] = subdetMEs;
1518 }
1519 
1520 //
1521 // -- Fill Module Level Histograms
1522 //
1524  if (moduleswitchclusposon && (mod_mes.ClusterPosition)) // position of cluster
1525  (mod_mes.ClusterPosition)->Fill(cluster.position);
1526 
1527  // position of digis in cluster
1529  for (int ipos = cluster.start + 1; ipos <= cluster.start + cluster.width; ipos++) {
1530  (mod_mes.ClusterDigiPosition)->Fill(ipos);
1531  }
1532  }
1533 
1534  if (moduleswitchcluswidthon && (mod_mes.ClusterWidth)) // width of cluster
1535  (mod_mes.ClusterWidth)->Fill(static_cast<float>(cluster.width));
1536 
1537  if (moduleswitchclusstonon && (mod_mes.ClusterSignalOverNoise)) { // SignalToNoise
1538  if (cluster.noise > 0)
1539  (mod_mes.ClusterSignalOverNoise)->Fill(cluster.charge / cluster.noise);
1540  }
1541 
1542  if (moduleswitchclusstonVsposon && (mod_mes.ClusterSignalOverNoiseVsPos)) { // SignalToNoise
1543  if (cluster.noise > 0)
1544  (mod_mes.ClusterSignalOverNoiseVsPos)->Fill(cluster.position, cluster.charge / cluster.noise);
1545  }
1546 
1547  if (moduleswitchclusnoiseon && (mod_mes.ClusterNoise)) // Noise
1548  (mod_mes.ClusterNoise)->Fill(cluster.noise);
1549 
1550  if (moduleswitchcluschargeon && (mod_mes.ClusterCharge)) // charge of cluster
1551  (mod_mes.ClusterCharge)->Fill(cluster.charge);
1552 
1554  (mod_mes.Module_ClusWidthVsAmpTH2)->Fill(cluster.charge, cluster.width);
1555 }
1556 //
1557 // -- Fill Layer Level MEs
1558 //
1560  if (layerswitchclusstonon) {
1561  fillME(layerMEs.LayerClusterStoN, cluster.charge / cluster.noise);
1562  if (createTrendMEs) {
1563  fillME(layerMEs.LayerClusterStoNTrend, trendVar, cluster.charge / cluster.noise);
1564  }
1565  }
1566 
1568  fillME(layerMEs.LayerClusterCharge, cluster.charge);
1569  if (createTrendMEs) {
1570  fillME(layerMEs.LayerClusterChargeTrend, trendVar, cluster.charge);
1571  }
1572  }
1573 
1574  if (layerswitchclusnoiseon) {
1575  fillME(layerMEs.LayerClusterNoise, cluster.noise);
1576  if (createTrendMEs) {
1577  fillME(layerMEs.LayerClusterNoiseTrend, trendVar, cluster.noise);
1578  }
1579  }
1580 
1581  if (layerswitchcluswidthon) {
1582  fillME(layerMEs.LayerClusterWidth, cluster.width);
1583  if (createTrendMEs) {
1584  fillME(layerMEs.LayerClusterWidthTrend, trendVar, cluster.width);
1585  }
1586  }
1587 
1589  fillME(layerMEs.LayerClusWidthVsAmpTH2, cluster.charge, cluster.width);
1590  }
1591 
1592  if (layerswitchclusposon) {
1593  fillME(layerMEs.LayerClusterPosition, cluster.position);
1594  }
1595 }
1596 //------------------------------------------------------------------------------------------
1598  DQMStore::IBooker& ibooker) {
1599  edm::ParameterSet ParametersTrend = trendVs10Ls_ ? conf_.getParameter<edm::ParameterSet>("TrendingLS")
1600  : conf_.getParameter<edm::ParameterSet>("Trending");
1602  HistoName,
1603  ParametersTrend.getParameter<int32_t>("Nbins"),
1604  ParametersTrend.getParameter<double>("xmin"),
1605  ParametersTrend.getParameter<double>("xmax"),
1606  0,
1607  0,
1608  "");
1609  if (!me)
1610  return me;
1611  me->setAxisTitle(ParametersTrend.getParameter<std::string>("xaxis"), 1);
1612  if (me->kind() == MonitorElement::Kind::TPROFILE)
1613  me->getTH1()->SetCanExtend(TH1::kAllAxes);
1614  return me;
1615 }
1616 
1617 //------------------------------------------------------------------------------------------
1619  const char* HistoName,
1620  DQMStore::IBooker& ibooker) {
1621  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
1622  return ibooker.book1D(HistoName,
1623  HistoName,
1624  Parameters.getParameter<int32_t>("Nbinx"),
1625  Parameters.getParameter<double>("xmin"),
1626  Parameters.getParameter<double>("xmax"));
1627 }
1628 
1629 //------------------------------------------------------------------------------------------
1631  const char* HistoName,
1632  DQMStore::IBooker& ibooker) {
1633  Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel);
1634  return ibooker.book2D(HistoName,
1635  HistoName,
1636  Parameters.getParameter<int32_t>("Nbinsx"),
1637  Parameters.getParameter<double>("xmin"),
1638  Parameters.getParameter<double>("xmax"),
1639  Parameters.getParameter<int32_t>("Nbinsy"),
1640  Parameters.getParameter<double>("ymin"),
1641  Parameters.getParameter<double>("ymax"));
1642 }
1643 
1644 int SiStripMonitorCluster::FindRegion(int nstrip, int npix) {
1645  double kplus = k0 * (1 + dk0 / 100);
1646  double kminus = k0 * (1 - dk0 / 100);
1647  int region = 0;
1648 
1649  if (nstrip != 0 && npix >= (nstrip * kminus - q0) && npix <= (nstrip * kplus + q0))
1650  region = 1;
1651  else if (nstrip != 0 && npix < (nstrip * kminus - q0) && nstrip <= maxClus)
1652  region = 2;
1653  else if (nstrip != 0 && npix < (nstrip * kminus - q0) && nstrip > maxClus)
1654  region = 3;
1655  else if (nstrip != 0 && npix > (nstrip * kplus + q0))
1656  region = 4;
1657  else if (npix > minPix && nstrip == 0)
1658  region = 5;
1659  return region;
1660 }
SiStripMonitorCluster::q0
double q0
Definition: SiStripMonitorCluster.h:272
SiStripMonitorCluster::layerswitchclusterwidthprofon
bool layerswitchclusterwidthprofon
Definition: SiStripMonitorCluster.h:200
SiStripHistoId::createHistoLayer
std::string createHistoLayer(std::string description, std::string id_type, std::string path, std::string flag)
Definition: SiStripHistoId.cc:51
SiStripMonitorCluster::passBPTXfilter_
bool passBPTXfilter_
Definition: SiStripMonitorCluster.h:284
SiStripMonitorCluster::globalswitchMultiRegions
bool globalswitchMultiRegions
Definition: SiStripMonitorCluster.h:230
SiStripDetCabling::addActiveDetectorsRawIds
void addActiveDetectorsRawIds(std::vector< uint32_t > &) const
Definition: SiStripDetCabling.cc:134
SiStripMonitorCluster::subdetswitchcluswidthon
bool subdetswitchcluswidthon
Definition: SiStripMonitorCluster.h:226
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
EventWithHistory::deltaBX
long long deltaBX(const unsigned int ev2, const unsigned int ev1) const
Definition: EventWithHistory.cc:273
SiStripMonitorCluster::dqmBeginRun
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
Definition: SiStripMonitorCluster.cc:239
SiStripMonitorCluster::NumberOfPixelClus
MonitorElement * NumberOfPixelClus
Definition: SiStripMonitorCluster.h:126
SiStripDCSStatus
Definition: SiStripDCSStatus.h:19
SiStripMonitorCluster::ModMEs::NumberOfClusters
MonitorElement * NumberOfClusters
Definition: SiStripMonitorCluster.h:61
SiStripMonitorCluster::trackerTopologyEventToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyEventToken_
Definition: SiStripMonitorCluster.h:259
SiStripMonitorCluster::siStripQualityToken_
edm::ESGetToken< SiStripQuality, SiStripQualityRcd > siStripQualityToken_
Definition: SiStripMonitorCluster.h:262
SiStripMonitorCluster::conf_
edm::ParameterSet conf_
Definition: SiStripMonitorCluster.h:166
SiStripMonitorCluster::ModMEs::ClusterNoise
MonitorElement * ClusterNoise
Definition: SiStripMonitorCluster.h:66
SiStripMonitorCluster::LayerMEs::LayerClusterStoN
MonitorElement * LayerClusterStoN
Definition: SiStripMonitorCluster.h:75
SiStripMonitorCluster::m_cacheID_
unsigned long long m_cacheID_
Definition: SiStripMonitorCluster.h:175
edm::ESInputTag
Definition: ESInputTag.h:87
SiStripMonitorCluster::ModuleMEsMap
std::map< uint32_t, ModMEs > ModuleMEsMap
Definition: SiStripMonitorCluster.h:167
MessageLogger.h
SiStripFolderOrganizer.h
SiStripMonitorCluster::moduleswitchncluson
bool moduleswitchncluson
Definition: SiStripMonitorCluster.h:208
funct::false
false
Definition: Factorize.h:29
SiStripBadStrip::getRange
const Range getRange(const uint32_t detID) const
Definition: SiStripBadStrip.cc:27
SiStripHistoId.h
edm::Handle::product
T const * product() const
Definition: Handle.h:70
SiStripMonitorCluster::fillModuleMEs
void fillModuleMEs(ModMEs &mod_mes, ClusterProperties &cluster)
Definition: SiStripMonitorCluster.cc:1523
SiStripSubStructure::getTIDDetectors
void getTIDDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tidDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t ring=0, uint32_t ster=0)
reco::ParticleMasses::k0
const double k0
Definition: ParticleMasses.h:7
SiStripSubStructure::getTIBDetectors
void getTIBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tibDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t int_ext=0, uint32_t string=0)
SiStripMonitorCluster::moduleswitchnrclusterizedstrip
bool moduleswitchnrclusterizedstrip
Definition: SiStripMonitorCluster.h:217
SiStripNoises
Definition: SiStripNoises.h:25
SiStripMonitorCluster::layerswitchcluswidthon
bool layerswitchcluswidthon
Definition: SiStripMonitorCluster.h:196
APVCyclePhaseCollection::multiphase
Definition: APVCyclePhaseCollection.h:21
SiStripGain
Definition: SiStripGain.h:44
edm::Run
Definition: Run.h:45
SiStripMonitorCluster::SubDetMEs::totNClusters
int totNClusters
Definition: SiStripMonitorCluster.h:94
SiStripMonitorCluster::tkmapcluster
std::unique_ptr< TkHistoMap > tkmapcluster
Definition: SiStripMonitorCluster.h:182
SiStripMonitorCluster::StripNoise2Cycle
MonitorElement * StripNoise2Cycle
Definition: SiStripMonitorCluster.h:124
SiStripDCSStatus.h
APVCyclePhaseCollection::invalid
Definition: APVCyclePhaseCollection.h:21
TrackerTopology
Definition: TrackerTopology.h:16
SiStripMonitorCluster::passStripDCSfilter_
bool passStripDCSfilter_
Definition: SiStripMonitorCluster.h:286
dqm::implementation::IBooker::bookProfile2D
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
SiStripMonitorCluster::module_clusterWidth_vs_amplitude_on
bool module_clusterWidth_vs_amplitude_on
Definition: SiStripMonitorCluster.h:218
SiStripMonitorCluster::LayerMEsMap
std::map< std::string, LayerMEs > LayerMEsMap
Definition: SiStripMonitorCluster.h:168
SiStripMonitorCluster::applyClusterQuality_
bool applyClusterQuality_
Definition: SiStripMonitorCluster.h:265
pos
Definition: PixelAliasList.h:18
SiStripMonitorCluster::FindRegion
int FindRegion(int nstrip, int npixel)
Definition: SiStripMonitorCluster.cc:1644
SiPixelCluster.h
SiStripMonitorCluster::layerswitchclusposon
bool layerswitchclusposon
Definition: SiStripMonitorCluster.h:193
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
SiStripMonitorCluster::moduleswitchclusnoiseon
bool moduleswitchclusnoiseon
Definition: SiStripMonitorCluster.h:214
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:197
SiStripMonitorCluster::moduleswitchclusposon
bool moduleswitchclusposon
Definition: SiStripMonitorCluster.h:212
SiStripMonitorCluster::NumberOfPixelClus_vs_BX
MonitorElement * NumberOfPixelClus_vs_BX
Definition: SiStripMonitorCluster.h:132
SiStripMonitorCluster::k0
double k0
Definition: SiStripMonitorCluster.h:271
SiStripMonitorCluster::LayerMEs
Definition: SiStripMonitorCluster.h:74
DQMStore.h
SiStripMonitorCluster::apvPhaseProducerToken_
edm::EDGetTokenT< APVCyclePhaseCollection > apvPhaseProducerToken_
Definition: SiStripMonitorCluster.h:254
SiStripMonitorCluster::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: SiStripMonitorCluster.cc:614
SiStripMonitorCluster::PixVsStripMultiplicityRegions
MonitorElement * PixVsStripMultiplicityRegions
Definition: SiStripMonitorCluster.h:120
SiStripMonitorCluster::runNb
int runNb
Definition: SiStripMonitorCluster.h:185
EventWithHistory.h
SiStripMonitorCluster::genTriggerEventFlagStripDCSfilter_
GenericTriggerEventFlag * genTriggerEventFlagStripDCSfilter_
Definition: SiStripMonitorCluster.h:282
SiStripMonitorCluster::SubDetMEs::SubDetClusterApvTH2
MonitorElement * SubDetClusterApvTH2
Definition: SiStripMonitorCluster.h:98
DDAxes::x
SiStripMonitorCluster::SubDetMEs
Definition: SiStripMonitorCluster.h:93
SiStripMonitorCluster::createSubDetMEs
void createSubDetMEs(std::string label, DQMStore::IBooker &ibooker)
Definition: SiStripMonitorCluster.cc:1354
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
SiStripNoises::getRange
const Range getRange(const uint32_t detID) const
Definition: SiStripNoises.cc:34
SiStripMonitorCluster::globalswitchmaindiagonalposition
bool globalswitchmaindiagonalposition
Definition: SiStripMonitorCluster.h:205
SiStripMonitorCluster::NclusVsCycleTimeProf2D
MonitorElement * NclusVsCycleTimeProf2D
Definition: SiStripMonitorCluster.h:129
SiStripMonitorCluster::globalswitchapvcycledbxth2on
bool globalswitchapvcycledbxth2on
Definition: SiStripMonitorCluster.h:228
SiStripMonitorCluster::GlobalMainDiagonalPosition_vs_BX
MonitorElement * GlobalMainDiagonalPosition_vs_BX
Definition: SiStripMonitorCluster.h:122
SiStripMonitorCluster::LayerMEs::LayerNumberOfClusterPerRingTrend
MonitorElement * LayerNumberOfClusterPerRingTrend
Definition: SiStripMonitorCluster.h:86
edm::Handle
Definition: AssociativeIterator.h:50
SiStripMonitorCluster::moduleswitchclusstonon
bool moduleswitchclusstonon
Definition: SiStripMonitorCluster.h:210
dqm::impl::MonitorElement::kind
Kind kind() const
Get the type of the monitor element.
Definition: MonitorElement.h:247
parallelization.uint
uint
Definition: parallelization.py:124
SiStripMonitorCluster::SubDetMEs::SubDetClusWidthVsAmpTH2
MonitorElement * SubDetClusWidthVsAmpTH2
Definition: SiStripMonitorCluster.h:103
TinyEvent::_orbit
unsigned int _orbit
Definition: TinyEvent.h:65
SiStripMonitorCluster::clusterchtkhistomapon
bool clusterchtkhistomapon
Definition: SiStripMonitorCluster.h:232
SiStripMonitorCluster::createMEs
void createMEs(const edm::EventSetup &es, DQMStore::IBooker &ibooker)
Definition: SiStripMonitorCluster.cc:250
SiStripMonitorCluster::GlobalMainDiagonalPosition
MonitorElement * GlobalMainDiagonalPosition
Definition: SiStripMonitorCluster.h:121
SiStripMonitorCluster::moduleswitchcluswidthon
bool moduleswitchcluswidthon
Definition: SiStripMonitorCluster.h:215
SiStripMonitorCluster::GlobalApvCycleDBxTH2
MonitorElement * GlobalApvCycleDBxTH2
Definition: SiStripMonitorCluster.h:115
SiStripGain::getStripGain
static float getStripGain(const uint16_t &strip, const SiStripApvGain::Range &range)
Definition: SiStripGain.h:73
edmNew::DetSet::size
size_type size() const
Definition: DetSetNew.h:68
SiStripMonitorCluster::ModMEs::ClusterPosition
MonitorElement * ClusterPosition
Definition: SiStripMonitorCluster.h:62
SiStripMonitorCluster::LayerMEs::LayerClusWidthVsAmpTH2
MonitorElement * LayerClusWidthVsAmpTH2
Definition: SiStripMonitorCluster.h:89
SiStripFolderOrganizer::GetSubDetAndLayer
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, const TrackerTopology *tTopo, bool ring_flag=false)
Definition: SiStripFolderOrganizer.cc:106
SiStripMonitorCluster::ClusterProperties::start
short start
Definition: SiStripMonitorCluster.h:110
SiStripMonitorCluster::SubDetMEs::SubDetTotClusterTH1
MonitorElement * SubDetTotClusterTH1
Definition: SiStripMonitorCluster.h:95
SiStripMonitorCluster::LayerMEs::LayerNumberOfClusterProfile
MonitorElement * LayerNumberOfClusterProfile
Definition: SiStripMonitorCluster.h:85
SiStripMonitorCluster::subdetswitchapvcycleprofon
bool subdetswitchapvcycleprofon
Definition: SiStripMonitorCluster.h:220
SiStripMonitorCluster::SubDetMEs::SubDetClusterApvProf
MonitorElement * SubDetClusterApvProf
Definition: SiStripMonitorCluster.h:97
edmNew::DetSet::end
iterator end()
Definition: DetSetNew.h:56
SiStripMonitorCluster::genTriggerEventFlagPixelDCSfilter_
GenericTriggerEventFlag * genTriggerEventFlagPixelDCSfilter_
Definition: SiStripMonitorCluster.h:281
SiStripMonitorCluster::subdet_clusterWidth_vs_amplitude_on
bool subdet_clusterWidth_vs_amplitude_on
Definition: SiStripMonitorCluster.h:227
SiStripMonitorCluster::trendVar
float trendVar
Definition: SiStripMonitorCluster.h:187
SiStripMonitorCluster::globalswitchstripnoise3apvcycle
bool globalswitchstripnoise3apvcycle
Definition: SiStripMonitorCluster.h:204
SiStripBadStrip::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripBadStrip.h:53
SiStripMonitorCluster::SiStripMonitorCluster
SiStripMonitorCluster(const edm::ParameterSet &)
Definition: SiStripMonitorCluster.cc:42
SiStripMonitorCluster::subdetswitchapvcycledbxprof2on
bool subdetswitchapvcycledbxprof2on
Definition: SiStripMonitorCluster.h:222
SiStripMonitorCluster::SubDetMEs::SubDetApvDBxProf2
MonitorElement * SubDetApvDBxProf2
Definition: SiStripMonitorCluster.h:100
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
SiStripMonitorCluster::moduleswitchcluschargeon
bool moduleswitchcluschargeon
Definition: SiStripMonitorCluster.h:209
SiStripMonitorCluster::show_mechanical_structure_view
bool show_mechanical_structure_view
Definition: SiStripMonitorCluster.h:174
SiStripMonitorCluster::LayerMEs::LayerClusterNoiseTrend
MonitorElement * LayerClusterNoiseTrend
Definition: SiStripMonitorCluster.h:80
SiStripMonitorCluster::widthUpperLimit_
double widthUpperLimit_
Definition: SiStripMonitorCluster.h:269
SiStripMonitorCluster::ClusterProperties::position
float position
Definition: SiStripMonitorCluster.h:109
SiStripMonitorCluster::createLayerMEs
void createLayerMEs(std::string label, int ndets, DQMStore::IBooker &ibooker)
Definition: SiStripMonitorCluster.cc:1231
SiStripMonitorCluster::siStripDetCablingRunToken_
edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > siStripDetCablingRunToken_
Definition: SiStripMonitorCluster.h:258
SiStripMonitorCluster::createTrendMEs
bool createTrendMEs
Definition: SiStripMonitorCluster.h:233
Service.h
SiStripNoises::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripNoises.h:47
SiStripMonitorCluster::clustertkhistomapon
bool clustertkhistomapon
Definition: SiStripMonitorCluster.h:231
SiStripGain::getRange
const SiStripApvGain::Range getRange(uint32_t detID) const
Definition: SiStripGain.h:71
GenericTriggerEventFlag.h
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
SiStripDetCabling
Definition: SiStripDetCabling.h:21
SiStripMonitorCluster::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: SiStripMonitorCluster.cc:634
SiStripMonitorCluster::globalswitchstripnoise2apvcycle
bool globalswitchstripnoise2apvcycle
Definition: SiStripMonitorCluster.h:203
dqm::impl::MonitorElement::Reset
virtual void Reset()
Remove all data from the ME, keept the empty histogram with all its settings.
Definition: MonitorElement.cc:354
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
edmNew::DetSet
Definition: DetSetNew.h:22
SiStripMonitorCluster::ModMEs::ClusterSignalOverNoiseVsPos
MonitorElement * ClusterSignalOverNoiseVsPos
Definition: SiStripMonitorCluster.h:68
SiStripSubStructure::getTECDetectors
void getTECDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tecDetRawIds, const TrackerTopology *trackerTopology, uint32_t side=0, uint32_t wheel=0, uint32_t petal_bkw_frw=0, uint32_t petal=0, uint32_t ring=0, uint32_t ster=0)
SiStripMonitorCluster::moduleswitchclusstonVsposon
bool moduleswitchclusstonVsposon
Definition: SiStripMonitorCluster.h:211
SiStripMonitorCluster::createModuleMEs
void createModuleMEs(ModMEs &mod_single, uint32_t detid, DQMStore::IBooker &ibooker, const SiStripDetCabling &)
Definition: SiStripMonitorCluster.cc:1120
SiStripMonitorCluster::StripNoise3Cycle
MonitorElement * StripNoise3Cycle
Definition: SiStripMonitorCluster.h:125
TkDetMap
Definition: TkDetMap.h:175
SiStripMonitorCluster::layerswitchclusstonon
bool layerswitchclusstonon
Definition: SiStripMonitorCluster.h:191
SiStripMonitorCluster::layerswitchnumclusterprofon
bool layerswitchnumclusterprofon
Definition: SiStripMonitorCluster.h:199
SiStripMonitorCluster::GlobalTH2MainDiagonalPosition_vs_BX
MonitorElement * GlobalTH2MainDiagonalPosition_vs_BX
Definition: SiStripMonitorCluster.h:123
SiStripMonitorCluster::reset_each_run
bool reset_each_run
Definition: SiStripMonitorCluster.h:174
Transition.h
SiStripDetCablingRcd
Definition: SiStripDependentRecords.h:19
SiStripMonitorCluster::bookME2D
MonitorElement * bookME2D(const char *ParameterSetLabel, const char *HistoName, DQMStore::IBooker &ibooker)
Definition: SiStripMonitorCluster.cc:1630
SiStripFolderOrganizer::getSubDetFolderAndTag
std::pair< const std::string, const char * > getSubDetFolderAndTag(const uint32_t &detid, const TrackerTopology *tTopo)
Definition: SiStripFolderOrganizer.cc:475
SiStripMonitorCluster::SubDetMEs::SubDetClusterWidthTH1
MonitorElement * SubDetClusterWidthTH1
Definition: SiStripMonitorCluster.h:102
SiStripMonitorCluster::GlobalCStripVsCpix
MonitorElement * GlobalCStripVsCpix
Definition: SiStripMonitorCluster.h:118
dqm::impl::MonitorElement::getTH1
virtual TH1 * getTH1()
Definition: MonitorElement.cc:969
SiStripQuality::IsStripBad
bool IsStripBad(const uint32_t &detid, const short &strip) const
Definition: SiStripQuality.cc:623
SiStripMonitorCluster::ModMEs::Module_ClusWidthVsAmpTH2
MonitorElement * Module_ClusWidthVsAmpTH2
Definition: SiStripMonitorCluster.h:71
SiStripMonitorCluster::SubDetMEsMap
std::map< std::string, SubDetMEs > SubDetMEsMap
Definition: SiStripMonitorCluster.h:170
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripMonitorCluster::LayerMEs::LayerLocalOccupancyTrend
MonitorElement * LayerLocalOccupancyTrend
Definition: SiStripMonitorCluster.h:84
SiStripMonitorCluster::topFolderName_
std::string topFolderName_
Definition: SiStripMonitorCluster.h:241
funct::true
true
Definition: Factorize.h:173
SiStripMonitorCluster::dcsStatus_
SiStripDCSStatus * dcsStatus_
Definition: SiStripMonitorCluster.h:277
GenericTriggerEventFlag::accept
bool accept(const edm::Event &event, const edm::EventSetup &setup)
To be called from analyze/filter() methods.
Definition: GenericTriggerEventFlag.cc:266
SiStripMonitorCluster::GlobalDBxTH1
MonitorElement * GlobalDBxTH1
Definition: SiStripMonitorCluster.h:116
edm::HandleBase::failedToGet
bool failedToGet() const
Definition: HandleBase.h:72
SiStripMonitorCluster::SubDetPhasePartMap
std::map< std::string, std::string > SubDetPhasePartMap
Definition: SiStripMonitorCluster.h:171
edm::ParameterSet
Definition: ParameterSet.h:47
SiStripMonitorCluster::globalswitchnclusvscycletimeprof2don
bool globalswitchnclusvscycletimeprof2don
Definition: SiStripMonitorCluster.h:235
SiStripCondDataRecords.h
SiStripCluster.h
SiStripMonitorCluster::clusterProducerStripToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterProducerStripToken_
Definition: SiStripMonitorCluster.h:251
SiStripMonitorCluster::layerswitchclusnoiseon
bool layerswitchclusnoiseon
Definition: SiStripMonitorCluster.h:195
GenericTriggerEventFlag
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
Definition: GenericTriggerEventFlag.h:42
SiStripMonitorCluster::ModMEs::ClusterWidth
MonitorElement * ClusterWidth
Definition: SiStripMonitorCluster.h:64
SiStripMonitorCluster::passPixelDCSfilter_
bool passPixelDCSfilter_
Definition: SiStripMonitorCluster.h:285
SiStripMonitorCluster::LayerDetMap
std::map< std::string, std::vector< uint32_t > > LayerDetMap
Definition: SiStripMonitorCluster.h:169
SiStripMonitorCluster::tkDetMapToken_
edm::ESGetToken< TkDetMap, TrackerTopologyRcd > tkDetMapToken_
Definition: SiStripMonitorCluster.h:257
EventWithHistory::absoluteBX
long long absoluteBX(const unsigned int ev1) const
Definition: EventWithHistory.cc:292
hgcalDigitizer_cfi.noise
noise
Definition: hgcalDigitizer_cfi.py:155
SiStripMonitorCluster::GlobalDBxCycleTH1
MonitorElement * GlobalDBxCycleTH1
Definition: SiStripMonitorCluster.h:117
SiStripMonitorCluster::ModMEs::ClusterCharge
MonitorElement * ClusterCharge
Definition: SiStripMonitorCluster.h:65
APVCyclePhaseCollection.h
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88272
SiStripCluster::size
uint8_t size() const
Definition: SiStripCluster.h:64
iEvent
int iEvent
Definition: GenABIO.cc:224
SiStripMonitorCluster::LayerMEs::LayerClusterNoise
MonitorElement * LayerClusterNoise
Definition: SiStripMonitorCluster.h:79
SiStripMonitorCluster::layerswitchlocaloccupancy
bool layerswitchlocaloccupancy
Definition: SiStripMonitorCluster.h:197
SiStripMonitorCluster::LayerMEs::LayerClusterStoNTrend
MonitorElement * LayerClusterStoNTrend
Definition: SiStripMonitorCluster.h:76
SiStripMonitorCluster::layerswitchcluschargeon
bool layerswitchcluschargeon
Definition: SiStripMonitorCluster.h:190
SiStripFolderOrganizer::setSiStripFolderName
void setSiStripFolderName(std::string name)
Definition: SiStripFolderOrganizer.cc:41
SiStripMonitorCluster::siStripDetCablingEventToken_
edm::ESGetToken< SiStripDetCabling, SiStripDetCablingRcd > siStripDetCablingEventToken_
Definition: SiStripMonitorCluster.h:263
dqm::impl::MonitorElement::setBinLabel
virtual 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)
Definition: MonitorElement.cc:771
SiStripMonitorCluster::SubDetMEs::SubDetTotClusterProf
MonitorElement * SubDetTotClusterProf
Definition: SiStripMonitorCluster.h:96
cscdqm::HistoName
std::string HistoName
Definition: CSCDQM_HistoDef.h:32
SiStripMonitorCluster::subdetswitchtotclusprofon
bool subdetswitchtotclusprofon
Definition: SiStripMonitorCluster.h:219
SiStripFolderOrganizer::setSiStripFolder
void setSiStripFolder()
Definition: SiStripFolderOrganizer.cc:45
edmNew::DetSet::begin
iterator begin()
Definition: DetSetNew.h:54
SiStripMonitorCluster::bookME1D
MonitorElement * bookME1D(const char *ParameterSetLabel, const char *HistoName, DQMStore::IBooker &ibooker)
Definition: SiStripMonitorCluster.cc:1618
dqm::impl::MonitorElement::setStatOverflows
virtual DQM_DEPRECATED void setStatOverflows(unsigned int value)
Definition: MonitorElement.cc:907
edm::EventSetup
Definition: EventSetup.h:57
SiPixelCluster::size
int size() const
Definition: SiPixelCluster.h:122
SiStripHistoId::createHistoId
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
Definition: SiStripHistoId.cc:26
SiStripMonitorCluster::clusterProducerPixToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > clusterProducerPixToken_
Definition: SiStripMonitorCluster.h:252
SiStripMonitorCluster::LayerMEs::LayerNumberOfClusterTrend
MonitorElement * LayerNumberOfClusterTrend
Definition: SiStripMonitorCluster.h:87
SiStripMonitorCluster::GlobalABXTH1_CSCP
MonitorElement * GlobalABXTH1_CSCP
Definition: SiStripMonitorCluster.h:119
HcalObjRepresent::Fill
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:1053
SiStripMonitorCluster::LayerMEs::LayerClusterWidthProfile
MonitorElement * LayerClusterWidthProfile
Definition: SiStripMonitorCluster.h:88
SiStripMonitorCluster::LayerMEs::LayerLocalOccupancy
MonitorElement * LayerLocalOccupancy
Definition: SiStripMonitorCluster.h:83
SiStripMonitorCluster::ClusterProperties::charge
float charge
Definition: SiStripMonitorCluster.h:108
SiStripFolderOrganizer::setDetectorFolder
void setDetectorFolder(uint32_t rawdetid, const TrackerTopology *tTopo)
Definition: SiStripFolderOrganizer.cc:202
EventWithHistory::deltaBXinCycle
long long deltaBXinCycle(const unsigned int ev2, const unsigned int ev1, const int bx0) const
Definition: EventWithHistory.cc:314
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:120
SiStripMonitorCluster::ClusterProperties::noise
float noise
Definition: SiStripMonitorCluster.h:112
SiStripMonitorCluster::SubDetMEs::SubDetNumberOfClusterPerLayerTrend
MonitorElement * SubDetNumberOfClusterPerLayerTrend
Definition: SiStripMonitorCluster.h:104
SiStripMonitorCluster::siStripNoisesToken_
edm::ESGetToken< SiStripNoises, SiStripNoisesRcd > siStripNoisesToken_
Definition: SiStripMonitorCluster.h:260
SiStripHistoId
Definition: SiStripHistoId.h:25
edmNew::DetSetVector
Definition: DetSetNew.h:13
SiStripDCSStatus::getStatus
bool getStatus(edm::Event const &e, edm::EventSetup const &eSetup)
Definition: SiStripDCSStatus.cc:41
GenericTriggerEventFlag::on
bool on()
Definition: GenericTriggerEventFlag.h:135
ESInputTag.h
SiStripMonitorCluster::LayerMEs::LayerClusterWidthTrend
MonitorElement * LayerClusterWidthTrend
Definition: SiStripMonitorCluster.h:82
writedatasetfile.run
run
Definition: writedatasetfile.py:27
SiStripSubStructure::getTOBDetectors
void getTOBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tobDetRawIds, const TrackerTopology *trackerTopology, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t rod=0)
MonitorElementData::Kind::TPROFILE2D
edmNew::DetSetVector::data
data_type const * data(size_t cell) const
Definition: DetSetVectorNew.h:560
SiStripMonitorCluster::subdetswitchdbxcycleprofon
bool subdetswitchdbxcycleprofon
Definition: SiStripMonitorCluster.h:223
SiStripMonitorCluster::eventNb
int eventNb
Definition: SiStripMonitorCluster.h:185
SiStripMonitorCluster::genTriggerEventFlagBPTXfilter_
GenericTriggerEventFlag * genTriggerEventFlagBPTXfilter_
Definition: SiStripMonitorCluster.h:280
SiStripMonitorCluster::ClusterProperties::width
short width
Definition: SiStripMonitorCluster.h:111
SiStripMonitorCluster::moduleswitchlocaloccupancy
bool moduleswitchlocaloccupancy
Definition: SiStripMonitorCluster.h:216
SiStripMonitorCluster::tkmapclusterch
std::unique_ptr< TkHistoMap > tkmapclusterch
Definition: SiStripMonitorCluster.h:183
OuterTrackerMonitorTTCluster_cfi.Nbinsx
Nbinsx
Definition: OuterTrackerMonitorTTCluster_cfi.py:11
SiStripApvGain::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripApvGain.h:28
SiStripMonitorCluster::fillME
void fillME(MonitorElement *ME, float value1)
Definition: SiStripMonitorCluster.h:146
SiStripFolderOrganizer::setLayerFolder
void setLayerFolder(uint32_t rawdetid, const TrackerTopology *tTopo, int32_t layer=0, bool ring_flag=false)
Definition: SiStripFolderOrganizer.cc:304
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
SiStripMonitorCluster::bookMETrend
MonitorElement * bookMETrend(const char *, DQMStore::IBooker &ibooker)
Definition: SiStripMonitorCluster.cc:1597
SiStripMonitorCluster::maxClus
double maxClus
Definition: SiStripMonitorCluster.h:274
SiStripMonitorCluster::trackerTopologyRunToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyRunToken_
Definition: SiStripMonitorCluster.h:256
SiStripMonitorCluster::~SiStripMonitorCluster
~SiStripMonitorCluster() override
Definition: SiStripMonitorCluster.cc:227
SiStripMonitorCluster::minPix
double minPix
Definition: SiStripMonitorCluster.h:275
SiStripFolderOrganizer
Definition: SiStripFolderOrganizer.h:27
SiStripDetCabling::nApvPairs
const uint16_t nApvPairs(uint32_t det_id) const
Definition: SiStripDetCabling.cc:209
SiStripMonitorCluster::sToNUpperLimit_
double sToNUpperLimit_
Definition: SiStripMonitorCluster.h:267
SiStripMonitorCluster::LayerMEs::LayerClusterCharge
MonitorElement * LayerClusterCharge
Definition: SiStripMonitorCluster.h:77
SiStripMonitorCluster::globalswitchcstripvscpix
bool globalswitchcstripvscpix
Definition: SiStripMonitorCluster.h:229
SiStripHistoId::getSubdetid
std::string getSubdetid(uint32_t id, const TrackerTopology *tTopo, bool flag_ring)
Definition: SiStripHistoId.cc:82
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
GenericTriggerEventFlag::initRun
void initRun(const edm::Run &run, const edm::EventSetup &setup)
To be called from beginRun() methods.
Definition: GenericTriggerEventFlag.cc:153
APVCyclePhaseCollection::getPhase
const int getPhase(const std::string partition) const
Definition: APVCyclePhaseCollection.cc:5
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
SiStripMonitorCluster::ModMEs::ModuleLocalOccupancy
MonitorElement * ModuleLocalOccupancy
Definition: SiStripMonitorCluster.h:69
SiStripMonitorCluster::subdetswitchcluschargeon
bool subdetswitchcluschargeon
Definition: SiStripMonitorCluster.h:225
SiStripMonitorCluster.h
dqm::implementation::IBooker
Definition: DQMStore.h:43
SiStripMonitorCluster::ModMEs::ClusterSignalOverNoise
MonitorElement * ClusterSignalOverNoise
Definition: SiStripMonitorCluster.h:67
SiStripMonitorCluster::clusterWidth_vs_amplitude_on
bool clusterWidth_vs_amplitude_on
Definition: SiStripMonitorCluster.h:236
SiStripMonitorCluster::layer_clusterWidth_vs_amplitude_on
bool layer_clusterWidth_vs_amplitude_on
Definition: SiStripMonitorCluster.h:201
SiStripMonitorCluster::ModMEs
Definition: SiStripMonitorCluster.h:59
SiStripMonitorCluster::ModMEs::ClusterDigiPosition
MonitorElement * ClusterDigiPosition
Definition: SiStripMonitorCluster.h:63
SiStripMonitorCluster::LayerMEs::LayerClusterChargeTrend
MonitorElement * LayerClusterChargeTrend
Definition: SiStripMonitorCluster.h:78
SiStripMonitorCluster::NumberOfFEDClus
MonitorElement * NumberOfFEDClus
Definition: SiStripMonitorCluster.h:133
SiStripMonitorCluster::NumberOfStripClus
MonitorElement * NumberOfStripClus
Definition: SiStripMonitorCluster.h:127
SiStripMonitorCluster::ClusterHisto_
bool ClusterHisto_
Definition: SiStripMonitorCluster.h:239
SiStripMonitorCluster::subdetswitchapvcycleth2on
bool subdetswitchapvcycleth2on
Definition: SiStripMonitorCluster.h:221
SiStripMonitorCluster::Mod_On_
bool Mod_On_
Definition: SiStripMonitorCluster.h:238
SiStripMonitorCluster::moduleswitchclusdigiposon
bool moduleswitchclusdigiposon
Definition: SiStripMonitorCluster.h:213
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
SiStripMonitorCluster::siStripGainToken_
edm::ESGetToken< SiStripGain, SiStripGainRcd > siStripGainToken_
Definition: SiStripMonitorCluster.h:261
SiStripMonitorCluster::globalswitchFEDCluster
bool globalswitchFEDCluster
Definition: SiStripMonitorCluster.h:206
genParticles_cff.map
map
Definition: genParticles_cff.py:11
SiStripMonitorCluster::NumberOfStripClus_vs_BX
MonitorElement * NumberOfStripClus_vs_BX
Definition: SiStripMonitorCluster.h:131
SiStripMonitorCluster::historyProducerToken_
edm::EDGetTokenT< EventWithHistory > historyProducerToken_
Definition: SiStripMonitorCluster.h:253
SiStripMonitorCluster::ResetModuleMEs
void ResetModuleMEs(uint32_t idet)
Definition: SiStripMonitorCluster.cc:1090
APVCyclePhaseCollection::nopartition
Definition: APVCyclePhaseCollection.h:21
hlt_dqm_clientPB-live_cfg.me
me
Definition: hlt_dqm_clientPB-live_cfg.py:61
SiStripNoises::getNoise
static float getNoise(uint16_t strip, const Range &range)
Definition: SiStripNoises.h:73
SiStripMonitorCluster::ClusWidthVsAmpTH2
MonitorElement * ClusWidthVsAmpTH2
Definition: SiStripMonitorCluster.h:130
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
SiStripMonitorCluster_cfi.dk0
dk0
Definition: SiStripMonitorCluster_cfi.py:242
SiStripClusterCollection.h
edm::Event
Definition: Event.h:73
Parameters
vector< ParameterSet > Parameters
Definition: HLTMuonPlotter.cc:25
SiStripMonitorCluster::fillLayerMEs
void fillLayerMEs(LayerMEs &, ClusterProperties &cluster)
Definition: SiStripMonitorCluster.cc:1559
MonitorElementData::Kind::TPROFILE
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:800
SiStripMonitorCluster::subdetswitchtotclusth1on
bool subdetswitchtotclusth1on
Definition: SiStripMonitorCluster.h:224
StripSubdetector.h
SiStripSubStructure.h
SiStripMonitorCluster::trendVs10Ls_
bool trendVs10Ls_
Definition: SiStripMonitorCluster.h:234
edmNew::DetSet::empty
bool empty() const
Definition: DetSetNew.h:70
edm::InputTag
Definition: InputTag.h:15
label
const char * label
Definition: PFTauDecayModeTools.cc:11
SiStripDetCabling::getConnections
const std::vector< const FedChannelConnection * > & getConnections(uint32_t det_id) const
Definition: SiStripDetCabling.cc:161
SiStripMonitorCluster::ModMEs::NrOfClusterizedStrips
MonitorElement * NrOfClusterizedStrips
Definition: SiStripMonitorCluster.h:70
amptDefault_cfi.firstEvent
firstEvent
Definition: amptDefault_cfi.py:8
SiStripMonitorCluster_cfi.q0
q0
Definition: SiStripMonitorCluster_cfi.py:241
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
SiStripMonitorCluster::LayerMEs::LayerClusterWidth
MonitorElement * LayerClusterWidth
Definition: SiStripMonitorCluster.h:81
SiStripMonitorCluster::SubDetMEs::SubDetClusterDBxCycleProf
MonitorElement * SubDetClusterDBxCycleProf
Definition: SiStripMonitorCluster.h:99
SiStripMonitorCluster::LayerMEs::LayerClusterPosition
MonitorElement * LayerClusterPosition
Definition: SiStripMonitorCluster.h:90
SiStripQuality
Definition: SiStripQuality.h:32
edmNew::DetSet::const_iterator
const data_type * const_iterator
Definition: DetSetNew.h:31
SiStripMonitorCluster::SubDetMEs::SubDetClusterChargeTH1
MonitorElement * SubDetClusterChargeTH1
Definition: SiStripMonitorCluster.h:101
SiStripMonitorCluster::dk0
double dk0
Definition: SiStripMonitorCluster.h:273
SiStripMonitorCluster::ClusterProperties
Definition: SiStripMonitorCluster.h:107