CMS 3D CMS Logo

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

#include <Phase2OTMonitorCluster.cc>

Inheritance diagram for Phase2OTMonitorCluster:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Classes

struct  ClusterMEs
 

Public Member Functions

void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
void bookHistograms (DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override
 
void dqmBeginRun (const edm::Run &iRun, const edm::EventSetup &iSetup) override
 
 Phase2OTMonitorCluster (const edm::ParameterSet &)
 
 ~Phase2OTMonitorCluster () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 

Private Member Functions

void bookLayerHistos (DQMStore::IBooker &ibooker, uint32_t det_it, std::string &subdir)
 
void fillOTHistos (const edm::Event &iEvent)
 

Private Attributes

edm::EDGetTokenT< Phase2TrackerCluster1DCollectionNewclustersToken_
 
edm::ParameterSet config_
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomToken_
 
MonitorElementglobalRZ_P_
 
MonitorElementglobalRZ_S_
 
MonitorElementglobalXY_P_
 
MonitorElementglobalXY_S_
 
std::map< std::string, ClusterMEslayerMEs_
 
MonitorElementnumberClusters_
 
const TrackerGeometrytkGeom_ = nullptr
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtopoToken_
 
const TrackerTopologytTopo_ = nullptr
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Description: Validation plots tracker clusters.

Definition at line 41 of file Phase2OTMonitorCluster.cc.

Constructor & Destructor Documentation

◆ Phase2OTMonitorCluster()

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

Definition at line 85 of file Phase2OTMonitorCluster.cc.

86  : config_(iConfig),
87  clustersToken_(consumes<Phase2TrackerCluster1DCollectionNew>(config_.getParameter<edm::InputTag>("clusterSrc"))),
88  geomToken_(esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>()),
89  topoToken_(esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>()) {
90  edm::LogInfo("Phase2OTMonitorCluster") << ">>> Construct Phase2OTMonitorCluster ";
91 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< Phase2TrackerCluster1DCollectionNew > clustersToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
Log< level::Info, false > LogInfo

◆ ~Phase2OTMonitorCluster()

Phase2OTMonitorCluster::~Phase2OTMonitorCluster ( )
override

Definition at line 93 of file Phase2OTMonitorCluster.cc.

93  {
94  edm::LogInfo("Phase2OTMonitorCluster") << ">>> Destroy Phase2OTMonitorCluster ";
95 }
Log< level::Info, false > LogInfo

Member Function Documentation

◆ analyze()

void Phase2OTMonitorCluster::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 105 of file Phase2OTMonitorCluster.cc.

References Phase2OTMonitorCluster::ClusterMEs::ClusterSize_P, Phase2OTMonitorCluster::ClusterMEs::ClusterSize_S, clustersToken_, dqm::impl::MonitorElement::Fill(), TrackerGeometry::getDetectorType(), phase2tkutil::getOTHistoId(), globalRZ_P_, globalRZ_S_, globalXY_P_, globalXY_S_, TrackerGeometry::idToDetUnit(), iEvent, layerMEs_, numberClusters_, PV3DBase< T, PVType, FrameType >::perp(), TrackerGeometry::Ph2PSP, TrackerGeometry::Ph2PSS, TrackerGeometry::Ph2SS, AlCaHLTBitMon_QueryRunRegistry::string, tkGeom_, tTopo_, PV3DBase< T, PVType, FrameType >::x(), Phase2OTMonitorCluster::ClusterMEs::XYGlobalPositionMap_P, Phase2OTMonitorCluster::ClusterMEs::XYGlobalPositionMap_S, Phase2OTMonitorCluster::ClusterMEs::XYLocalPositionMap_P, Phase2OTMonitorCluster::ClusterMEs::XYLocalPositionMap_S, PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

105  {
106  // Getting the clusters
107  const auto& clusterHandle = iEvent.getHandle(clustersToken_);
108  // Number of clusters
109  std::map<std::string, unsigned int> nClustersCounter_P; //map of detidkey vs #cls
110  std::map<std::string, unsigned int> nClustersCounter_S; //map of detidkey vs #cls
111  unsigned int nclus = 0; //global counter
112  for (const auto& DSVItr : *clusterHandle) {
113  // Getting the id of detector unit
114  uint32_t rawid(DSVItr.detId());
115  DetId detId(rawid);
116  const GeomDetUnit* geomDetUnit(tkGeom_->idToDetUnit(detId));
117  if (!geomDetUnit)
118  continue;
119 
120  std::string folderkey = phase2tkutil::getOTHistoId(detId, tTopo_);
121 
123  // initialize the nhit counters if they don't exist for this layer
124  //the check on the detId is needed to avoid checking at the filling stage
126  auto counterDet = nClustersCounter_P.find(folderkey);
127  if (counterDet == nClustersCounter_P.end())
128  nClustersCounter_P.emplace(folderkey, DSVItr.size());
129  else
130  counterDet->second += DSVItr.size();
132  auto counterDet = nClustersCounter_S.find(folderkey);
133  if (counterDet == nClustersCounter_S.end())
134  nClustersCounter_S.emplace(folderkey, DSVItr.size());
135  else
136  counterDet->second += DSVItr.size();
137  }
138  nclus += DSVItr.size();
139 
140  for (const auto& clusterItr : DSVItr) {
141  MeasurementPoint mpCluster(clusterItr.center(), clusterItr.column() + 0.5);
142  Local3DPoint localPosCluster = geomDetUnit->topology().localPosition(mpCluster);
143  Global3DPoint globalPosCluster = geomDetUnit->surface().toGlobal(localPosCluster);
144  double gx = globalPosCluster.x() * 10.;
145  double gy = globalPosCluster.y() * 10.;
146  double gz = globalPosCluster.z() * 10.;
147  double gr = globalPosCluster.perp() * 10.;
148  auto layerMEit = layerMEs_.find(folderkey);
149  if (layerMEit == layerMEs_.end())
150  continue;
151  ClusterMEs& local_mes = layerMEit->second;
153  globalXY_P_->Fill(gx, gy);
154  globalRZ_P_->Fill(gz, gr);
155  local_mes.ClusterSize_P->Fill(clusterItr.size());
156  local_mes.XYLocalPositionMap_P->Fill(localPosCluster.x(), localPosCluster.y());
157 
158  if (local_mes.XYGlobalPositionMap_P != nullptr) //make this optional
159  local_mes.XYGlobalPositionMap_P->Fill(gx, gy);
161  globalXY_S_->Fill(gx, gy);
162  globalRZ_S_->Fill(gz, gr);
163  local_mes.ClusterSize_S->Fill(clusterItr.size());
164  local_mes.XYLocalPositionMap_S->Fill(localPosCluster.x(), localPosCluster.y());
165 
166  if (local_mes.XYGlobalPositionMap_S != nullptr) //make this optional
167  local_mes.XYGlobalPositionMap_S->Fill(gx, gy);
168  }
169  }
170  }
171  for (const auto& it : nClustersCounter_P) {
172  if (layerMEs_.find(it.first) == layerMEs_.end())
173  continue;
174  if (layerMEs_[it.first].nClusters_P != nullptr) //this check should not be required though
175  layerMEs_[it.first].nClusters_P->Fill(it.second);
176  }
177  for (const auto& it : nClustersCounter_S) {
178  if (layerMEs_.find(it.first) == layerMEs_.end())
179  continue;
180  if (layerMEs_[it.first].nClusters_S != nullptr) //this check should not be required though
181  layerMEs_[it.first].nClusters_S->Fill(it.second);
182  }
183  numberClusters_->Fill(nclus);
184 }
const TrackerTopology * tTopo_
T perp() const
Definition: PV3DBase.h:69
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
edm::EDGetTokenT< Phase2TrackerCluster1DCollectionNew > clustersToken_
T z() const
Definition: PV3DBase.h:61
std::map< std::string, ClusterMEs > layerMEs_
void Fill(long long x)
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
int iEvent
Definition: GenABIO.cc:224
std::string getOTHistoId(uint32_t det_id, const TrackerTopology *tTopo)
const TrackerGeometry * tkGeom_
ModuleType getDetectorType(DetId) const
Definition: DetId.h:17

