CMS 3D CMS Logo

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

#include <DQM/TrackingMonitor/src/TrackSplittingMonitor.cc>

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

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 TrackSplittingMonitor (const edm::ParameterSet &)
 
 ~TrackSplittingMonitor () override=default
 
- 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
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 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 doProfileX (TH2 *th2, MonitorElement *me)
 
void doProfileX (MonitorElement *th2m, MonitorElement *me)
 

Private Attributes

edm::ParameterSet conf_
 
const CSCGeometrycscGeometry
 
const edm::ESGetToken< CSCGeometry, MuonGeometryRecordcscGeomToken_
 
const double d0Cut_
 
MonitorElementdcurvAbsoluteResiduals_global_
 
MonitorElementdcurvAbsoluteResiduals_tracker_
 
MonitorElementdcurvNormalizedResiduals_global_
 
MonitorElementdcurvNormalizedResiduals_tracker_
 
MonitorElementddxyAbsoluteResiduals_global_
 
MonitorElementddxyAbsoluteResiduals_tracker_
 
MonitorElementddxyNormalizedResiduals_global_
 
MonitorElementddxyNormalizedResiduals_tracker_
 
MonitorElementddzAbsoluteResiduals_global_
 
MonitorElementddzAbsoluteResiduals_tracker_
 
MonitorElementddzNormalizedResiduals_global_
 
MonitorElementddzNormalizedResiduals_tracker_
 
MonitorElementdphiAbsoluteResiduals_global_
 
MonitorElementdphiAbsoluteResiduals_tracker_
 
MonitorElementdphiNormalizedResiduals_global_
 
MonitorElementdphiNormalizedResiduals_tracker_
 
MonitorElementdptAbsoluteResiduals_global_
 
MonitorElementdptAbsoluteResiduals_tracker_
 
MonitorElementdptNormalizedResiduals_global_
 
MonitorElementdptNormalizedResiduals_tracker_
 
const DTGeometrydtGeometry
 
const edm::ESGetToken< DTGeometry, MuonGeometryRecorddtGeomToken_
 
MonitorElementdthetaAbsoluteResiduals_global_
 
MonitorElementdthetaAbsoluteResiduals_tracker_
 
MonitorElementdthetaNormalizedResiduals_global_
 
MonitorElementdthetaNormalizedResiduals_tracker_
 
const double dzCut_
 
std::string histname
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmfToken_
 
const double norchiCut_
 
const int pixelHitsPerLeg_
 
const bool plotMuons_
 
const double ptCut_
 
const RPCGeometryrpcGeometry
 
const edm::ESGetToken< RPCGeometry, MuonGeometryRecordrpcGeomToken_
 
const edm::EDGetTokenT< std::vector< reco::Muon > > splitMuonsToken_
 
const edm::EDGetTokenT< std::vector< reco::Track > > splitTracksToken_
 
const TrackerGeometrytheGeometry
 
const MagneticFieldtheMagField
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtkGeomToken_
 
const int totalHitsPerLeg_
 

Static Private Attributes

static constexpr double cmToUm = 10.e4
 
static constexpr double radToUrad = 10.e3
 
static constexpr double sqrt2 = 1.41421356237
 

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

Monitoring source for general quantities related to tracks.

Definition at line 40 of file TrackSplittingMonitor.h.

Constructor & Destructor Documentation

◆ TrackSplittingMonitor()

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

Definition at line 26 of file TrackSplittingMonitor.cc.

27  : conf_(iConfig),
33  splitTracksToken_(consumes<std::vector<reco::Track> >(conf_.getParameter<edm::InputTag>("splitTrackCollection"))),
34  splitMuonsToken_(mayConsume<std::vector<reco::Muon> >(conf_.getParameter<edm::InputTag>("splitMuonCollection"))),
35  plotMuons_(conf_.getParameter<bool>("ifPlotMuons")),
36  pixelHitsPerLeg_(conf_.getParameter<int>("pixelHitsPerLeg")),
37  totalHitsPerLeg_(conf_.getParameter<int>("totalHitsPerLeg")),
38  d0Cut_(conf_.getParameter<double>("d0Cut")),
39  dzCut_(conf_.getParameter<double>("dzCut")),
40  ptCut_(conf_.getParameter<double>("ptCut")),
41  norchiCut_(conf_.getParameter<double>("norchiCut")) {}
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
const edm::EDGetTokenT< std::vector< reco::Muon > > splitMuonsToken_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > mfToken_
const edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomToken_
const edm::EDGetTokenT< std::vector< reco::Track > > splitTracksToken_
const edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_

◆ ~TrackSplittingMonitor()

TrackSplittingMonitor::~TrackSplittingMonitor ( )
overridedefault

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 167 of file TrackSplittingMonitor.cc.

