CMS 3D CMS Logo

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

#include <Phase2OTMonitorVectorHits.cc>

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

Classes

struct  VecHitME
 

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
 
 Phase2OTMonitorVectorHits (const edm::ParameterSet &)
 
 ~Phase2OTMonitorVectorHits () 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, unsigned int det_id, std::string &subdir)
 

Private Attributes

edm::ParameterSet config_
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomToken_
 
MonitorElementglobalRZ_P_ = nullptr
 
MonitorElementglobalRZ_S_ = nullptr
 
MonitorElementglobalXY_P_ = nullptr
 
MonitorElementglobalXY_S_ = nullptr
 
std::map< std::string, VecHitMElayerMEs_
 
const MagneticFieldmagField_ = nullptr
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmagFieldToken_
 
MonitorElementnumberVecHits_ = nullptr
 
const TrackerGeometrytkGeom_ = nullptr
 
const edm::EDGetTokenT< VectorHitCollectiontokenVecHitsOT_
 
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: DQM module to monitor Phase2 VectorHit

Definition at line 44 of file Phase2OTMonitorVectorHits.cc.

Constructor & Destructor Documentation

◆ Phase2OTMonitorVectorHits()

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

Definition at line 98 of file Phase2OTMonitorVectorHits.cc.

99  : config_(iConfig),
100  tokenVecHitsOT_(consumes<VectorHitCollection>(config_.getParameter<edm::InputTag>("vechitsSrc"))),
101  geomToken_(esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginRun>()),
102  topoToken_(esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginRun>()),
103  magFieldToken_(esConsumes<MagneticField, IdealMagneticFieldRecord, edm::Transition::BeginRun>()) {
104  edm::LogInfo("Phase2OTMonitorVectorHits") << ">>> Construct Phase2OTMonitorVectorHits ";
105 }
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
const edm::EDGetTokenT< VectorHitCollection > tokenVecHitsOT_
Log< level::Info, false > LogInfo

◆ ~Phase2OTMonitorVectorHits()

Phase2OTMonitorVectorHits::~Phase2OTMonitorVectorHits ( )
override

Definition at line 110 of file Phase2OTMonitorVectorHits.cc.

110  {
111  // do anything here that needs to be done at desctruction time
112  // (e.g. close files, deallocate resources etc.)
113  edm::LogInfo("Phase2OTMonitorVectorHits") << ">>> Destroy Phase2OTMonitorVectorHits ";
114 }
Log< level::Info, false > LogInfo

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 126 of file Phase2OTMonitorVectorHits.cc.

References edmNew::DetSet< T >::begin(), PixelRecoUtilities::curvature(), edmNew::DetSet< T >::end(), PVValHelper::eta, PV3DBase< T, PVType, FrameType >::eta(), f, dqm::impl::MonitorElement::Fill(), TrackerGeometry::getDetectorType(), phase2tkutil::getOTHistoId(), globalRZ_P_, globalRZ_S_, globalXY_P_, globalXY_S_, iEvent, MagneticField::inTesla(), crabWrapper::key, layerMEs_, magField_, numberVecHits_, PV3DBase< T, PVType, FrameType >::perp(), TrackerGeometry::Ph2PSP, TrackerGeometry::Ph2SS, phi, PV3DBase< T, PVType, FrameType >::phi(), Validation_hcalonly_cfi::sign, AlCaHLTBitMon_QueryRunRegistry::string, tkGeom_, tokenVecHitsOT_, tTopo_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