◆ bookHistograms()

void Phase2OTMonitorCluster::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 189 of file Phase2OTMonitorCluster.cc.

References phase2tkutil::book1DFromPSet(), phase2tkutil::book2DFromPSet(), bookLayerHistos(), dqm::implementation::NavigatorBase::cd(), edm::ESWatcher< T >::check(), config_, TrackerGeometry::detUnits(), phase2tkutil::getITHistoId(), edm::ParameterSet::getParameter(), globalRZ_P_, globalRZ_S_, globalXY_P_, globalXY_S_, numberClusters_, GeomDetEnumerators::P2PXB, GeomDetEnumerators::P2PXEC, dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, tkGeom_, and tTopo_.

191  {
192  std::string top_folder = config_.getParameter<std::string>("TopFolderName");
193  ibooker.cd();
194  ibooker.setCurrentFolder(top_folder);
195  edm::LogInfo("Phase2OTMonitorCluster") << " Booking Histograms in: " << top_folder;
196 
198 
200 
202 
204 
206 
207  //Now book layer wise histos
208  edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
209  if (theTkDigiGeomWatcher.check(iSetup)) {
210  for (auto const& det_u : tkGeom_->detUnits()) {
211  //Always check TrackerNumberingBuilder before changing this part
212  //continue if Pixel
213  if ((det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXB ||
214  det_u->subDetector() == GeomDetEnumerators::SubDetector::P2PXEC))
215  continue;
216  unsigned int detId_raw = det_u->geographicalId().rawId();
217  edm::LogInfo("Phase2ITMonitorRecHit") << "Detid:" << detId_raw << "\tsubdet=" << det_u->subDetector()
218  << "\t key=" << phase2tkutil::getITHistoId(detId_raw, tTopo_) << std::endl;
219  bookLayerHistos(ibooker, detId_raw, top_folder);
220  }
221  }
222 }
const TrackerTopology * tTopo_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MonitorElement * book2DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
std::string getITHistoId(uint32_t det_id, const TrackerTopology *tTopo)
const TrackerGeometry * tkGeom_
MonitorElement * book1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
Log< level::Info, false > LogInfo
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
void bookLayerHistos(DQMStore::IBooker &ibooker, uint32_t det_it, std::string &subdir)