References funct::abs(), cmToUm, cscGeometry, cscGeomToken_, reco::TrackBase::d0(), d0Cut_, reco::TrackBase::d0Error(), dcurvAbsoluteResiduals_global_, dcurvAbsoluteResiduals_tracker_, dcurvNormalizedResiduals_tracker_, ddxyAbsoluteResiduals_global_, ddxyAbsoluteResiduals_tracker_, ddxyNormalizedResiduals_global_, ddxyNormalizedResiduals_tracker_, ddzAbsoluteResiduals_global_, ddzAbsoluteResiduals_tracker_, ddzNormalizedResiduals_tracker_, dphiAbsoluteResiduals_global_, dphiAbsoluteResiduals_tracker_, dphiNormalizedResiduals_tracker_, dptAbsoluteResiduals_global_, dptAbsoluteResiduals_tracker_, dptNormalizedResiduals_tracker_, dtGeometry, dtGeomToken_, dthetaAbsoluteResiduals_global_, dthetaAbsoluteResiduals_tracker_, dthetaNormalizedResiduals_tracker_, reco::TrackBase::dz(), dzCut_, reco::TrackBase::dzError(), dqm::impl::MonitorElement::Fill(), edm::EventSetup::getData(), reco::Muon::globalTrack(), iEvent, edm::HandleBase::isValid(), mfToken_, norchiCut_, reco::TrackBase::normalizedChi2(), reco::TrackBase::phi(), reco::TrackBase::phiError(), PixelSubdetector::PixelBarrel, pixelHitsPerLeg_, plotMuons_, conifer::pow(), reco::TrackBase::pt(), HLT_2023v12_cff::pt1, HLT_2023v12_cff::pt2, ptCut_, reco::TrackBase::ptError(), radToUrad, reco::Track::recHits(), rpcGeometry, rpcGeomToken_, RecoMuonCosmics_cff::splitMuons, splitMuonsToken_, splitTracksToken_, mathSSE::sqrt(), sqrt2, theGeometry, theMagField, reco::TrackBase::theta(), reco::TrackBase::thetaError(), tkGeomToken_, and totalHitsPerLeg_.