126  {
127  // Get the VecHits
128  const auto& vechits = iEvent.getHandle(tokenVecHitsOT_);
129  if (!vechits.isValid())
130  return;
131  std::map<std::string, unsigned int> nvechitLayerMapP;
132  std::map<std::string, unsigned int> nvechitLayerMapS;
133  unsigned long int nTotvechitsinevt = 0;
134  // Loop over modules
136  for (DSViter = vechits->begin(); DSViter != vechits->end(); ++DSViter) {
137  // Get the detector unit's id
138  unsigned int rawid(DSViter->detId());
139  DetId detId(rawid);
142  continue;
144  nTotvechitsinevt += DSViter->size();
146  if (nvechitLayerMapP.find(key) == nvechitLayerMapP.end()) {
147  nvechitLayerMapP.insert(std::make_pair(key, DSViter->size()));
148  } else {
149  nvechitLayerMapP[key] += DSViter->size();
150  }
151  } else if (mType == TrackerGeometry::ModuleType::Ph2SS) {
152  if (nvechitLayerMapS.find(key) == nvechitLayerMapS.end()) {
153  nvechitLayerMapS.insert(std::make_pair(key, DSViter->size()));
154  } else {
155  nvechitLayerMapS[key] += DSViter->size();
156  }
157  }
158 
160  for (vechitIt = DSViter->begin(); vechitIt != DSViter->end(); ++vechitIt) {
161  const Global3DPoint globalPos = vechitIt->lowerGlobalPos();
162  const LocalPoint lp = vechitIt->localPosition();
163  const double gx = globalPos.x() * 10.;
164  const double gy = globalPos.y() * 10.;
165  const double gz = globalPos.z() * 10.;
166  const double gr = globalPos.perp() * 10.;
167  const Global3DVector globalVec = vechitIt->globalDirection();
168  const float curvature = vechitIt->curvature();
169  const float curverr = vechitIt->curvatureError();
170  const float eta = globalVec.eta();
171  const float phi = globalVec.phi();
172  float QOverPT = vechitIt->transverseMomentum(magField_->inTesla(GlobalPoint(0., 0., 0.)).z());
173  const int sign = QOverPT > 0. ? 1. : -1.;
175  globalXY_P_->Fill(gx, gy);
176  globalRZ_P_->Fill(gz, gr);
177  //layer wise histo
178  layerMEs_[key].localPosXY_P->Fill(lp.x(), lp.y());
179  layerMEs_[key].curvature_P->Fill(curvature);
180  if (curvature != 0.f)
181  layerMEs_[key].curvErr_P->Fill(curverr / curvature);
182  else
183  edm::LogError("Phase2OTMonitorVectorHits") << "VectorHit with curvature zero found";
184  layerMEs_[key].phi_P->Fill(phi);
185  layerMEs_[key].eta_P->Fill(eta);
186  layerMEs_[key].pt_P->Fill(sign * QOverPT);
187  layerMEs_[key].chi2_P->Fill(vechitIt->chi2());
188  layerMEs_[key].curvatureVsEta_P->Fill(eta, curvature);
189  } else if (mType == TrackerGeometry::ModuleType::Ph2SS) {
190  globalXY_S_->Fill(gx, gy);
191  globalRZ_S_->Fill(gz, gr);
192  //layer wise histo
193  layerMEs_[key].localPosXY_S->Fill(lp.x(), lp.y());
194  layerMEs_[key].curvature_S->Fill(curvature);
195  if (curvature != 0.f)
196  layerMEs_[key].curvErr_S->Fill(curverr / curvature);
197  else
198  edm::LogError("Phase2OTMonitorVectorHits") << "VectorHit with curvature zero found";
199  layerMEs_[key].phi_S->Fill(phi);
200  layerMEs_[key].eta_S->Fill(eta);
201  layerMEs_[key].pt_S->Fill(sign * QOverPT);
202  layerMEs_[key].chi2_S->Fill(vechitIt->chi2());
203  layerMEs_[key].curvatureVsEta_S->Fill(eta, curvature);
204  }
205  }
206  }
207  //fill nVecHits per event
208  numberVecHits_->Fill(nTotvechitsinevt);
209  //fill nVecHit counter per layer
210  for (auto& lme : nvechitLayerMapP) {
211  layerMEs_[lme.first].numberVecHits_P->Fill(lme.second);
212  }
213  for (auto& lme : nvechitLayerMapS) {
214  layerMEs_[lme.first].numberVecHits_S->Fill(lme.second);
215  }
216 }
T perp() const
Definition: PV3DBase.h:69
T z() const
Definition: PV3DBase.h:61
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
T eta() const
Definition: PV3DBase.h:73
std::map< std::string, VecHitME > layerMEs_
data_type const * const_iterator
Definition: DetSetNew.h:31
Log< level::Error, false > LogError
T curvature(T InversePt, const MagneticField &field)
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)
ModuleType getDetectorType(DetId) const
double f[11][100]
const edm::EDGetTokenT< VectorHitCollection > tokenVecHitsOT_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetId.h:17
iterator end()
Definition: DetSetNew.h:53