◆ bookLayerHistos()

void Phase2OTMonitorCluster::bookLayerHistos ( DQMStore::IBooker ibooker,
uint32_t  det_it,
std::string &  subdir 
)
private

Definition at line 225 of file Phase2OTMonitorCluster.cc.

References phase2tkutil::book1DFromPSet(), phase2tkutil::book2DFromPSet(), dqm::implementation::NavigatorBase::cd(), Phase2OTMonitorCluster::ClusterMEs::ClusterSize_P, Phase2OTMonitorCluster::ClusterMEs::ClusterSize_S, config_, ALCARECODTCalibSynchCosmicsDQM_cff::folderName, TrackerGeometry::getDetectorType(), phase2tkutil::getOTHistoId(), edm::ParameterSet::getParameter(), layerMEs_, Phase2OTMonitorCluster::ClusterMEs::nClusters_P, Phase2OTMonitorCluster::ClusterMEs::nClusters_S, TrackerGeometry::Ph2PSP, dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, tkGeom_, tTopo_, Phase2OTMonitorCluster::ClusterMEs::XYGlobalPositionMap_P, Phase2OTMonitorCluster::ClusterMEs::XYGlobalPositionMap_S, Phase2OTMonitorCluster::ClusterMEs::XYLocalPositionMap_P, and Phase2OTMonitorCluster::ClusterMEs::XYLocalPositionMap_S.

Referenced by bookHistograms().