167  {
168  theMagField = &iSetup.getData(mfToken_);
169  theGeometry = &iSetup.getData(tkGeomToken_);
170  dtGeometry = &iSetup.getData(dtGeomToken_);
171  cscGeometry = &iSetup.getData(cscGeomToken_);
172  rpcGeometry = &iSetup.getData(rpcGeomToken_);
173 
175  if (!splitTracks.isValid())
176  return;
177 
179  if (plotMuons_) {
180  splitMuons = iEvent.getHandle(splitMuonsToken_);
181  }
182 
183  if (splitTracks->size() == 2) {
184  // check that there are 2 tracks in split track collection
185  edm::LogInfo("TrackSplittingMonitor") << "Split Track size: " << splitTracks->size();
186 
187  // split tracks calculations
188  reco::Track track1 = splitTracks->at(0);
189  reco::Track track2 = splitTracks->at(1);
190 
191  // -------------------------- basic selection ---------------------------
192 
193  // hit counting
194  // looping through the hits for track 1
195  double nRechits1 = 0;
196  double nRechitinBPIX1 = 0;
197  for (auto const& iHit : track1.recHits()) {
198  if (iHit->isValid()) {
199  nRechits1++;
200  int type = iHit->geographicalId().subdetId();
201  if (type == int(PixelSubdetector::PixelBarrel)) {
202  ++nRechitinBPIX1;
203  }
204  }
205  }
206  // looping through the hits for track 2
207  double nRechits2 = 0;
208  double nRechitinBPIX2 = 0;
209  for (auto const& iHit : track2.recHits()) {
210  if (iHit->isValid()) {
211  nRechits2++;
212  int type = iHit->geographicalId().subdetId();
213  if (type == int(PixelSubdetector::PixelBarrel)) {
214  ++nRechitinBPIX2;
215  }
216  }
217  }
218 
219  // DCA of each track
220  double d01 = track1.d0();
221  double dz1 = track1.dz();
222  double d02 = track2.d0();
223  double dz2 = track2.dz();
224 
225  // pT of each track
226  double pt1 = track1.pt();
227  double pt2 = track2.pt();
228 
229  // chi2 of each track
230  double norchi1 = track1.normalizedChi2();
231  double norchi2 = track2.normalizedChi2();
232 
233  // basic selection
234  // pixel hits and total hits
235  if ((nRechitinBPIX1 >= pixelHitsPerLeg_) && (nRechitinBPIX2 >= pixelHitsPerLeg_) &&
236  (nRechits1 >= totalHitsPerLeg_) && (nRechits2 >= totalHitsPerLeg_)) {
237  // dca cut
238  if (((std::abs(d01) < d0Cut_)) && (std::abs(d02) < d0Cut_) && (std::abs(dz1) < dzCut_) &&
239  (std::abs(dz2) < dzCut_)) {
240  // pt cut
241  if ((pt1 + pt2) / 2 < ptCut_) {
242  // chi2 cut
243  if ((norchi1 < norchiCut_) && (norchi2 < norchiCut_)) {
244  // passed all cuts...
245  edm::LogInfo("TrackSplittingMonitor") << " Setected after all cuts ?";
246 
247  double ddxyVal = d01 - d02;
248  double ddzVal = dz1 - dz2;
249  double dphiVal = track1.phi() - track2.phi();
250  double dthetaVal = track1.theta() - track2.theta();
251  double dptVal = pt1 - pt2;
252  double dcurvVal = (1 / pt1) - (1 / pt2);
253 
254  double d01ErrVal = track1.d0Error();
255  double d02ErrVal = track2.d0Error();
256  double dz1ErrVal = track1.dzError();
257  double dz2ErrVal = track2.dzError();
258  double phi1ErrVal = track1.phiError();
259  double phi2ErrVal = track2.phiError();
260  double theta1ErrVal = track1.thetaError();
261  double theta2ErrVal = track2.thetaError();
262  double pt1ErrVal = track1.ptError();
263  double pt2ErrVal = track2.ptError();
264 
271 
272  ddxyNormalizedResiduals_tracker_->Fill(ddxyVal / sqrt(d01ErrVal * d01ErrVal + d02ErrVal * d02ErrVal));
273  ddzNormalizedResiduals_tracker_->Fill(ddzVal / sqrt(dz1ErrVal * dz1ErrVal + dz2ErrVal * dz2ErrVal));
274  dphiNormalizedResiduals_tracker_->Fill(dphiVal / sqrt(phi1ErrVal * phi1ErrVal + phi2ErrVal * phi2ErrVal));
276  sqrt(theta1ErrVal * theta1ErrVal + theta2ErrVal * theta2ErrVal));
277  dptNormalizedResiduals_tracker_->Fill(dptVal / sqrt(pt1ErrVal * pt1ErrVal + pt2ErrVal * pt2ErrVal));
279  dcurvVal / sqrt(pow(pt1ErrVal, 2) / pow(pt1, 4) + pow(pt2ErrVal, 2) / pow(pt2, 4)));
280 
281  // if do the same for split muons
282  if (plotMuons_ && splitMuons.isValid()) {
283  int gmCtr = 0;
284  bool topGlobalMuonFlag = false;
285  bool bottomGlobalMuonFlag = false;
286  int topGlobalMuon = -1;
287  int bottomGlobalMuon = -1;
288  double topGlobalMuonNorchi2 = 1e10;
289  double bottomGlobalMuonNorchi2 = 1e10;
290 
291  // check if usable split global muons
292  for (std::vector<reco::Muon>::const_iterator gmI = splitMuons->begin(); gmI != splitMuons->end(); gmI++) {
293  if (gmI->isTrackerMuon() && gmI->isStandAloneMuon() && gmI->isGlobalMuon()) {
294  reco::TrackRef trackerTrackRef1(splitTracks, 0);
295  reco::TrackRef trackerTrackRef2(splitTracks, 1);
296 
297  if (gmI->innerTrack() == trackerTrackRef1) {
298  if (gmI->globalTrack()->normalizedChi2() < topGlobalMuonNorchi2) {
299  topGlobalMuonFlag = true;
300  topGlobalMuonNorchi2 = gmI->globalTrack()->normalizedChi2();
301  topGlobalMuon = gmCtr;
302  }
303  }
304  if (gmI->innerTrack() == trackerTrackRef2) {
305  if (gmI->globalTrack()->normalizedChi2() < bottomGlobalMuonNorchi2) {
306  bottomGlobalMuonFlag = true;
307  bottomGlobalMuonNorchi2 = gmI->globalTrack()->normalizedChi2();
308  bottomGlobalMuon = gmCtr;
309  }
310  }
311  }
312  gmCtr++;
313  }
314 
315  if (bottomGlobalMuonFlag && topGlobalMuonFlag) {
316  reco::Muon muonTop = splitMuons->at(topGlobalMuon);
317  reco::Muon muonBottom = splitMuons->at(bottomGlobalMuon);
318 
319  reco::TrackRef glb1 = muonTop.globalTrack();
320  reco::TrackRef glb2 = muonBottom.globalTrack();
321 
322  double ddxyValGlb = glb1->d0() - glb2->d0();
323  double ddzValGlb = glb1->dz() - glb2->dz();
324  double dphiValGlb = glb1->phi() - glb2->phi();
325  double dthetaValGlb = glb1->theta() - glb2->theta();
326  double dptValGlb = glb1->pt() - glb2->pt();
327  double dcurvValGlb = (1 / glb1->pt()) - (1 / glb2->pt());
328 
329  double d01ErrValGlb = glb1->d0Error();
330  double d02ErrValGlb = glb2->d0Error();
331  double dz1ErrValGlb = glb1->dzError();
332  double dz2ErrValGlb = glb2->dzError();
333  double phi1ErrValGlb = glb1->phiError();
334  double phi2ErrValGlb = glb2->phiError();
335  double theta1ErrValGlb = glb1->thetaError();
336  double theta2ErrValGlb = glb2->thetaError();
337  double pt1ErrValGlb = glb1->ptError();
338  double pt2ErrValGlb = glb2->ptError();
339 
345  dcurvAbsoluteResiduals_global_->Fill(dcurvValGlb / sqrt2);
346 
348  sqrt(d01ErrValGlb * d01ErrValGlb + d02ErrValGlb * d02ErrValGlb));
350  sqrt(dz1ErrValGlb * dz1ErrValGlb + dz2ErrValGlb * dz2ErrValGlb));
352  dphiValGlb / sqrt(phi1ErrValGlb * phi1ErrValGlb + phi2ErrValGlb * phi2ErrValGlb));
354  dthetaValGlb / sqrt(theta1ErrValGlb * theta1ErrValGlb + theta2ErrValGlb * theta2ErrValGlb));
356  sqrt(pt1ErrValGlb * pt1ErrValGlb + pt2ErrValGlb * pt2ErrValGlb));
358  dcurvValGlb / sqrt(pow(pt1ErrValGlb, 2) / pow(pt1, 4) + pow(pt2ErrValGlb, 2) / pow(pt2, 4)));
359  }
360 
361  } // end of split muons loop
362  }
363  }
364  }
365  }
366  }
367 }
MonitorElement * dthetaAbsoluteResiduals_global_
static constexpr double sqrt2
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
const CSCGeometry * cscGeometry
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:754
static constexpr double cmToUm
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:51
MonitorElement * dthetaAbsoluteResiduals_tracker_
double thetaError() const
error on theta
Definition: TrackBase.h:757
MonitorElement * ddxyNormalizedResiduals_tracker_
constexpr int pow(int x)
Definition: conifer.h:24
MonitorElement * dcurvAbsoluteResiduals_tracker_
const DTGeometry * dtGeometry
const edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
MonitorElement * ddzAbsoluteResiduals_global_
void Fill(long long x)
const RPCGeometry * rpcGeometry
double pt() const
track transverse momentum
Definition: TrackBase.h:637
auto recHits() const
Access to reconstructed hits on the track.
Definition: Track.h:85
MonitorElement * dthetaNormalizedResiduals_tracker_
const edm::EDGetTokenT< std::vector< reco::Muon > > splitMuonsToken_
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:622
int iEvent
Definition: GenABIO.cc:224
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > mfToken_
MonitorElement * ddxyNormalizedResiduals_global_
double dzError() const
error on dz
Definition: TrackBase.h:778
const MagneticField * theMagField
MonitorElement * dphiNormalizedResiduals_tracker_
const TrackerGeometry * theGeometry
T sqrt(T t)
Definition: SSEVec.h:19
MonitorElement * dcurvAbsoluteResiduals_global_
MonitorElement * dphiAbsoluteResiduals_tracker_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
MonitorElement * ddzNormalizedResiduals_tracker_
MonitorElement * dptAbsoluteResiduals_global_
const edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomToken_
MonitorElement * dptAbsoluteResiduals_tracker_
Log< level::Info, false > LogInfo
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
Definition: TrackBase.h:611
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:593
MonitorElement * ddzAbsoluteResiduals_tracker_
bool isValid() const
Definition: HandleBase.h:70
static constexpr double radToUrad
double theta() const
polar angle
Definition: TrackBase.h:602
const edm::EDGetTokenT< std::vector< reco::Track > > splitTracksToken_
MonitorElement * ddxyAbsoluteResiduals_global_
MonitorElement * dcurvNormalizedResiduals_tracker_
MonitorElement * dphiAbsoluteResiduals_global_
MonitorElement * dptNormalizedResiduals_tracker_
double d0Error() const
error on d0
Definition: TrackBase.h:772
double phiError() const
error on phi
Definition: TrackBase.h:766
MonitorElement * ddxyAbsoluteResiduals_tracker_
const edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_