◆ bookHistograms()

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

Implements DQMEDAnalyzer.

Definition at line 220 of file Phase2OTMonitorVectorHits.cc.

References phase2tkutil::book1DFromPSet(), phase2tkutil::book2DFromPSet(), bookLayerHistos(), dqm::implementation::NavigatorBase::cd(), edm::ESWatcher< T >::check(), config_, TrackerGeometry::detUnits(), TrackerGeometry::getDetectorType(), edm::ParameterSet::getParameter(), globalRZ_P_, globalRZ_S_, globalXY_P_, globalXY_S_, numberVecHits_, TrackerGeometry::Ph2PSP, TrackerGeometry::Ph2SS, dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and tkGeom_.

222  {
223  std::string top_folder = config_.getParameter<std::string>("TopFolderName");
224  //std::stringstream folder_name;
225 
226  ibooker.cd();
227  edm::LogInfo("Phase2OTMonitorVectorHits") << " Booking Histograms in : " << top_folder;
228  ibooker.setCurrentFolder(top_folder);
229 
230  //Global histos for OT
232 
234 
236 
238 
240 
241  //Now book layer wise histos
242  edm::ESWatcher<TrackerDigiGeometryRecord> theTkDigiGeomWatcher;
243  if (theTkDigiGeomWatcher.check(iSetup)) {
244  for (auto const& det_u : tkGeom_->detUnits()) {
245  unsigned int detId_raw = det_u->geographicalId().rawId();
246  //we only need the layerwise histos for the lower layer (?)
249  continue;
250  bookLayerHistos(ibooker, detId_raw, top_folder);
251  }
252  }
253 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
void bookLayerHistos(DQMStore::IBooker &ibooker, unsigned int det_id, std::string &subdir)
MonitorElement * book2DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
ModuleType getDetectorType(DetId) const
MonitorElement * book1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
Log< level::Info, false > LogInfo
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57

◆ bookLayerHistos()

void Phase2OTMonitorVectorHits::bookLayerHistos ( DQMStore::IBooker ibooker,
unsigned int  det_id,
std::string &  subdir 
)
private

Definition at line 258 of file Phase2OTMonitorVectorHits.cc.

References phase2tkutil::book1DFromPSet(), phase2tkutil::book2DFromPSet(), phase2tkutil::bookProfile1DFromPSet(), dqm::implementation::NavigatorBase::cd(), Phase2OTMonitorVectorHits::VecHitME::chi2_P, Phase2OTMonitorVectorHits::VecHitME::chi2_S, config_, Phase2OTMonitorVectorHits::VecHitME::curvature_P, Phase2OTMonitorVectorHits::VecHitME::curvature_S, Phase2OTMonitorVectorHits::VecHitME::curvatureVsEta_P, Phase2OTMonitorVectorHits::VecHitME::curvatureVsEta_S, Phase2OTMonitorVectorHits::VecHitME::curvErr_P, Phase2OTMonitorVectorHits::VecHitME::curvErr_S, Phase2OTMonitorVectorHits::VecHitME::eta_P, Phase2OTMonitorVectorHits::VecHitME::eta_S, TrackerGeometry::getDetectorType(), phase2tkutil::getOTHistoId(), edm::ParameterSet::getParameter(), crabWrapper::key, layerMEs_, Phase2OTMonitorVectorHits::VecHitME::localPosXY_P, Phase2OTMonitorVectorHits::VecHitME::localPosXY_S, Phase2OTMonitorVectorHits::VecHitME::numberVecHits_P, Phase2OTMonitorVectorHits::VecHitME::numberVecHits_S, TrackerGeometry::Ph2PSP, Phase2OTMonitorVectorHits::VecHitME::phi_P, Phase2OTMonitorVectorHits::VecHitME::phi_S, Phase2OTMonitorVectorHits::VecHitME::pt_P, Phase2OTMonitorVectorHits::VecHitME::pt_S, dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, mkLumiAveragedPlots::subdir, tkGeom_, and tTopo_.

Referenced by bookHistograms().

258  {
260  if (layerMEs_.find(key) == layerMEs_.end()) {
261  ibooker.cd();
262  VecHitME local_histos;
263  ibooker.setCurrentFolder(subdir + "/" + key);
264  edm::LogInfo("Phase2OTMonitorVectorHits") << " Booking Histograms in : " << key;
265  //either PSP or SS - ensured by the call from bookHisto
267  local_histos.numberVecHits_P =
269  local_histos.localPosXY_P =
270  phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("LocalPositionXY_P"), ibooker);
271  local_histos.curvature_P =
273  local_histos.curvErr_P =
275  local_histos.phi_P = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Phi"), ibooker);
276  local_histos.eta_P = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Eta"), ibooker);
277  local_histos.pt_P = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pt"), ibooker);
278  local_histos.chi2_P = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Chi2"), ibooker);
279  local_histos.curvatureVsEta_P =
281  } else {
282  ibooker.setCurrentFolder(subdir + "/" + key);
283  local_histos.numberVecHits_S =
285  local_histos.localPosXY_S =
286  phase2tkutil::book2DFromPSet(config_.getParameter<edm::ParameterSet>("LocalPositionXY_S"), ibooker);
287  local_histos.curvature_S =
289  local_histos.curvErr_S =
291  local_histos.phi_S = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Phi"), ibooker);
292  local_histos.eta_S = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Eta"), ibooker);
293  local_histos.pt_S = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Pt"), ibooker);
294  local_histos.chi2_S = phase2tkutil::book1DFromPSet(config_.getParameter<edm::ParameterSet>("Chi2"), ibooker);
295  local_histos.curvatureVsEta_S =
297  }
298  layerMEs_.insert(std::make_pair(key, local_histos));
299  }
300 }
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:36
std::map< std::string, VecHitME > layerMEs_
MonitorElement * bookProfile1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
std::string getOTHistoId(uint32_t det_id, const TrackerTopology *tTopo)
ModuleType getDetectorType(DetId) const
MonitorElement * book1DFromPSet(const edm::ParameterSet &hpars, DQMStore::IBooker &ibooker)
Log< level::Info, false > LogInfo