225  {
227  if (folderName.empty()) {
228  edm::LogWarning("Phase2OTMonitorCluster") << ">>>> Invalid histo_id ";
229  return;
230  }
231  if (layerMEs_.find(folderName) == layerMEs_.end()) {
232  ibooker.cd();
233  ibooker.setCurrentFolder(subdir + "/" + folderName);
234  edm::LogInfo("Phase2OTMonitorCluster") << " Booking Histograms in: " << subdir + "/" + folderName;
235  ClusterMEs local_mes;
238  local_mes.nClusters_P =
240  local_mes.ClusterSize_P =
242  local_mes.XYGlobalPositionMap_P =
243  phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("GlobalPositionXY_perlayer_P"), ibooker);
244  local_mes.XYLocalPositionMap_P =
245  phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("LocalPositionXY_P"), ibooker);
246  }
247 
248  local_mes.nClusters_S =
250 
251  local_mes.ClusterSize_S =
253 
254  local_mes.XYGlobalPositionMap_S =
255  phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("GlobalPositionXY_perlayer_S"), ibooker);
256 
257  local_mes.XYLocalPositionMap_S =
258  phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("LocalPositionXY_S"), ibooker);
259 
260  layerMEs_.emplace(folderName, local_mes);
261  } //if block layerME find
262 }
const TrackerTopology * tTopo_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MonitorElement * book2DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
std::map< std::string, ClusterMEs > layerMEs_
std::string getOTHistoId(uint32_t det_id, const TrackerTopology *tTopo)
const TrackerGeometry * tkGeom_
ModuleType getDetectorType(DetId) const
MonitorElement * book1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
Log< level::Info, false > LogInfo
Log< level::Warning, false > LogWarning

◆ dqmBeginRun()

void Phase2OTMonitorCluster::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 98 of file Phase2OTMonitorCluster.cc.

References geomToken_, edm::EventSetup::getData(), tkGeom_, topoToken_, and tTopo_.

98  {
99  tkGeom_ = &iSetup.getData(geomToken_);
100  tTopo_ = &iSetup.getData(topoToken_);
101 }
const TrackerTopology * tTopo_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
const TrackerGeometry * tkGeom_
bool getData(T &iHolder) const
Definition: EventSetup.h:122
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_

◆ fillDescriptions()

void Phase2OTMonitorCluster::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 264 of file Phase2OTMonitorCluster.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, HLT_2022v12_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