◆ bookHistograms()

void TrackSplittingMonitor::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 43 of file TrackSplittingMonitor.cc.

References dqm::implementation::IBooker::book1D(), conf_, dcurvAbsoluteResiduals_global_, dcurvAbsoluteResiduals_tracker_, TrackSplittingMonitor_cfi::dcurvBin, TrackSplittingMonitor_cfi::dcurvMax, TrackSplittingMonitor_cfi::dcurvMin, dcurvNormalizedResiduals_global_, dcurvNormalizedResiduals_tracker_, ddxyAbsoluteResiduals_global_, ddxyAbsoluteResiduals_tracker_, TrackSplittingMonitor_cfi::ddxyBin, TrackSplittingMonitor_cfi::ddxyMax, TrackSplittingMonitor_cfi::ddxyMin, ddxyNormalizedResiduals_global_, ddxyNormalizedResiduals_tracker_, ddzAbsoluteResiduals_global_, ddzAbsoluteResiduals_tracker_, TrackSplittingMonitor_cfi::ddzBin, TrackSplittingMonitor_cfi::ddzMax, TrackSplittingMonitor_cfi::ddzMin, ddzNormalizedResiduals_global_, ddzNormalizedResiduals_tracker_, dphiAbsoluteResiduals_global_, dphiAbsoluteResiduals_tracker_, TrackSplittingMonitor_cfi::dphiBin, TrackSplittingMonitor_cfi::dphiMax, TrackSplittingMonitor_cfi::dphiMin, dphiNormalizedResiduals_global_, dphiNormalizedResiduals_tracker_, dptAbsoluteResiduals_global_, dptAbsoluteResiduals_tracker_, TrackSplittingMonitor_cfi::dptBin, TrackSplittingMonitor_cfi::dptMax, TrackSplittingMonitor_cfi::dptMin, dptNormalizedResiduals_global_, dptNormalizedResiduals_tracker_, dthetaAbsoluteResiduals_global_, dthetaAbsoluteResiduals_tracker_, TrackSplittingMonitor_cfi::dthetaBin, TrackSplittingMonitor_cfi::dthetaMax, TrackSplittingMonitor_cfi::dthetaMin, dthetaNormalizedResiduals_global_, dthetaNormalizedResiduals_tracker_, edm::ParameterSet::getParameter(), TrackSplittingMonitor_cfi::normBin, TrackSplittingMonitor_cfi::normMax, TrackSplittingMonitor_cfi::normMin, plotMuons_, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