◆ dqmBeginRun()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 117 of file Phase2OTMonitorVectorHits.cc.

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

117  {
118  tkGeom_ = &iSetup.getData(geomToken_);
119  tTopo_ = &iSetup.getData(topoToken_);
120  magField_ = &iSetup.getData(magFieldToken_);
121 }
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_

◆ fillDescriptions()

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

Definition at line 304 of file Phase2OTMonitorVectorHits.cc.

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

304  {
305  // vechitMonitorOT
307  {
309  psd0.add<std::string>("name", "NumberOfVecHits");
310  psd0.add<std::string>("title", ";Number of vechits per event;");
311  psd0.add<double>("xmin", 0.0);
312  psd0.add<bool>("switch", true);
313  psd0.add<double>("xmax", 15000.0);
314  psd0.add<int>("NxBins", 150);
315  desc.add<edm::ParameterSetDescription>("GlobalNVecHits", psd0);
316  }
317  {
319  psd0.add<std::string>("name", "Global_VecHitPosition_XY_P");
320  psd0.add<std::string>("title", "Global_VecHitPosition_XY_P;x [mm];y [mm];");
321  psd0.add<int>("NxBins", 1250);
322  psd0.add<double>("xmin", -1250.0);
323  psd0.add<double>("xmax", 1250.0);
324  psd0.add<int>("NyBins", 1250);
325  psd0.add<double>("ymin", -1250.0);
326  psd0.add<double>("ymax", 1250.0);
327  psd0.add<bool>("switch", true);
328  desc.add<edm::ParameterSetDescription>("GlobalPositionXY_P", psd0);
329  }
330  {
332  psd0.add<std::string>("name", "Global_VecHitPosition_XY_S");
333  psd0.add<std::string>("title", "Global_VecHitPosition_XY_S;x [mm];y [mm];");
334  psd0.add<int>("NxBins", 1250);
335  psd0.add<double>("xmin", -1250.0);
336  psd0.add<double>("xmax", 1250.0);
337  psd0.add<int>("NyBins", 1250);
338  psd0.add<double>("ymin", -1250.0);
339  psd0.add<double>("ymax", 1250.0);
340  psd0.add<bool>("switch", true);
341  desc.add<edm::ParameterSetDescription>("GlobalPositionXY_S", psd0);
342  }
343  {
345  psd0.add<std::string>("name", "Global_VecHitPosition_RZ_P");
346  psd0.add<std::string>("title", "Global_VecHitPosition_RZ_P;z [mm];r [mm]");
347  psd0.add<int>("NxBins", 1500);
348  psd0.add<double>("xmin", -3000.0);
349  psd0.add<double>("xmax", 3000.0);
350  psd0.add<int>("NyBins", 1250);
351  psd0.add<double>("ymin", 0.0);
352  psd0.add<double>("ymax", 1250.0);
353  psd0.add<bool>("switch", true);
354  desc.add<edm::ParameterSetDescription>("GlobalPositionRZ_P", psd0);
355  }
356  {
358  psd0.add<std::string>("name", "Global_VecHitPosition_RZ_S");
359  psd0.add<std::string>("title", "Global_VecHitPosition_RZ_S;z [mm];r [mm]");
360 
361  psd0.add<int>("NxBins", 1500);
362  psd0.add<double>("xmin", -3000.0);
363  psd0.add<double>("xmax", 3000.0);
364  psd0.add<int>("NyBins", 1250);
365  psd0.add<double>("ymin", 0.0);
366  psd0.add<double>("ymax", 1250.0);
367  psd0.add<bool>("switch", true);
368  desc.add<edm::ParameterSetDescription>("GlobalPositionRZ_S", psd0);
369  }
370  //Layer wise parameter
371  {
373  psd0.add<std::string>("name", "NumberOfVecHitsLayerP");
374  psd0.add<std::string>("title", ";Number of vector hits per event(macro pixel sensor);");
375  psd0.add<double>("xmin", 0.0);
376  psd0.add<double>("xmax", 5000.0);
377  psd0.add<int>("NxBins", 100);
378  psd0.add<bool>("switch", true);
379  desc.add<edm::ParameterSetDescription>("NVecHitsLayer_P", psd0);
380  }
381 
382  {
384  psd0.add<std::string>("name", "NumberOfVecHitsLayerS");
385  psd0.add<std::string>("title", ";Number of vector hits per event(strip sensor);");
386  psd0.add<double>("xmin", 0.0);
387  psd0.add<double>("xmax", 5000.0);
388  psd0.add<int>("NxBins", 100);
389  psd0.add<bool>("switch", true);
390  desc.add<edm::ParameterSetDescription>("NVecHitsLayer_S", psd0);
391  }
392  {
394  psd0.add<std::string>("name", "LocalPositionXY_P");
395  psd0.add<std::string>("title", "LocalPositionXY_P;x ;y ;");
396  psd0.add<int>("NxBins", 50);
397  psd0.add<double>("xmin", -10.0);
398  psd0.add<double>("xmax", 10.0);
399  psd0.add<int>("NyBins", 50);
400  psd0.add<double>("ymin", -10.0);
401  psd0.add<double>("ymax", 10.0);
402  psd0.add<bool>("switch", true);
403  desc.add<edm::ParameterSetDescription>("LocalPositionXY_P", psd0);
404  }
405  {
407  psd0.add<std::string>("name", "LocalPositionXY_S");
408  psd0.add<std::string>("title", "LocalPositionXY_S;x ;y ;");
409  psd0.add<int>("NxBins", 50);
410  psd0.add<double>("xmin", -10.0);
411  psd0.add<double>("xmax", 10.0);
412  psd0.add<int>("NyBins", 50);
413  psd0.add<double>("ymin", -10.0);
414  psd0.add<double>("ymax", 10.0);
415  psd0.add<bool>("switch", true);
416  desc.add<edm::ParameterSetDescription>("LocalPositionXY_S", psd0);
417  }
418 
419  {
421  psd0.add<std::string>("name", "CurvatureOfVecHits");
422  psd0.add<std::string>("title", ";VectorHit curvature;");
423  psd0.add<double>("xmin", -0.05);
424  psd0.add<bool>("switch", true);
425  psd0.add<double>("xmax", 0.05);
426  psd0.add<int>("NxBins", 200);
427  desc.add<edm::ParameterSetDescription>("Curvature", psd0);
428  }
429  {
431  psd0.add<std::string>("name", "CurvatureErrOCurvature");
432  psd0.add<std::string>("title", ";VectorHit #delta#rho/#rho;");
433  psd0.add<double>("xmin", -0.05);
434  psd0.add<bool>("switch", true);
435  psd0.add<double>("xmax", 0.05);
436  psd0.add<int>("NxBins", 500);
437  desc.add<edm::ParameterSetDescription>("CurvErr", psd0);
438  }
439  {
441  psd0.add<std::string>("name", "PhiOfVecHits");
442  psd0.add<std::string>("title", ";VectorHit #phi;");
443  psd0.add<double>("xmin", -M_PI);
444  psd0.add<bool>("switch", true);
445  psd0.add<double>("xmax", M_PI);
446  psd0.add<int>("NxBins", 30);
447  desc.add<edm::ParameterSetDescription>("Phi", psd0);
448  }
449  {
451  psd0.add<std::string>("name", "EtaOfVecHits");
452  psd0.add<std::string>("title", ";VectorHit #eta;");
453  psd0.add<double>("xmin", -5.);
454  psd0.add<bool>("switch", true);
455  psd0.add<double>("xmax", 5.);
456  psd0.add<int>("NxBins", 50);
457  desc.add<edm::ParameterSetDescription>("Eta", psd0);
458  }
459  {
461  psd0.add<std::string>("name", "PtOfVecHits");
462  psd0.add<std::string>("title", "VectorHit p_T;p_T ;");
463  psd0.add<int>("NxBins", 100);
464  psd0.add<double>("xmin", 0.);
465  psd0.add<double>("xmax", 200.0);
466  psd0.add<bool>("switch", true);
467  desc.add<edm::ParameterSetDescription>("Pt", psd0);
468  }
469  {
471  psd0.add<std::string>("name", "Chi2OfVecHits");
472  psd0.add<std::string>("title", "VectorHit chi squared; #chi^2;");
473  psd0.add<int>("NxBins", 100);
474  psd0.add<double>("xmin", 0.);
475  psd0.add<double>("xmax", 0.000001);
476  psd0.add<bool>("switch", true);
477  desc.add<edm::ParameterSetDescription>("Chi2", psd0);
478  }
479  {
481  psd0.add<std::string>("name", "CurvatureVsEtaProf_P");
482  psd0.add<std::string>("title", "Curvature vs #eta (macro-pixel);#eta ;curvature ;");
483  psd0.add<int>("NxBins", 50);
484  psd0.add<double>("xmin", -5.0);
485  psd0.add<double>("xmax", 5.0);
486  psd0.add<double>("ymin", -0.05);
487  psd0.add<double>("ymax", 0.05);
488  psd0.add<bool>("switch", true);
489  desc.add<edm::ParameterSetDescription>("CurvatureVsEta_P", psd0);
490  }
491  {
493  psd0.add<std::string>("name", "CurvatureVsEtaProf_S");
494  psd0.add<std::string>("title", "Curvature vs #eta (strip);#eta ;curvature ;");
495  psd0.add<int>("NxBins", 25);
496  psd0.add<double>("xmin", -5.0);
497  psd0.add<double>("xmax", 5.0);
498  psd0.add<double>("ymin", -0.05);
499  psd0.add<double>("ymax", 0.05);
500  psd0.add<bool>("switch", true);
501  desc.add<edm::ParameterSetDescription>("CurvatureVsEta_S", psd0);
502  }
503  desc.add<std::string>("TopFolderName", "TrackerPhase2OTVectorHits/Accepted");
504  desc.add<bool>("Verbosity", false);
505  desc.add<edm::InputTag>("vechitsSrc", edm::InputTag("siPhase2VectorHits", "accepted"));
506  descriptions.add("Phase2OTMonitorVectorHits", desc);
507 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
#define M_PI
void add(std::string const &label, ParameterSetDescription const &psetDescription)

Member Data Documentation

◆ config_

edm::ParameterSet Phase2OTMonitorVectorHits::config_
private

Definition at line 56 of file Phase2OTMonitorVectorHits.cc.

Referenced by bookHistograms(), and bookLayerHistos().

◆ geomToken_

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

Definition at line 59 of file Phase2OTMonitorVectorHits.cc.

Referenced by dqmBeginRun().

◆ globalRZ_P_

MonitorElement* Phase2OTMonitorVectorHits::globalRZ_P_ = nullptr
private

Definition at line 69 of file Phase2OTMonitorVectorHits.cc.

Referenced by analyze(), and bookHistograms().

◆ globalRZ_S_

MonitorElement* Phase2OTMonitorVectorHits::globalRZ_S_ = nullptr
private

Definition at line 71 of file Phase2OTMonitorVectorHits.cc.

Referenced by analyze(), and bookHistograms().

◆ globalXY_P_

MonitorElement* Phase2OTMonitorVectorHits::globalXY_P_ = nullptr
private

Definition at line 68 of file Phase2OTMonitorVectorHits.cc.

Referenced by analyze(), and bookHistograms().

◆ globalXY_S_

MonitorElement* Phase2OTMonitorVectorHits::globalXY_S_ = nullptr
private

Definition at line 70 of file Phase2OTMonitorVectorHits.cc.

Referenced by analyze(), and bookHistograms().

◆ layerMEs_

std::map<std::string, VecHitME> Phase2OTMonitorVectorHits::layerMEs_
private

Definition at line 92 of file Phase2OTMonitorVectorHits.cc.

Referenced by analyze(), and bookLayerHistos().

◆ magField_

const MagneticField* Phase2OTMonitorVectorHits::magField_ = nullptr
private

Definition at line 65 of file Phase2OTMonitorVectorHits.cc.

Referenced by analyze(), and dqmBeginRun().

◆ magFieldToken_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> Phase2OTMonitorVectorHits::magFieldToken_
private

Definition at line 61 of file Phase2OTMonitorVectorHits.cc.

Referenced by dqmBeginRun().

◆ numberVecHits_

MonitorElement* Phase2OTMonitorVectorHits::numberVecHits_ = nullptr
private

Definition at line 67 of file Phase2OTMonitorVectorHits.cc.

Referenced by analyze(), and bookHistograms().

◆ tkGeom_

const TrackerGeometry* Phase2OTMonitorVectorHits::tkGeom_ = nullptr
private

Definition at line 63 of file Phase2OTMonitorVectorHits.cc.

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

◆ tokenVecHitsOT_

const edm::EDGetTokenT<VectorHitCollection> Phase2OTMonitorVectorHits::tokenVecHitsOT_
private

Definition at line 57 of file Phase2OTMonitorVectorHits.cc.

Referenced by analyze().

◆ topoToken_

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

Definition at line 60 of file Phase2OTMonitorVectorHits.cc.

Referenced by dqmBeginRun().

◆ tTopo_

const TrackerTopology* Phase2OTMonitorVectorHits::tTopo_ = nullptr
private

Definition at line 64 of file Phase2OTMonitorVectorHits.cc.

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