264  {
265  // rechitMonitorOT
267  {
269  psd0.add<std::string>("name", "NumberOfClusters");
270  psd0.add<std::string>("title", ";Number of clusters per event;");
271  psd0.add<double>("xmin", 0.0);
272  psd0.add<bool>("switch", true);
273  psd0.add<double>("xmax", 350000.0);
274  psd0.add<int>("NxBins", 150);
275  desc.add<edm::ParameterSetDescription>("GlobalNClusters", psd0);
276  }
277  {
279  psd0.add<std::string>("name", "Global_ClusterPosition_XY_P");
280  psd0.add<std::string>("title", "Global_ClusterPosition_XY_P;x [mm];y [mm];");
281  psd0.add<int>("NxBins", 1250);
282  psd0.add<double>("xmin", -1250.0);
283  psd0.add<double>("xmax", 1250.0);
284  psd0.add<int>("NyBins", 1250);
285  psd0.add<double>("ymin", -1250.0);
286  psd0.add<double>("ymax", 1250.0);
287  psd0.add<bool>("switch", true);
288  desc.add<edm::ParameterSetDescription>("GlobalPositionXY_P", psd0);
289  }
290  {
292  psd0.add<std::string>("name", "Global_ClusterPosition_XY_S");
293  psd0.add<std::string>("title", "Global_ClusterPosition_XY_S;x [mm];y [mm];");
294  psd0.add<int>("NxBins", 1250);
295  psd0.add<double>("xmin", -1250.0);
296  psd0.add<double>("xmax", 1250.0);
297  psd0.add<int>("NyBins", 1250);
298  psd0.add<double>("ymin", -1250.0);
299  psd0.add<double>("ymax", 1250.0);
300  psd0.add<bool>("switch", true);
301  desc.add<edm::ParameterSetDescription>("GlobalPositionXY_S", psd0);
302  }
303 
304  {
306  psd0.add<std::string>("name", "Global_ClusterPosition_RZ_P");
307  psd0.add<std::string>("title", "Global_ClusterPosition_RZ_P;z [mm];r [mm]");
308  psd0.add<int>("NxBins", 1500);
309  psd0.add<double>("xmin", -3000.0);
310  psd0.add<double>("xmax", 3000.0);
311  psd0.add<int>("NyBins", 1250);
312  psd0.add<double>("ymin", 0.0);
313  psd0.add<double>("ymax", 1250.0);
314  psd0.add<bool>("switch", true);
315  desc.add<edm::ParameterSetDescription>("GlobalPositionRZ_P", psd0);
316  }
317  {
319  psd0.add<std::string>("name", "Global_ClusterPosition_RZ_S");
320  psd0.add<std::string>("title", "Global_ClusterPosition_RZ_S;z [mm];r [mm]");
321  psd0.add<int>("NxBins", 1500);
322  psd0.add<double>("xmin", -3000.0);
323  psd0.add<double>("xmax", 3000.0);
324  psd0.add<int>("NyBins", 1250);
325  psd0.add<double>("ymin", 0.0);
326  psd0.add<double>("ymax", 1250.0);
327  psd0.add<bool>("switch", true);
328  desc.add<edm::ParameterSetDescription>("GlobalPositionRZ_S", psd0);
329  }
330  //Layer wise parameter
331  {
333  psd0.add<std::string>("name", "NumberOfClustersLayerP");
334  psd0.add<std::string>("title", ";Number of clusters per event(macro pixel sensor);");
335  psd0.add<double>("xmin", 0.0);
336  psd0.add<double>("xmax", 28000.0);
337  psd0.add<int>("NxBins", 150);
338  psd0.add<bool>("switch", true);
339  desc.add<edm::ParameterSetDescription>("NClustersLayer_P", psd0);
340  }
341  {
343  psd0.add<std::string>("name", "NumberOfClustersLayerS");
344  psd0.add<std::string>("title", ";Number of clusters per event(strip sensor);");
345  psd0.add<double>("xmin", 0.0);
346  psd0.add<double>("xmax", 28000.0);
347  psd0.add<int>("NxBins", 150);
348  psd0.add<bool>("switch", true);
349  desc.add<edm::ParameterSetDescription>("NClustersLayer_S", psd0);
350  }
351  {
353  psd0.add<std::string>("name", "ClusterSize_P");
354  psd0.add<std::string>("title", ";cluster size(macro pixel sensor);");
355  psd0.add<double>("xmin", -0.5);
356  psd0.add<double>("xmax", 30.5);
357  psd0.add<int>("NxBins", 31);
358  psd0.add<bool>("switch", true);
359  desc.add<edm::ParameterSetDescription>("ClusterSize_P", psd0);
360  }
361  {
363  psd0.add<std::string>("name", "ClusterSize_S");
364  psd0.add<std::string>("title", ";cluster size(strip sensor);");
365  psd0.add<double>("xmin", -0.5);
366  psd0.add<double>("xmax", 30.5);
367  psd0.add<int>("NxBins", 31);
368  psd0.add<bool>("switch", true);
369  desc.add<edm::ParameterSetDescription>("ClusterSize_S", psd0);
370  }
371  {
373  psd0.add<std::string>("name", "GlobalPositionXY_perlayer_P");
374  psd0.add<std::string>("title", "GlobalClusterPositionXY_perlayer_P;x [mm];y [mm];");
375  psd0.add<int>("NxBins", 1250);
376  psd0.add<double>("xmin", -1250.0);
377  psd0.add<double>("xmax", 1250.0);
378  psd0.add<int>("NyBins", 1250);
379  psd0.add<double>("ymin", -1250.0);
380  psd0.add<double>("ymax", 1250.0);
381  psd0.add<bool>("switch", false);
382  desc.add<edm::ParameterSetDescription>("GlobalPositionXY_perlayer_P", psd0);
383  }
384  {
386  psd0.add<std::string>("name", "GlobalPositionXY_perlayer_S");
387  psd0.add<std::string>("title", "GlobalClusterPositionXY_perlayer_S;x [mm];y [mm];");
388  psd0.add<int>("NxBins", 1250);
389  psd0.add<double>("xmin", -1250.0);
390  psd0.add<double>("xmax", 1250.0);
391  psd0.add<int>("NyBins", 1250);
392  psd0.add<double>("ymin", -1250.0);
393  psd0.add<double>("ymax", 1250.0);
394  psd0.add<bool>("switch", false);
395  desc.add<edm::ParameterSetDescription>("GlobalPositionXY_perlayer_S", psd0);
396  }
397  {
399  psd0.add<std::string>("name", "LocalPositionXY_P");
400  psd0.add<std::string>("title", "LocalPositionXY_P;x ;y ;");
401  psd0.add<int>("NxBins", 50);
402  psd0.add<double>("xmin", -10.0);
403  psd0.add<double>("xmax", 10.0);
404  psd0.add<int>("NyBins", 50);
405  psd0.add<double>("ymin", -10.0);
406  psd0.add<double>("ymax", 10.0);
407  psd0.add<bool>("switch", true);
408  desc.add<edm::ParameterSetDescription>("LocalPositionXY_P", psd0);
409  }
410  {
412  psd0.add<std::string>("name", "LocalPositionXY_S");
413  psd0.add<std::string>("title", "LocalPositionXY_S;x ;y ;");
414  psd0.add<int>("NxBins", 50);
415  psd0.add<double>("xmin", -10.0);
416  psd0.add<double>("xmax", 10.0);
417  psd0.add<int>("NyBins", 50);
418  psd0.add<double>("ymin", -10.0);
419  psd0.add<double>("ymax", 10.0);
420  psd0.add<bool>("switch", true);
421  desc.add<edm::ParameterSetDescription>("LocalPositionXY_S", psd0);
422  }
423 
424  desc.add<std::string>("TopFolderName", "TrackerPhase2OTCluster");
425  desc.add<edm::InputTag>("clusterSrc", edm::InputTag("siPhase2Clusters"));
426  descriptions.add("Phase2OTMonitorCluster", desc);
427 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillOTHistos()

void Phase2OTMonitorCluster::fillOTHistos ( const edm::Event iEvent)
private

Member Data Documentation

◆ clustersToken_

edm::EDGetTokenT<Phase2TrackerCluster1DCollectionNew> Phase2OTMonitorCluster::clustersToken_
private

Definition at line 75 of file Phase2OTMonitorCluster.cc.

Referenced by analyze().

◆ config_

edm::ParameterSet Phase2OTMonitorCluster::config_
private

Definition at line 74 of file Phase2OTMonitorCluster.cc.

Referenced by bookHistograms(), and bookLayerHistos().

◆ geomToken_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> Phase2OTMonitorCluster::geomToken_
private

Definition at line 76 of file Phase2OTMonitorCluster.cc.

Referenced by dqmBeginRun().

◆ globalRZ_P_

MonitorElement* Phase2OTMonitorCluster::globalRZ_P_
private

Definition at line 64 of file Phase2OTMonitorCluster.cc.

Referenced by analyze(), and bookHistograms().

◆ globalRZ_S_

MonitorElement* Phase2OTMonitorCluster::globalRZ_S_
private

Definition at line 66 of file Phase2OTMonitorCluster.cc.

Referenced by analyze(), and bookHistograms().

◆ globalXY_P_

MonitorElement* Phase2OTMonitorCluster::globalXY_P_
private

Definition at line 63 of file Phase2OTMonitorCluster.cc.

Referenced by analyze(), and bookHistograms().

◆ globalXY_S_

MonitorElement* Phase2OTMonitorCluster::globalXY_S_
private

Definition at line 65 of file Phase2OTMonitorCluster.cc.

Referenced by analyze(), and bookHistograms().

◆ layerMEs_

std::map<std::string, ClusterMEs> Phase2OTMonitorCluster::layerMEs_
private

Definition at line 72 of file Phase2OTMonitorCluster.cc.

Referenced by analyze(), and bookLayerHistos().

◆ numberClusters_

MonitorElement* Phase2OTMonitorCluster::numberClusters_
private

Definition at line 62 of file Phase2OTMonitorCluster.cc.

Referenced by analyze(), and bookHistograms().

◆ tkGeom_

const TrackerGeometry* Phase2OTMonitorCluster::tkGeom_ = nullptr
private

Definition at line 78 of file Phase2OTMonitorCluster.cc.

Referenced by analyze(), bookHistograms(), bookLayerHistos(), and dqmBeginRun().

◆ topoToken_

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> Phase2OTMonitorCluster::topoToken_
private

Definition at line 77 of file Phase2OTMonitorCluster.cc.

Referenced by dqmBeginRun().

◆ tTopo_

const TrackerTopology* Phase2OTMonitorCluster::tTopo_ = nullptr
private

Definition at line 79 of file Phase2OTMonitorCluster.cc.

Referenced by analyze(), bookHistograms(), bookLayerHistos(), and dqmBeginRun().