45  {
46  std::string MEFolderName = conf_.getParameter<std::string>("FolderName");
47  ibooker.setCurrentFolder(MEFolderName);
48 
49  // bin declarations
50  int ddxyBin = conf_.getParameter<int>("ddxyBin");
51  double ddxyMin = conf_.getParameter<double>("ddxyMin");
52  double ddxyMax = conf_.getParameter<double>("ddxyMax");
53 
54  int ddzBin = conf_.getParameter<int>("ddzBin");
55  double ddzMin = conf_.getParameter<double>("ddzMin");
56  double ddzMax = conf_.getParameter<double>("ddzMax");
57 
58  int dphiBin = conf_.getParameter<int>("dphiBin");
59  double dphiMin = conf_.getParameter<double>("dphiMin");
60  double dphiMax = conf_.getParameter<double>("dphiMax");
61 
62  int dthetaBin = conf_.getParameter<int>("dthetaBin");
63  double dthetaMin = conf_.getParameter<double>("dthetaMin");
64  double dthetaMax = conf_.getParameter<double>("dthetaMax");
65 
66  int dptBin = conf_.getParameter<int>("dptBin");
67  double dptMin = conf_.getParameter<double>("dptMin");
68  double dptMax = conf_.getParameter<double>("dptMax");
69 
70  int dcurvBin = conf_.getParameter<int>("dcurvBin");
71  double dcurvMin = conf_.getParameter<double>("dcurvMin");
72  double dcurvMax = conf_.getParameter<double>("dcurvMax");
73 
74  int normBin = conf_.getParameter<int>("normBin");
75  double normMin = conf_.getParameter<double>("normMin");
76  double normMax = conf_.getParameter<double>("normMax");
77 
78  // declare histogram
80  ibooker.book1D("ddxyAbsoluteResiduals_tracker", "ddxyAbsoluteResiduals_tracker", ddxyBin, ddxyMin, ddxyMax);
82  ibooker.book1D("ddzAbsoluteResiduals_tracker", "ddzAbsoluteResiduals_tracker", ddzBin, ddzMin, ddzMax);
84  ibooker.book1D("dphiAbsoluteResiduals_tracker", "dphiAbsoluteResiduals_tracker", dphiBin, dphiMin, dphiMax);
86  "dthetaAbsoluteResiduals_tracker", "dthetaAbsoluteResiduals_tracker", dthetaBin, dthetaMin, dthetaMax);
88  ibooker.book1D("dptAbsoluteResiduals_tracker", "dptAbsoluteResiduals_tracker", dptBin, dptMin, dptMax);
90  ibooker.book1D("dcurvAbsoluteResiduals_tracker", "dcurvAbsoluteResiduals_tracker", dcurvBin, dcurvMin, dcurvMax);
91 
93  ibooker.book1D("ddxyNormalizedResiduals_tracker", "ddxyNormalizedResiduals_tracker", normBin, normMin, normMax);
95  ibooker.book1D("ddzNormalizedResiduals_tracker", "ddzNormalizedResiduals_tracker", normBin, normMin, normMax);
97  ibooker.book1D("dphiNormalizedResiduals_tracker", "dphiNormalizedResiduals_tracker", normBin, normMin, normMax);
99  "dthetaNormalizedResiduals_tracker", "dthetaNormalizedResiduals_tracker", normBin, normMin, normMax);
101  ibooker.book1D("dptNormalizedResiduals_tracker", "dptNormalizedResiduals_tracker", normBin, normMin, normMax);
103  ibooker.book1D("dcurvNormalizedResiduals_tracker", "dcurvNormalizedResiduals_tracker", normBin, normMin, normMax);
104 
105  if (plotMuons_) {
107  ibooker.book1D("ddxyAbsoluteResiduals_global", "ddxyAbsoluteResiduals_global", ddxyBin, ddxyMin, ddxyMax);
109  ibooker.book1D("ddzAbsoluteResiduals_global", "ddzAbsoluteResiduals_global", ddzBin, ddzMin, ddzMax);
111  ibooker.book1D("dphiAbsoluteResiduals_global", "dphiAbsoluteResiduals_global", dphiBin, dphiMin, dphiMax);
113  "dthetaAbsoluteResiduals_global", "dthetaAbsoluteResiduals_global", dthetaBin, dthetaMin, dthetaMax);
115  ibooker.book1D("dptAbsoluteResiduals_global", "dptAbsoluteResiduals_global", dptBin, dptMin, dptMax);
117  ibooker.book1D("dcurvAbsoluteResiduals_global", "dcurvAbsoluteResiduals_global", dcurvBin, dcurvMin, dcurvMax);
118 
120  ibooker.book1D("ddxyNormalizedResiduals_global", "ddxyNormalizedResiduals_global", normBin, normMin, normMax);
122  ibooker.book1D("ddzNormalizedResiduals_global", "ddzNormalizedResiduals_global", normBin, normMin, normMax);
124  ibooker.book1D("dphiNormalizedResiduals_global", "dphiNormalizedResiduals_global", normBin, normMin, normMax);
126  "dthetaNormalizedResiduals_global", "dthetaNormalizedResiduals_global", normBin, normMin, normMax);
128  ibooker.book1D("dptNormalizedResiduals_global", "dptNormalizedResiduals_global", normBin, normMin, normMax);
130  ibooker.book1D("dcurvNormalizedResiduals_global", "dcurvNormalizedResiduals_global", normBin, normMin, normMax);
131  }
132 
133  ddxyAbsoluteResiduals_tracker_->setAxisTitle("(#delta d_{xy})/#sqrt{2} [#mum]");
134  ddzAbsoluteResiduals_tracker_->setAxisTitle("(#delta d_{z})/#sqrt{2} [#mum]");
135  dphiAbsoluteResiduals_tracker_->setAxisTitle("(#delta #phi)/#sqrt{2} [mrad]");
136  dthetaAbsoluteResiduals_tracker_->setAxisTitle("(#delta #theta)/#sqrt{2} [mrad]");
137  dptAbsoluteResiduals_tracker_->setAxisTitle("(#delta p_{T})/#sqrt{2} [GeV]");
138  dcurvAbsoluteResiduals_tracker_->setAxisTitle("(#delta (1/p_{T}))/#sqrt{2} [GeV^{-1}]");
139 
140  ddxyNormalizedResiduals_tracker_->setAxisTitle("#delta d_{xy}/#sigma(d_{xy})");
141  ddzNormalizedResiduals_tracker_->setAxisTitle("#delta d_{z}/#sigma(d_{z})");
142  dphiNormalizedResiduals_tracker_->setAxisTitle("#delta #phi/#sigma(d_{#phi})");
143  dthetaNormalizedResiduals_tracker_->setAxisTitle("#delta #theta/#sigma(d_{#theta})");
144  dptNormalizedResiduals_tracker_->setAxisTitle("#delta p_{T}/#sigma(p_{T})");
145  dcurvNormalizedResiduals_tracker_->setAxisTitle("#delta 1/p_{T}/#sigma(1/p_{T})");
146 
147  if (plotMuons_) {
148  ddxyAbsoluteResiduals_global_->setAxisTitle("(#delta d_{xy})/#sqrt{2} [#mum]");
149  ddzAbsoluteResiduals_global_->setAxisTitle("(#delta d_{z})/#sqrt{2} [#mum]");
150  dphiAbsoluteResiduals_global_->setAxisTitle("(#delta #phi)/#sqrt{2} [mrad]");
151  dthetaAbsoluteResiduals_global_->setAxisTitle("(#delta #theta)/#sqrt{2} [mrad]");
152  dptAbsoluteResiduals_global_->setAxisTitle("(#delta p_{T})/#sqrt{2} [GeV]");
153  dcurvAbsoluteResiduals_global_->setAxisTitle("(#delta (1/p_{T}))/#sqrt{2} [GeV^{-1}]");
154 
155  ddxyNormalizedResiduals_global_->setAxisTitle("#delta d_{xy}/#sigma(d_{xy})");
156  ddzNormalizedResiduals_global_->setAxisTitle("#delta d_{z}/#sigma(d_{z})");
157  dphiNormalizedResiduals_global_->setAxisTitle("#delta #phi/#sigma(d_{#phi})");
158  dthetaNormalizedResiduals_global_->setAxisTitle("#delta #theta/#sigma(d_{#theta})");
159  dptNormalizedResiduals_global_->setAxisTitle("#delta p_{T}/#sigma(p_{T})");
160  dcurvNormalizedResiduals_global_->setAxisTitle("#delta 1/p_{T}/#sigma(1/p_{T})");
161  }
162 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MonitorElement * dthetaAbsoluteResiduals_global_
MonitorElement * dcurvNormalizedResiduals_global_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * dthetaAbsoluteResiduals_tracker_
MonitorElement * ddzNormalizedResiduals_global_
MonitorElement * ddxyNormalizedResiduals_tracker_
MonitorElement * dcurvAbsoluteResiduals_tracker_
MonitorElement * ddzAbsoluteResiduals_global_
MonitorElement * dphiNormalizedResiduals_global_
MonitorElement * dthetaNormalizedResiduals_tracker_
MonitorElement * ddxyNormalizedResiduals_global_
MonitorElement * dthetaNormalizedResiduals_global_
MonitorElement * dphiNormalizedResiduals_tracker_
MonitorElement * dcurvAbsoluteResiduals_global_
MonitorElement * dphiAbsoluteResiduals_tracker_
MonitorElement * ddzNormalizedResiduals_tracker_
MonitorElement * dptAbsoluteResiduals_global_
MonitorElement * dptAbsoluteResiduals_tracker_
MonitorElement * ddzAbsoluteResiduals_tracker_
MonitorElement * ddxyAbsoluteResiduals_global_
MonitorElement * dcurvNormalizedResiduals_tracker_
MonitorElement * dphiAbsoluteResiduals_global_
MonitorElement * dptNormalizedResiduals_tracker_
MonitorElement * dptNormalizedResiduals_global_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * ddxyAbsoluteResiduals_tracker_
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

◆ doProfileX() [1/2]

void TrackSplittingMonitor::doProfileX ( TH2 *  th2,
MonitorElement me 
)
private

◆ doProfileX() [2/2]

void TrackSplittingMonitor::doProfileX ( MonitorElement th2m,
MonitorElement me 
)
private

◆ fillDescriptions()

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

Definition at line 369 of file TrackSplittingMonitor.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

369  {
371  desc.setComment(
372  "Validates track parameters resolution by splitting cosmics tracks at the PCA and comparing the parameters of "
373  "the two halves");
374  desc.add<std::string>("FolderName", "TrackSplitMonitoring");
375  desc.add<edm::InputTag>("splitTrackCollection", edm::InputTag("splittedTracksP5"));
376  desc.add<edm::InputTag>("splitMuonCollection", edm::InputTag("splitMuons"));
377  desc.add<bool>("ifPlotMuons", true);
378  desc.add<int>("pixelHitsPerLeg", 1);
379  desc.add<int>("totalHitsPerLeg", 6);
380  desc.add<double>("d0Cut", 12.0);
381  desc.add<double>("dzCut", 25.0);
382  desc.add<double>("ptCut", 4.0);
383  desc.add<double>("norchiCut", 100.0);
384  desc.add<int>("ddxyBin", 100);
385  desc.add<double>("ddxyMin", -200.0);
386  desc.add<double>("ddxyMax", 200.0);
387  desc.add<int>("ddzBin", 100);
388  desc.add<double>("ddzMin", -400.0);
389  desc.add<double>("ddzMax", 400.0);
390  desc.add<int>("dphiBin", 100);
391  desc.add<double>("dphiMin", -0.01);
392  desc.add<double>("dphiMax", 0.01);
393  desc.add<int>("dthetaBin", 100);
394  desc.add<double>("dthetaMin", -0.01);
395  desc.add<double>("dthetaMax", 0.01);
396  desc.add<int>("dptBin", 100);
397  desc.add<double>("dptMin", -5.0);
398  desc.add<double>("dptMax", 5.0);
399  desc.add<int>("dcurvBin", 100);
400  desc.add<double>("dcurvMin", -0.005);
401  desc.add<double>("dcurvMax", 0.005);
402  desc.add<int>("normBin", 100);
403  desc.add<double>("normMin", -5.);
404  desc.add<double>("normMax", 5.);
405  descriptions.addWithDefaultLabel(desc);
406 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)

Member Data Documentation

◆ cmToUm

constexpr double TrackSplittingMonitor::cmToUm = 10.e4
staticprivate

Definition at line 54 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ conf_

edm::ParameterSet TrackSplittingMonitor::conf_
private

Definition at line 59 of file TrackSplittingMonitor.h.

Referenced by bookHistograms().

◆ cscGeometry

const CSCGeometry* TrackSplittingMonitor::cscGeometry
private

Definition at line 70 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ cscGeomToken_

const edm::ESGetToken<CSCGeometry, MuonGeometryRecord> TrackSplittingMonitor::cscGeomToken_
private

Definition at line 64 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ d0Cut_

const double TrackSplittingMonitor::d0Cut_
private

Definition at line 79 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ dcurvAbsoluteResiduals_global_

MonitorElement* TrackSplittingMonitor::dcurvAbsoluteResiduals_global_
private

Definition at line 104 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dcurvAbsoluteResiduals_tracker_

MonitorElement* TrackSplittingMonitor::dcurvAbsoluteResiduals_tracker_
private

Definition at line 90 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dcurvNormalizedResiduals_global_

MonitorElement* TrackSplittingMonitor::dcurvNormalizedResiduals_global_
private

Definition at line 111 of file TrackSplittingMonitor.h.

Referenced by bookHistograms().

◆ dcurvNormalizedResiduals_tracker_

MonitorElement* TrackSplittingMonitor::dcurvNormalizedResiduals_tracker_
private

Definition at line 97 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ ddxyAbsoluteResiduals_global_

MonitorElement* TrackSplittingMonitor::ddxyAbsoluteResiduals_global_
private

Definition at line 99 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ ddxyAbsoluteResiduals_tracker_

MonitorElement* TrackSplittingMonitor::ddxyAbsoluteResiduals_tracker_
private

Definition at line 85 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ ddxyNormalizedResiduals_global_

MonitorElement* TrackSplittingMonitor::ddxyNormalizedResiduals_global_
private

Definition at line 106 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ ddxyNormalizedResiduals_tracker_

MonitorElement* TrackSplittingMonitor::ddxyNormalizedResiduals_tracker_
private

Definition at line 92 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ ddzAbsoluteResiduals_global_

MonitorElement* TrackSplittingMonitor::ddzAbsoluteResiduals_global_
private

Definition at line 100 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ ddzAbsoluteResiduals_tracker_

MonitorElement* TrackSplittingMonitor::ddzAbsoluteResiduals_tracker_
private

Definition at line 86 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ ddzNormalizedResiduals_global_

MonitorElement* TrackSplittingMonitor::ddzNormalizedResiduals_global_
private

Definition at line 107 of file TrackSplittingMonitor.h.

Referenced by bookHistograms().

◆ ddzNormalizedResiduals_tracker_

MonitorElement* TrackSplittingMonitor::ddzNormalizedResiduals_tracker_
private

Definition at line 93 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dphiAbsoluteResiduals_global_

MonitorElement* TrackSplittingMonitor::dphiAbsoluteResiduals_global_
private

Definition at line 101 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dphiAbsoluteResiduals_tracker_

MonitorElement* TrackSplittingMonitor::dphiAbsoluteResiduals_tracker_
private

Definition at line 87 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dphiNormalizedResiduals_global_

MonitorElement* TrackSplittingMonitor::dphiNormalizedResiduals_global_
private

Definition at line 108 of file TrackSplittingMonitor.h.

Referenced by bookHistograms().

◆ dphiNormalizedResiduals_tracker_

MonitorElement* TrackSplittingMonitor::dphiNormalizedResiduals_tracker_
private

Definition at line 94 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dptAbsoluteResiduals_global_

MonitorElement* TrackSplittingMonitor::dptAbsoluteResiduals_global_
private

Definition at line 103 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dptAbsoluteResiduals_tracker_

MonitorElement* TrackSplittingMonitor::dptAbsoluteResiduals_tracker_
private

Definition at line 89 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dptNormalizedResiduals_global_

MonitorElement* TrackSplittingMonitor::dptNormalizedResiduals_global_
private

Definition at line 110 of file TrackSplittingMonitor.h.

Referenced by bookHistograms().

◆ dptNormalizedResiduals_tracker_

MonitorElement* TrackSplittingMonitor::dptNormalizedResiduals_tracker_
private

Definition at line 96 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dtGeometry

const DTGeometry* TrackSplittingMonitor::dtGeometry
private

Definition at line 69 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ dtGeomToken_

const edm::ESGetToken<DTGeometry, MuonGeometryRecord> TrackSplittingMonitor::dtGeomToken_
private

Definition at line 63 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ dthetaAbsoluteResiduals_global_

MonitorElement* TrackSplittingMonitor::dthetaAbsoluteResiduals_global_
private

Definition at line 102 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dthetaAbsoluteResiduals_tracker_

MonitorElement* TrackSplittingMonitor::dthetaAbsoluteResiduals_tracker_
private

Definition at line 88 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dthetaNormalizedResiduals_global_

MonitorElement* TrackSplittingMonitor::dthetaNormalizedResiduals_global_
private

Definition at line 109 of file TrackSplittingMonitor.h.

Referenced by bookHistograms().

◆ dthetaNormalizedResiduals_tracker_

MonitorElement* TrackSplittingMonitor::dthetaNormalizedResiduals_tracker_
private

Definition at line 95 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ dzCut_

const double TrackSplittingMonitor::dzCut_
private

Definition at line 80 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ histname

std::string TrackSplittingMonitor::histname
private

Definition at line 58 of file TrackSplittingMonitor.h.

◆ mfToken_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> TrackSplittingMonitor::mfToken_
private

Definition at line 61 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ norchiCut_

const double TrackSplittingMonitor::norchiCut_
private

Definition at line 82 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ pixelHitsPerLeg_

const int TrackSplittingMonitor::pixelHitsPerLeg_
private

Definition at line 77 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ plotMuons_

const bool TrackSplittingMonitor::plotMuons_
private

Definition at line 76 of file TrackSplittingMonitor.h.

Referenced by analyze(), and bookHistograms().

◆ ptCut_

const double TrackSplittingMonitor::ptCut_
private

◆ radToUrad

constexpr double TrackSplittingMonitor::radToUrad = 10.e3
staticprivate

Definition at line 55 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ rpcGeometry

const RPCGeometry* TrackSplittingMonitor::rpcGeometry
private

Definition at line 71 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ rpcGeomToken_

const edm::ESGetToken<RPCGeometry, MuonGeometryRecord> TrackSplittingMonitor::rpcGeomToken_
private

Definition at line 65 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ splitMuonsToken_

const edm::EDGetTokenT<std::vector<reco::Muon> > TrackSplittingMonitor::splitMuonsToken_
private

Definition at line 74 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ splitTracksToken_

const edm::EDGetTokenT<std::vector<reco::Track> > TrackSplittingMonitor::splitTracksToken_
private

Definition at line 73 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ sqrt2

constexpr double TrackSplittingMonitor::sqrt2 = 1.41421356237
staticprivate

Definition at line 56 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ theGeometry

const TrackerGeometry* TrackSplittingMonitor::theGeometry
private

Definition at line 67 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ theMagField

const MagneticField* TrackSplittingMonitor::theMagField
private

Definition at line 68 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ tkGeomToken_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> TrackSplittingMonitor::tkGeomToken_
private

Definition at line 62 of file TrackSplittingMonitor.h.

Referenced by analyze().

◆ totalHitsPerLeg_

const int TrackSplittingMonitor::totalHitsPerLeg_
private

Definition at line 78 of file TrackSplittingMonitor.h.

Referenced by analyze().