CMS 3D CMS Logo

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

#include <DQM/TrackerMonitorTrack/src/TrackEfficiencyMonitor.cc>

Inheritance diagram for TrackEfficiencyMonitor:
one::DQMEDAnalyzer< T > one::dqmimplementation::DQMBaseClass< T... >

Public Types

enum  SemiCylinder { Up, Down }
 
typedef reco::Track Track
 
typedef reco::TrackCollection TrackCollection
 

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob (void) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
SemiCylinder checkSemiCylinder (const Track &)
 
int compatibleLayers (const NavigationSchool &navigationSchool, TrajectoryStateOnSurface theTSOS)
 
void endJob (void) override
 
std::pair< TrajectoryStateOnSurface, const DetLayer * > findNextLayer (TrajectoryStateOnSurface startTSOS, const std::vector< const DetLayer * > &trackCompatibleLayers, bool isUpMuon)
 
void testSTATracks (edm::Handle< TrackCollection > tkTracks, edm::Handle< TrackCollection > staTracks)
 
void testTrackerTracks (edm::Handle< TrackCollection > tkTracks, edm::Handle< TrackCollection > staTracks, const NavigationSchool &navigationSchool)
 
 TrackEfficiencyMonitor (const edm::ParameterSet &)
 
bool trackerAcceptance (TrajectoryStateOnSurface theTSOS, double theRadius, double theMaxZ)
 
 ~TrackEfficiencyMonitor () override
 
- Public Member Functions inherited from one::DQMEDAnalyzer< T >
 DQMEDAnalyzer ()=default
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > &&)=delete
 
 ~DQMEDAnalyzer () override=default
 

Private Attributes

edm::ESHandle< MagneticFieldbField
 
edm::ParameterSet conf_
 
MonitorElementdeltaX
 
MonitorElementdeltaY
 
DQMStoredqmStore_
 
int failedToPropagate
 
bool findDetLayer
 
MonitorElementGlobalMuonPtEtaPhiHighPt
 
MonitorElementGlobalMuonPtEtaPhiLowPt
 
std::string histname
 
bool isBFieldOff_
 
edm::ESHandle< MeasurementTrackermeasurementTrackerHandle
 
MonitorElementmuonCompatibleLayers
 
MonitorElementmuonD0
 
MonitorElementmuonEta
 
MonitorElementmuonPhi
 
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
 
MonitorElementmuonX
 
MonitorElementmuonY
 
MonitorElementmuonZ
 
int nCompatibleLayers
 
MonitorElementsignDeltaX
 
MonitorElementsignDeltaY
 
MonitorElementStandaloneMuonPtEtaPhiHighPt
 
MonitorElementStandaloneMuonPtEtaPhiLowPt
 
edm::ESHandle< GeometricSearchTrackertheGeometricSearchTracker
 
double theMaxZ_
 
MuonServiceProxytheMuonServiceProxy
 
const DirectTrackerNavigationtheNavigation
 
edm::ESHandle< PropagatorthePropagator
 
edm::ESHandle< PropagatorthePropagatorCyl
 
double theRadius_
 
edm::InputTag theSTATracksLabel_
 
edm::EDGetTokenT< reco::TrackCollectiontheSTATracksToken_
 
edm::InputTag theTKTracksLabel_
 
edm::EDGetTokenT< reco::TrackCollectiontheTKTracksToken_
 
edm::ESHandle< GeometricSearchTrackertheTracker
 
edm::ESHandle< TransientTrackBuildertheTTrackBuilder
 
MonitorElementtrackCompatibleLayers
 
MonitorElementtrackD0
 
bool trackEfficiency_
 
MonitorElementtrackEta
 
MonitorElementtrackPhi
 
MonitorElementtrackX
 
MonitorElementtrackY
 
MonitorElementtrackZ
 

Detailed Description

Monitoring source to measure the track efficiency

Definition at line 45 of file TrackEfficiencyMonitor.h.

Member Typedef Documentation

Definition at line 47 of file TrackEfficiencyMonitor.h.

Definition at line 48 of file TrackEfficiencyMonitor.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

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

Definition at line 49 of file TrackEfficiencyMonitor.cc.

References conf_, dqmStore_, edm::ParameterSet::getParameter(), isBFieldOff_, muonToken_, Utilities::operator, theMaxZ_, theRadius_, theSTATracksLabel_, theSTATracksToken_, theTKTracksLabel_, theTKTracksToken_, and trackEfficiency_.

51 {
53 
54  theRadius_ = iConfig.getParameter<double>("theRadius");
55  theMaxZ_ = iConfig.getParameter<double>("theMaxZ");
56  isBFieldOff_ = iConfig.getParameter<bool>("isBFieldOff");
57  trackEfficiency_ = iConfig.getParameter<bool>("trackEfficiency");
58  theTKTracksLabel_ = iConfig.getParameter<edm::InputTag>("TKTrackCollection");
59  theSTATracksLabel_ = iConfig.getParameter<edm::InputTag>("STATrackCollection");
60  muonToken_ = consumes<edm::View<reco::Muon> >(iConfig.getParameter<edm::InputTag>("muoncoll"));
61 
62 
63  theTKTracksToken_ = consumes<reco::TrackCollection>(theTKTracksLabel_);
64  theSTATracksToken_ = consumes<reco::TrackCollection>(theSTATracksLabel_);
65 
66  conf_ = iConfig;
67 }
T getParameter(std::string const &) const
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
edm::EDGetTokenT< reco::TrackCollection > theTKTracksToken_
edm::EDGetTokenT< reco::TrackCollection > theSTATracksToken_
TrackEfficiencyMonitor::~TrackEfficiencyMonitor ( )
override

Definition at line 72 of file TrackEfficiencyMonitor.cc.

74 {}

Member Function Documentation

void TrackEfficiencyMonitor::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 287 of file TrackEfficiencyMonitor.cc.

References bField, failedToPropagate, MonitorElement::Fill(), findDetLayer, edm::EventSetup::get(), edm::Event::getByToken(), GlobalMuonPtEtaPhiHighPt, GlobalMuonPtEtaPhiLowPt, isBFieldOff_, muon::isGoodMuon(), edm::HandleBase::isValid(), measurementTrackerHandle, metsig::muon, extraflags_cff::muons, muonToken_, nCompatibleLayers, edm::ESHandle< T >::product(), StandaloneMuonPtEtaPhiHighPt, StandaloneMuonPtEtaPhiLowPt, testSTATracks(), testTrackerTracks(), theNavigation, thePropagator, theSTATracksToken_, theTKTracksToken_, theTracker, theTTrackBuilder, and trackEfficiency_.

289 {
290 
292  iEvent.getByToken(theTKTracksToken_, tkTracks);
294  iEvent.getByToken(theSTATracksToken_, staTracks);
296  iSetup.get<NavigationSchoolRecord>().get("CosmicNavigationSchool", nav);
298 
299  //initialize values
300  failedToPropagate = 0;
301  nCompatibleLayers = 0;
302  findDetLayer = false;
303 
304  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder",theTTrackBuilder);
305  iSetup.get<TrackingComponentsRecord>().get("SteppingHelixPropagatorAny",thePropagator);
306  iSetup.get<IdealMagneticFieldRecord>().get(bField);
309 
311  iEvent.getByToken(muonToken_,muons);
312  if (!muons.isValid()) return;
313  for (edm::View<reco::Muon>::const_iterator muon = muons->begin(); muon != muons->end(); ++muon){
314  if( (*muon).pt() < 5) continue;
315  if( fabs((*muon).eta()) > 2.4) continue;
316  if( (*muon).vertexNormalizedChi2() > 10) continue;
317  if ( (*muon).isStandAloneMuon() and (*muon).isGlobalMuon()){
318  if ( (*muon).pt() < 20) GlobalMuonPtEtaPhiLowPt->Fill((*muon).eta(),(*muon).phi());
319  else GlobalMuonPtEtaPhiHighPt->Fill((*muon).eta(),(*muon).phi());
320  }
321  if ( (*muon).isStandAloneMuon()){
322  if ( (*muon).pt() < 20) StandaloneMuonPtEtaPhiLowPt->Fill((*muon).eta(),(*muon).phi());
323  else StandaloneMuonPtEtaPhiHighPt->Fill((*muon).eta(),(*muon).phi());
324  }
325  }
326  if(trackEfficiency_){
327  //---------------------------------------------------
328  // Select muons with good quality
329  // If B field is on, no up-down matching between the muons
330  //---------------------------------------------------
331  bool isGoodMuon = false;
332  double mudd0 = 0., mudphi = 0., muddsz = 0., mudeta = 0.;
333  if(isBFieldOff_)
334  {
335  if ( staTracks->size() == 2 )
336  {
337  for ( unsigned int bindex = 0; bindex < staTracks->size(); ++bindex )
338  {
339 
340  if (0 == bindex){
341  mudd0+=(*staTracks)[bindex].d0();
342  mudphi+=(*staTracks)[bindex].phi();
343  muddsz+=(*staTracks)[bindex].dsz();
344  mudeta+=(*staTracks)[bindex].eta();}
345  if (1 == bindex){
346  mudd0-=(*staTracks)[bindex].d0();
347  mudphi-=(*staTracks)[bindex].phi();
348  muddsz-=(*staTracks)[bindex].dsz();
349  mudeta-=(*staTracks)[bindex].eta();}
350  }
351  if ((fabs(mudd0)<15.0)&&(fabs(mudphi)<0.045)&&(fabs(muddsz)<20.0)&&(fabs(mudeta)<0.060)) isGoodMuon = true;
352  }
353 
354  if(isGoodMuon) testTrackerTracks(tkTracks,staTracks, *nav.product());
355 
356  }
357  else if ( staTracks->size() == 1 || staTracks->size() == 2) testTrackerTracks(tkTracks,staTracks, *nav.product());
358  }
359 
360 
361  if(!trackEfficiency_ && tkTracks->size() == 1 ){
362  if( (tkTracks->front()).normalizedChi2() < 5 &&
363  (tkTracks->front()).hitPattern().numberOfValidHits() > 8)
364  testSTATracks(tkTracks,staTracks);
365  }
366 
367 
368  delete theNavigation;
369 
370 }
edm::ESHandle< MagneticField > bField
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
edm::ESHandle< GeometricSearchTracker > theTracker
MonitorElement * GlobalMuonPtEtaPhiHighPt
void testTrackerTracks(edm::Handle< TrackCollection > tkTracks, edm::Handle< TrackCollection > staTracks, const NavigationSchool &navigationSchool)
MonitorElement * GlobalMuonPtEtaPhiLowPt
void Fill(long long x)
edm::EDGetTokenT< edm::View< reco::Muon > > muonToken_
edm::ESHandle< MeasurementTracker > measurementTrackerHandle
MonitorElement * StandaloneMuonPtEtaPhiLowPt
bool isValid() const
Definition: HandleBase.h:74
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
edm::EDGetTokenT< reco::TrackCollection > theTKTracksToken_
edm::ESHandle< Propagator > thePropagator
edm::ESHandle< TransientTrackBuilder > theTTrackBuilder
MonitorElement * StandaloneMuonPtEtaPhiHighPt
const DirectTrackerNavigation * theNavigation
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
T get() const
Definition: EventSetup.h:71
T const * product() const
Definition: ESHandle.h:86
void testSTATracks(edm::Handle< TrackCollection > tkTracks, edm::Handle< TrackCollection > staTracks)
edm::EDGetTokenT< reco::TrackCollection > theSTATracksToken_
void TrackEfficiencyMonitor::beginJob ( void  )
override

Definition at line 278 of file TrackEfficiencyMonitor.cc.

280 {
281 
282 }
void TrackEfficiencyMonitor::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
override

Definition at line 77 of file TrackEfficiencyMonitor.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), conf_, deltaX, deltaY, edm::ParameterSet::getParameter(), GlobalMuonPtEtaPhiHighPt, GlobalMuonPtEtaPhiLowPt, histname, muonCompatibleLayers, muonD0, muonEta, mhtProducer_cfi::muonEtaMax, muonPhi, muonX, muonY, muonZ, MonitorElement::setAxisTitle(), DQMStore::IBooker::setCurrentFolder(), signDeltaX, signDeltaY, StandaloneMuonPtEtaPhiHighPt, StandaloneMuonPtEtaPhiLowPt, AlCaHLTBitMon_QueryRunRegistry::string, trackCompatibleLayers, trackD0, trackEta, trackPhi, trackX, trackY, and trackZ.

81 {
82  std::string MEFolderName = conf_.getParameter<std::string>("FolderName");
83  std::string AlgoName = conf_.getParameter<std::string>("AlgoName");
84 
85 
86  ibooker.setCurrentFolder(MEFolderName);
87 
88  //
89  int muonXBin = conf_.getParameter<int> ("muonXBin");
90  double muonXMin = conf_.getParameter<double>("muonXMin");
91  double muonXMax = conf_.getParameter<double>("muonXMax");
92 
93  histname = "muonX_";
94  muonX = ibooker.book1D(histname+AlgoName, histname+AlgoName, muonXBin, muonXMin, muonXMax);
95  muonX->setAxisTitle("");
96 
97  //
98  int muonYBin = conf_.getParameter<int> ("muonYBin");
99  double muonYMin = conf_.getParameter<double>("muonYMin");
100  double muonYMax = conf_.getParameter<double>("muonYMax");
101 
102  histname = "muonY_";
103  muonY = ibooker.book1D(histname+AlgoName, histname+AlgoName, muonYBin, muonYMin, muonYMax);
104  muonY->setAxisTitle("");
105 
106  //
107  int muonZBin = conf_.getParameter<int> ("muonZBin");
108  double muonZMin = conf_.getParameter<double>("muonZMin");
109  double muonZMax = conf_.getParameter<double>("muonZMax");
110 
111  histname = "muonZ_";
112  muonZ = ibooker.book1D(histname+AlgoName, histname+AlgoName, muonZBin, muonZMin, muonZMax);
113  muonZ->setAxisTitle("");
114 
115  //
116  int muonEtaBin = conf_.getParameter<int> ("muonEtaBin");
117  double muonEtaMin = conf_.getParameter<double>("muonEtaMin");
118  double muonEtaMax = conf_.getParameter<double>("muonEtaMax");
119 
120  histname = "muonEta_";
121  muonEta = ibooker.book1D(histname+AlgoName, histname+AlgoName, muonEtaBin, muonEtaMin, muonEtaMax);
122  muonEta->setAxisTitle("");
123 
124  //
125  int muonPhiBin = conf_.getParameter<int> ("muonPhiBin");
126  double muonPhiMin = conf_.getParameter<double>("muonPhiMin");
127  double muonPhiMax = conf_.getParameter<double>("muonPhiMax");
128 
129  histname = "muonPhi_";
130  muonPhi = ibooker.book1D(histname+AlgoName, histname+AlgoName, muonPhiBin, muonPhiMin, muonPhiMax);
131  muonPhi->setAxisTitle("");
132 
133  //
134  int muonD0Bin = conf_.getParameter<int> ("muonD0Bin");
135  double muonD0Min = conf_.getParameter<double>("muonD0Min");
136  double muonD0Max = conf_.getParameter<double>("muonD0Max");
137 
138  histname = "muonD0_";
139  muonD0 = ibooker.book1D(histname+AlgoName, histname+AlgoName, muonD0Bin, muonD0Min, muonD0Max);
140  muonD0->setAxisTitle("");
141 
142  //
143  int muonCompatibleLayersBin = conf_.getParameter<int> ("muonCompatibleLayersBin");
144  double muonCompatibleLayersMin = conf_.getParameter<double>("muonCompatibleLayersMin");
145  double muonCompatibleLayersMax = conf_.getParameter<double>("muonCompatibleLayersMax");
146 
147  histname = "muonCompatibleLayers_";
148  muonCompatibleLayers = ibooker.book1D(histname+AlgoName, histname+AlgoName, muonCompatibleLayersBin, muonCompatibleLayersMin, muonCompatibleLayersMax);
150 
151  //------------------------------------------------------------------------------------
152 
153  //
154  int trackXBin = conf_.getParameter<int> ("trackXBin");
155  double trackXMin = conf_.getParameter<double>("trackXMin");
156  double trackXMax = conf_.getParameter<double>("trackXMax");
157 
158  histname = "trackX_";
159  trackX = ibooker.book1D(histname+AlgoName, histname+AlgoName, trackXBin, trackXMin, trackXMax);
160  trackX->setAxisTitle("");
161 
162  //
163  int trackYBin = conf_.getParameter<int> ("trackYBin");
164  double trackYMin = conf_.getParameter<double>("trackYMin");
165  double trackYMax = conf_.getParameter<double>("trackYMax");
166 
167  histname = "trackY_";
168  trackY = ibooker.book1D(histname+AlgoName, histname+AlgoName, trackYBin, trackYMin, trackYMax);
169  trackY->setAxisTitle("");
170 
171  //
172  int trackZBin = conf_.getParameter<int> ("trackZBin");
173  double trackZMin = conf_.getParameter<double>("trackZMin");
174  double trackZMax = conf_.getParameter<double>("trackZMax");
175 
176  histname = "trackZ_";
177  trackZ = ibooker.book1D(histname+AlgoName, histname+AlgoName, trackZBin, trackZMin, trackZMax);
178  trackZ->setAxisTitle("");
179 
180  //
181  int trackEtaBin = conf_.getParameter<int> ("trackEtaBin");
182  double trackEtaMin = conf_.getParameter<double>("trackEtaMin");
183  double trackEtaMax = conf_.getParameter<double>("trackEtaMax");
184 
185  histname = "trackEta_";
186  trackEta = ibooker.book1D(histname+AlgoName, histname+AlgoName, trackEtaBin, trackEtaMin, trackEtaMax);
187  trackEta->setAxisTitle("");
188 
189  //
190  int trackPhiBin = conf_.getParameter<int> ("trackPhiBin");
191  double trackPhiMin = conf_.getParameter<double>("trackPhiMin");
192  double trackPhiMax = conf_.getParameter<double>("trackPhiMax");
193 
194  histname = "trackPhi_";
195  trackPhi = ibooker.book1D(histname+AlgoName, histname+AlgoName, trackPhiBin, trackPhiMin, trackPhiMax);
196  trackPhi->setAxisTitle("");
197 
198  //
199  int trackD0Bin = conf_.getParameter<int> ("trackD0Bin");
200  double trackD0Min = conf_.getParameter<double>("trackD0Min");
201  double trackD0Max = conf_.getParameter<double>("trackD0Max");
202 
203  histname = "trackD0_";
204  trackD0 = ibooker.book1D(histname+AlgoName, histname+AlgoName, trackD0Bin, trackD0Min, trackD0Max);
205  trackD0->setAxisTitle("");
206 
207  //
208  int trackCompatibleLayersBin = conf_.getParameter<int> ("trackCompatibleLayersBin");
209  double trackCompatibleLayersMin = conf_.getParameter<double>("trackCompatibleLayersMin");
210  double trackCompatibleLayersMax = conf_.getParameter<double>("trackCompatibleLayersMax");
211 
212  histname = "trackCompatibleLayers_";
213  trackCompatibleLayers = ibooker.book1D(histname+AlgoName, histname+AlgoName, trackCompatibleLayersBin, trackCompatibleLayersMin, trackCompatibleLayersMax);
215 
216  //------------------------------------------------------------------------------------
217 
218  //
219  int deltaXBin = conf_.getParameter<int> ("deltaXBin");
220  double deltaXMin = conf_.getParameter<double>("deltaXMin");
221  double deltaXMax = conf_.getParameter<double>("deltaXMax");
222 
223  histname = "deltaX_";
224  deltaX = ibooker.book1D(histname+AlgoName, histname+AlgoName, deltaXBin, deltaXMin, deltaXMax);
225  deltaX->setAxisTitle("");
226 
227  //
228  int deltaYBin = conf_.getParameter<int> ("deltaYBin");
229  double deltaYMin = conf_.getParameter<double>("deltaYMin");
230  double deltaYMax = conf_.getParameter<double>("deltaYMax");
231 
232  histname = "deltaY_";
233  deltaY = ibooker.book1D(histname+AlgoName, histname+AlgoName, deltaYBin, deltaYMin, deltaYMax);
234  deltaY->setAxisTitle("");
235 
236  //
237  int signDeltaXBin = conf_.getParameter<int> ("signDeltaXBin");
238  double signDeltaXMin = conf_.getParameter<double>("signDeltaXMin");
239  double signDeltaXMax = conf_.getParameter<double>("signDeltaXMax");
240 
241  histname = "signDeltaX_";
242  signDeltaX = ibooker.book1D(histname+AlgoName, histname+AlgoName, signDeltaXBin, signDeltaXMin, signDeltaXMax);
244 
245  //
246  int signDeltaYBin = conf_.getParameter<int> ("signDeltaYBin");
247  double signDeltaYMin = conf_.getParameter<double>("signDeltaYMin");
248  double signDeltaYMax = conf_.getParameter<double>("signDeltaYMax");
249 
250  histname = "signDeltaY_";
251  signDeltaY = ibooker.book1D(histname+AlgoName, histname+AlgoName, signDeltaYBin, signDeltaYMin, signDeltaYMax);
253 
254 
255  histname = "GlobalMuonPtEtaPhi_LowPt_";
256  GlobalMuonPtEtaPhiLowPt = ibooker.book2D(histname+AlgoName, histname+AlgoName, 20,-2.4,2.4,20,-3.25,3.25);
258 
259 
260  histname = "StandaloneMuonPtEtaPhi_LowPt_";
261  StandaloneMuonPtEtaPhiLowPt = ibooker.book2D(histname+AlgoName, histname+AlgoName, 20,-2.4,2.4,20,-3.25,3.25);
263 
264  histname = "GlobalMuonPtEtaPhi_HighPt_";
265  GlobalMuonPtEtaPhiHighPt = ibooker.book2D(histname+AlgoName, histname+AlgoName, 20,-2.4,2.4,20,-3.25,3.25);
267 
268 
269  histname = "StandaloneMuonPtEtaPhi_HighPt_";
270  StandaloneMuonPtEtaPhiHighPt = ibooker.book2D(histname+AlgoName, histname+AlgoName, 20,-2.4,2.4,20,-3.25,3.25);
272 
273 
274 }
T getParameter(std::string const &) const
MonitorElement * GlobalMuonPtEtaPhiHighPt
MonitorElement * GlobalMuonPtEtaPhiLowPt
MonitorElement * muonCompatibleLayers
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
MonitorElement * StandaloneMuonPtEtaPhiLowPt
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
MonitorElement * StandaloneMuonPtEtaPhiHighPt
MonitorElement * trackCompatibleLayers
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
TrackEfficiencyMonitor::SemiCylinder TrackEfficiencyMonitor::checkSemiCylinder ( const Track tk)
int TrackEfficiencyMonitor::compatibleLayers ( const NavigationSchool navigationSchool,
TrajectoryStateOnSurface  theTSOS 
)

Definition at line 677 of file TrackEfficiencyMonitor.cc.

References alongMomentum, Propagator::clone(), findDetLayer, findNextLayer(), TrajectoryStateOnSurface::freeState(), MeasurementTracker::geometricSearchTracker(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), gen::k, LayerTriplets::layers(), measurementTrackerHandle, NavigationSchool::nextLayers(), Propagator::propagate(), Propagator::setPropagationDirection(), GeometricSearchDet::surface(), thePropagator, GeometricSearchTracker::tobLayers(), trackCompatibleLayers, and PV3DBase< T, PVType, FrameType >::y().

Referenced by testTrackerTracks().

679 {
680  //---------------------------------------------------
681  // check the number of compatible layers
682  //---------------------------------------------------
683 
684  std::vector< const BarrelDetLayer*> barrelTOBLayers = measurementTrackerHandle->geometricSearchTracker()->tobLayers() ;
685 
686  unsigned int layers = 0;
687  for ( unsigned int k=0 ; k < barrelTOBLayers.size() ; k++ )
688  {
689  const DetLayer* firstLay = barrelTOBLayers[barrelTOBLayers.size() -1 - k];
690 
691  //Propagator* theTmpPropagator = new SteppingHelixPropagator(&*bField,anyDirection);
692 
693 
694 
695  Propagator* theTmpPropagator = &*thePropagator->clone();
696  theTmpPropagator->setPropagationDirection(alongMomentum);
697 
698  TrajectoryStateOnSurface startTSOS = theTmpPropagator->propagate(*theTSOS.freeState(),firstLay->surface());
699 
700  std::vector< const DetLayer*> trackCompatibleLayers;
701 
702  findDetLayer = true;
703  bool isUpMuon = false;
704  bool firstdtep = true;
705 
706  if(startTSOS.isValid())
707  {
708 
709  if(firstdtep) layers++;
710 
711  int nwhile = 0;
712 
713  //for other compatible layers
714  while ( startTSOS.isValid() && firstLay && findDetLayer)
715  {
716 
717  if(firstdtep && startTSOS.globalPosition().y()> 0) isUpMuon = true;
718 
719  if(firstdtep){
720  std::vector< const DetLayer*> firstCompatibleLayers;
721  firstCompatibleLayers.push_back(firstLay);
722  std::pair<TrajectoryStateOnSurface, const DetLayer* > nextLayer = findNextLayer(theTSOS, firstCompatibleLayers, isUpMuon );
723  firstdtep = false;
724  }
725  else{
726  trackCompatibleLayers = navigationSchool.nextLayers(*firstLay, *(startTSOS.freeState()),alongMomentum);
727  if (!trackCompatibleLayers.empty() ){
728  std::pair<TrajectoryStateOnSurface, const DetLayer* > nextLayer = findNextLayer(startTSOS, trackCompatibleLayers, isUpMuon );
729  if (firstLay != nextLayer.second ){
730  firstLay = nextLayer.second;
731  startTSOS = nextLayer.first;
732  layers++;
733  }
734  else firstLay=nullptr;
735  }
736  }
737  nwhile++;
738  if(nwhile > 100) break;
739 
740  }
741  delete theTmpPropagator;
742  break;
743  }
744  delete theTmpPropagator;
745  }
746  return layers;
747 
748 }
virtual void setPropagationDirection(PropagationDirection dir)
Definition: Propagator.h:140
virtual Propagator * clone() const =0
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
std::vector< BarrelDetLayer const * > const & tobLayers() const
FreeTrajectoryState const * freeState(bool withErrors=true) const
edm::ESHandle< MeasurementTracker > measurementTrackerHandle
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
int k[5][pyjets_maxn]
edm::ESHandle< Propagator > thePropagator
std::pair< TrajectoryStateOnSurface, const DetLayer * > findNextLayer(TrajectoryStateOnSurface startTSOS, const std::vector< const DetLayer * > &trackCompatibleLayers, bool isUpMuon)
std::vector< const DetLayer * > nextLayers(const DetLayer &detLayer, Args &&...args) const
NavigationDirection.
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
MonitorElement * trackCompatibleLayers
const GeometricSearchTracker * geometricSearchTracker() const
void TrackEfficiencyMonitor::endJob ( void  )
override

Definition at line 375 of file TrackEfficiencyMonitor.cc.

References conf_, dqmStore_, edm::ParameterSet::getParameter(), PostProcessorHGCAL_cfi::outputFileName, DQMStore::save(), and AlCaHLTBitMon_QueryRunRegistry::string.

377 {
378  bool outputMEsInRootFile = conf_.getParameter<bool>("OutputMEsInRootFile");
380  if(outputMEsInRootFile){
381  //dqmStore_->showDirStructure();
382  dqmStore_->save(outputFileName);
383  }
384 
385  //if ( theNavigation ) delete theNavigation;
386 
387 }
T getParameter(std::string const &) const
void save(std::string const &filename, std::string const &path="", std::string const &pattern="", std::string const &rewrite="", uint32_t run=0, uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, std::string const &fileupdate="RECREATE")
Definition: DQMStore.cc:2465
std::pair< TrajectoryStateOnSurface, const DetLayer * > TrackEfficiencyMonitor::findNextLayer ( TrajectoryStateOnSurface  startTSOS,
const std::vector< const DetLayer * > &  trackCompatibleLayers,
bool  isUpMuon 
)

Definition at line 754 of file TrackEfficiencyMonitor.cc.

References alongMomentum, Propagator::clone(), DEFINE_FWK_MODULE, findDetLayer, TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::isValid(), Propagator::propagate(), Propagator::setPropagationDirection(), and thePropagator.

Referenced by compatibleLayers().

756 {
757 
758  //Propagator* theTmpPropagator = new SteppingHelixPropagator(&*bField,anyDirection);
759 
760  Propagator* theTmpPropagator = &*thePropagator->clone();
761  theTmpPropagator->setPropagationDirection(alongMomentum);
762 
763 
764  std::vector<const DetLayer*>::const_iterator itl;
765  findDetLayer = false;
766  for (itl=trackCompatibleLayers.begin();itl!=trackCompatibleLayers.end();++itl) {
767  TrajectoryStateOnSurface tsos = theTmpPropagator->propagate(*(sTSOS.freeState()),(**itl).surface());
768  if (tsos.isValid())
769  {
770  sTSOS = tsos;
771  findDetLayer = true;
772 
773  break;
774  }
775  }
776  std::pair<TrajectoryStateOnSurface, const DetLayer* > blabla;
777  blabla.first = sTSOS;
778  blabla.second = &**itl;
779  delete theTmpPropagator;
780  return blabla;
781 }
virtual void setPropagationDirection(PropagationDirection dir)
Definition: Propagator.h:140
virtual Propagator * clone() const =0
edm::ESHandle< Propagator > thePropagator
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
MonitorElement * trackCompatibleLayers
void TrackEfficiencyMonitor::testSTATracks ( edm::Handle< TrackCollection tkTracks,
edm::Handle< TrackCollection staTracks 
)

Definition at line 531 of file TrackEfficiencyMonitor.cc.

References TransientTrackBuilder::build(), checkSemiCylinder(), allConversions_cfi::d0, PVValHelper::eta, PV3DBase< T, PVType, FrameType >::eta(), failedToPropagate, MonitorElement::Fill(), TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::globalPosition(), reco::TransientTrack::impactPointState(), reco::TransientTrack::innermostMeasurementState(), PFRecoTauChargedHadronQualityPlugins_cfi::isTrack, TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localPosition(), muonD0, muonEta, muonPhi, muonX, muonY, muonZ, reco::TransientTrack::outermostMeasurementState(), phi, PV3DBase< T, PVType, FrameType >::phi(), funct::pow(), Propagator::propagate(), TrajectoryStateOnSurface::surface(), thePropagator, theTTrackBuilder, trackD0, trackEta, trackPhi, trackX, trackY, trackZ, Up, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

533 {
534  reco::TransientTrack tkTT = theTTrackBuilder->build(tkTracks->front());
535  double ipX = tkTT.impactPointState().globalPosition().x();
536  double ipY = tkTT.impactPointState().globalPosition().y();
537  double ipZ = tkTT.impactPointState().globalPosition().z();
538  double eta = tkTT.impactPointState().globalDirection().eta();
539  double phi = tkTT.impactPointState().globalDirection().phi();
540  double d0 = (*tkTracks)[0].d0();
541 
543  LocalVector diffLocal;
544  TrajectoryStateOnSurface staState;
545  bool isTrack = false;
546 
547 
548  if(!staTracks->empty()){
549 
550  //---------------------------------------------------
551  //look for associated muons
552  //---------------------------------------------------
553 
554  float DR2min = 1000;
555  reco::TrackCollection::const_iterator closestTrk = staTracks->end();
556  //----------------------loop on tracker tracks:
557  for(reco::TrackCollection::const_iterator staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack){
559 
560  reco::TransientTrack staTT = theTTrackBuilder->build(*staTrack);
561  failedToPropagate = 1;
562  staState = thePropagator->propagate(staTT.outermostMeasurementState(),tkInner.surface());
563 
564 
565  if(staState.isValid())
566  {
567  failedToPropagate = 0;
568  diffLocal = tkInner.localPosition() - staState.localPosition();
569 
570  double DR2 = diffLocal.x()*diffLocal.x()+diffLocal.y()*diffLocal.y();
571  if (DR2<DR2min) { DR2min = DR2; closestTrk = staTrack;}
572  if ( pow(DR2,0.5) < 100. ) isTrack = true;
573  }
574  }
575  }
576  }
577 
578  if(failedToPropagate == 0)
579  {
580 
581  trackX->Fill(ipX);
582  trackY->Fill(ipY);
583  trackZ->Fill(ipZ);
584  trackEta->Fill(eta);
585  trackPhi->Fill(phi);
586  trackD0->Fill(d0);
587 
588  if(isTrack)
589  {
590  muonX->Fill(ipX);
591  muonY->Fill(ipY);
592  muonZ->Fill(ipZ);
593  muonEta->Fill(eta);
594  muonPhi->Fill(phi);
595  muonD0->Fill(d0);
596  }
597  }
598 
599 
600 
601 }
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
reco::TransientTrack build(const reco::Track *p) const
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
TrajectoryStateOnSurface innermostMeasurementState() const
void Fill(long long x)
const SurfaceType & surface() const
T z() const
Definition: PV3DBase.h:64
TrajectoryStateOnSurface outermostMeasurementState() const
edm::ESHandle< Propagator > thePropagator
edm::ESHandle< TransientTrackBuilder > theTTrackBuilder
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
T eta() const
Definition: PV3DBase.h:76
TrajectoryStateOnSurface impactPointState() const
SemiCylinder checkSemiCylinder(const Track &)
T x() const
Definition: PV3DBase.h:62
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
GlobalVector globalDirection() const
void TrackEfficiencyMonitor::testTrackerTracks ( edm::Handle< TrackCollection tkTracks,
edm::Handle< TrackCollection staTracks,
const NavigationSchool navigationSchool 
)

Definition at line 392 of file TrackEfficiencyMonitor.cc.

References TransientTrackBuilder::build(), checkSemiCylinder(), compatibleLayers(), allConversions_cfi::d0, deltaX, deltaY, PVValHelper::eta, PV3DBase< T, PVType, FrameType >::eta(), failedToPropagate, MonitorElement::Fill(), TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::globalPosition(), mps_fire::i, reco::TransientTrack::impactPointState(), reco::TransientTrack::innermostMeasurementState(), PFRecoTauChargedHadronQualityPlugins_cfi::isTrack, TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localPosition(), metname, muonCompatibleLayers, muonD0, muonEta, muonPhi, muonX, muonY, muonZ, nCompatibleLayers, reco::TransientTrack::outermostMeasurementState(), phi, PV3DBase< T, PVType, FrameType >::phi(), LocalTrajectoryError::positionError(), funct::pow(), Propagator::propagate(), signDeltaX, signDeltaY, AlCaHLTBitMon_QueryRunRegistry::string, TrajectoryStateOnSurface::surface(), theMaxZ_, thePropagator, theRadius_, theTTrackBuilder, trackCompatibleLayers, trackD0, trackerAcceptance(), trackEta, trackPhi, trackX, trackY, trackZ, Up, PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), LocalError::yy(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

394 {
395  const std::string metname = "testStandAloneMuonTracks";
396 
397  //---------------------------------------------------
398  // get the index of the "up" muon
399  // histograms will only be computed for the "up" muon
400  //---------------------------------------------------
401 
402  int nUpMuon = 0;
403  int idxUpMuon = -1;
404  for(unsigned int i =0; i< staTracks->size(); i++){
405  if( checkSemiCylinder((*staTracks)[i]) == TrackEfficiencyMonitor::Up ){
406  nUpMuon++;
407  idxUpMuon = i;
408  }
409  }
410 
411 
412  if( nUpMuon == 1)
413  {
414 
415  //---------------------------------------------------
416  //get the muon informations
417  //---------------------------------------------------
418 
419  reco::TransientTrack staTT = theTTrackBuilder->build((*staTracks)[idxUpMuon]);
420  double ipX = staTT.impactPointState().globalPosition().x();
421  double ipY = staTT.impactPointState().globalPosition().y();
422  double ipZ = staTT.impactPointState().globalPosition().z();
423  double eta = staTT.impactPointState().globalDirection().eta();
424  double phi = staTT.impactPointState().globalDirection().phi();
425  double d0 = (*staTracks)[idxUpMuon].d0();
426 
428  TrajectoryStateOnSurface theTSOSCompLayers = staTT.outermostMeasurementState();
429 
430 
431  //---------------------------------------------------
432  //check if the muon is in the tracker acceptance
433  //---------------------------------------------------
434  bool isInTrackerAcceptance = false;
435  isInTrackerAcceptance = trackerAcceptance( theTSOS, theRadius_ , theMaxZ_ );
436 
437  //---------------------------------------------------st
438  //count the number of compatible layers
439  //---------------------------------------------------
440  nCompatibleLayers = compatibleLayers(navigationSchool, theTSOSCompLayers);
441 
442  if(isInTrackerAcceptance && (*staTracks)[idxUpMuon].hitPattern().numberOfValidHits() > 28)
443  {
444  //---------------------------------------------------
445  //count the number of good muon candidates
446  //---------------------------------------------------
447 
448  TrajectoryStateOnSurface staState;
449  LocalVector diffLocal;
450 
451 
452  bool isTrack = false;
453  if(!tkTracks->empty())
454  {
455  //---------------------------------------------------
456  //look for associated tracks
457  //---------------------------------------------------
458  float DR2min = 1000;
459  reco::TrackCollection::const_iterator closestTrk = tkTracks->end();
460 
461  for(reco::TrackCollection::const_iterator tkTrack = tkTracks->begin(); tkTrack != tkTracks->end(); ++tkTrack)
462  {
463  reco::TransientTrack tkTT = theTTrackBuilder->build(*tkTrack);
465  staState = thePropagator->propagate(staTT.outermostMeasurementState(),tkInner.surface());
466  failedToPropagate = 1;
467 
468  if(staState.isValid())
469  {
470  failedToPropagate = 0;
471  diffLocal = tkInner.localPosition() - staState.localPosition();
472  double DR2 = diffLocal.x()*diffLocal.x()+diffLocal.y()*diffLocal.y();
473  if (DR2<DR2min) { DR2min = DR2; closestTrk = tkTrack;}
474  if ( pow(DR2,0.5) < 100. ) isTrack = true;
475  }
476  }
477 
478 
479  if (DR2min != 1000)
480  {
481 
482  reco::TransientTrack tkTT = theTTrackBuilder->build(*closestTrk);
484  staState = thePropagator->propagate(staTT.outermostMeasurementState(),tkInner.surface());
485  deltaX->Fill(diffLocal.x());
486  deltaY->Fill(diffLocal.y());
487  signDeltaX->Fill(diffLocal.x()/(tkInner.localError().positionError().xx() + staState.localError().positionError().xx()));
488  signDeltaY->Fill(diffLocal.y()/(tkInner.localError().positionError().yy() + staState.localError().positionError().yy()));
489 
490  }
491  }
492 
493 
494  if(failedToPropagate == 0)
495  {
496  muonX->Fill(ipX);
497  muonY->Fill(ipY);
498  muonZ->Fill(ipZ);
499  muonEta->Fill(eta);
500  muonPhi->Fill(phi);
501  muonD0->Fill(d0);
503 
504  if(isTrack)
505  {
506  trackX->Fill(ipX);
507  trackY->Fill(ipY);
508  trackZ->Fill(ipZ);
509  trackEta->Fill(eta);
510  trackPhi->Fill(phi);
511  trackD0->Fill(d0);
513  }
514  }
515  }
516  }
517 
518 }
float xx() const
Definition: LocalError.h:24
const std::string metname
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
reco::TransientTrack build(const reco::Track *p) const
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
LocalError positionError() const
TrajectoryStateOnSurface innermostMeasurementState() const
void Fill(long long x)
MonitorElement * muonCompatibleLayers
const SurfaceType & surface() const
float yy() const
Definition: LocalError.h:26
T z() const
Definition: PV3DBase.h:64
const LocalTrajectoryError & localError() const
TrajectoryStateOnSurface outermostMeasurementState() const
edm::ESHandle< Propagator > thePropagator
edm::ESHandle< TransientTrackBuilder > theTTrackBuilder
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
T eta() const
Definition: PV3DBase.h:76
bool trackerAcceptance(TrajectoryStateOnSurface theTSOS, double theRadius, double theMaxZ)
int compatibleLayers(const NavigationSchool &navigationSchool, TrajectoryStateOnSurface theTSOS)
TrajectoryStateOnSurface impactPointState() const
SemiCylinder checkSemiCylinder(const Track &)
MonitorElement * trackCompatibleLayers
T x() const
Definition: PV3DBase.h:62
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
GlobalVector globalDirection() const
bool TrackEfficiencyMonitor::trackerAcceptance ( TrajectoryStateOnSurface  theTSOS,
double  theRadius,
double  theMaxZ 
)

Definition at line 629 of file TrackEfficiencyMonitor.cc.

References accept(), alongMomentum, Cylinder::build(), Propagator::clone(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), oppositeToMomentum, Propagator::propagate(), Propagator::setPropagationDirection(), thePropagator, PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by testTrackerTracks().

631 {
632  //---------------------------------------------------
633  // check if the muon is in the tracker acceptance
634  // check the compatibility with a cylinder of radius "theRadius"
635  //---------------------------------------------------
636 
637  //Propagator* theTmpPropagator = new SteppingHelixPropagator(&*bField,anyDirection);
638 
639  //Propagator* theTmpPropagator = &*thePropagator;
640  Propagator* theTmpPropagator = &*thePropagator->clone();
641 
642  if (theTSOS.globalPosition().y() <0 ) theTmpPropagator->setPropagationDirection(oppositeToMomentum);
643  else theTmpPropagator->setPropagationDirection(alongMomentum);
644 
647  const Cylinder::CylinderPointer cyl = Cylinder::build(pos0, rot0, theRadius);
648  TrajectoryStateOnSurface tsosAtCyl = theTmpPropagator->propagate(*theTSOS.freeState(), *cyl);
649  double accept = false;
650  if ( tsosAtCyl.isValid() ) {
651  if (fabs(tsosAtCyl.globalPosition().z())<theMaxZ ) {
654  const Cylinder::CylinderPointer cyl2 = Cylinder::build(pos02, rot02, theRadius -10);
655  TrajectoryStateOnSurface tsosAtCyl2 = theTmpPropagator->propagate(*tsosAtCyl.freeState(), *cyl2);
656  if ( tsosAtCyl2.isValid() ) {
659  const Cylinder::CylinderPointer cyl3 = Cylinder::build(pos03, rot03, theRadius );
660  TrajectoryStateOnSurface tsosAtCyl3 = theTmpPropagator->propagate(*tsosAtCyl2.freeState(), *cyl3);
661  if ( tsosAtCyl3.isValid() ) {
662  accept=true;
663  }
664  }
665 
666  }
667  }
668  delete theTmpPropagator;
669  //muon propagated to the barrel cylinder
670  return accept;
671 
672 }
virtual void setPropagationDirection(PropagationDirection dir)
Definition: Propagator.h:140
virtual Propagator * clone() const =0
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
static CylinderPointer build(const PositionType &pos, const RotationType &rot, Scalar radius, Bounds *bounds=0)
Definition: Cylinder.h:51
FreeTrajectoryState const * freeState(bool withErrors=true) const
T z() const
Definition: PV3DBase.h:64
edm::ESHandle< Propagator > thePropagator
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53

Member Data Documentation

edm::ESHandle<MagneticField> TrackEfficiencyMonitor::bField
private

Definition at line 125 of file TrackEfficiencyMonitor.h.

Referenced by analyze().

edm::ParameterSet TrackEfficiencyMonitor::conf_
private

Definition at line 75 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), endJob(), and TrackEfficiencyMonitor().

MonitorElement* TrackEfficiencyMonitor::deltaX
private

Definition at line 109 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::deltaY
private

Definition at line 110 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

DQMStore* TrackEfficiencyMonitor::dqmStore_
private

Definition at line 74 of file TrackEfficiencyMonitor.h.

Referenced by endJob(), and TrackEfficiencyMonitor().

int TrackEfficiencyMonitor::failedToPropagate
private

Definition at line 89 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), testSTATracks(), and testTrackerTracks().

bool TrackEfficiencyMonitor::findDetLayer
private

Definition at line 91 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), compatibleLayers(), and findNextLayer().

MonitorElement* TrackEfficiencyMonitor::GlobalMuonPtEtaPhiHighPt
private

Definition at line 115 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackEfficiencyMonitor::GlobalMuonPtEtaPhiLowPt
private

Definition at line 113 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and bookHistograms().

std::string TrackEfficiencyMonitor::histname
private

Definition at line 72 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms().

bool TrackEfficiencyMonitor::isBFieldOff_
private

Definition at line 79 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

edm::ESHandle<MeasurementTracker> TrackEfficiencyMonitor::measurementTrackerHandle
private

Definition at line 127 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and compatibleLayers().

MonitorElement* TrackEfficiencyMonitor::muonCompatibleLayers
private

Definition at line 99 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::muonD0
private

Definition at line 98 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::muonEta
private

Definition at line 96 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::muonPhi
private

Definition at line 97 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

edm::EDGetTokenT<edm::View<reco::Muon> > TrackEfficiencyMonitor::muonToken_
private

Definition at line 119 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

MonitorElement* TrackEfficiencyMonitor::muonX
private

Definition at line 93 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::muonY
private

Definition at line 94 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::muonZ
private

Definition at line 95 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

int TrackEfficiencyMonitor::nCompatibleLayers
private

Definition at line 90 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::signDeltaX
private

Definition at line 111 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::signDeltaY
private

Definition at line 112 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::StandaloneMuonPtEtaPhiHighPt
private

Definition at line 116 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* TrackEfficiencyMonitor::StandaloneMuonPtEtaPhiLowPt
private

Definition at line 114 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and bookHistograms().

edm::ESHandle<GeometricSearchTracker> TrackEfficiencyMonitor::theGeometricSearchTracker
private

Definition at line 120 of file TrackEfficiencyMonitor.h.

double TrackEfficiencyMonitor::theMaxZ_
private

Definition at line 78 of file TrackEfficiencyMonitor.h.

Referenced by testTrackerTracks(), and TrackEfficiencyMonitor().

MuonServiceProxy* TrackEfficiencyMonitor::theMuonServiceProxy
private

Definition at line 118 of file TrackEfficiencyMonitor.h.

const DirectTrackerNavigation* TrackEfficiencyMonitor::theNavigation
private

Definition at line 117 of file TrackEfficiencyMonitor.h.

Referenced by analyze().

edm::ESHandle<Propagator> TrackEfficiencyMonitor::thePropagator
private
edm::ESHandle<Propagator> TrackEfficiencyMonitor::thePropagatorCyl
private

Definition at line 122 of file TrackEfficiencyMonitor.h.

double TrackEfficiencyMonitor::theRadius_
private

Definition at line 77 of file TrackEfficiencyMonitor.h.

Referenced by testTrackerTracks(), and TrackEfficiencyMonitor().

edm::InputTag TrackEfficiencyMonitor::theSTATracksLabel_
private

Definition at line 84 of file TrackEfficiencyMonitor.h.

Referenced by TrackEfficiencyMonitor().

edm::EDGetTokenT<reco::TrackCollection> TrackEfficiencyMonitor::theSTATracksToken_
private

Definition at line 86 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

edm::InputTag TrackEfficiencyMonitor::theTKTracksLabel_
private

Definition at line 83 of file TrackEfficiencyMonitor.h.

Referenced by TrackEfficiencyMonitor().

edm::EDGetTokenT<reco::TrackCollection> TrackEfficiencyMonitor::theTKTracksToken_
private

Definition at line 85 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

edm::ESHandle<GeometricSearchTracker> TrackEfficiencyMonitor::theTracker
private

Definition at line 124 of file TrackEfficiencyMonitor.h.

Referenced by analyze().

edm::ESHandle<TransientTrackBuilder> TrackEfficiencyMonitor::theTTrackBuilder
private

Definition at line 123 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), testSTATracks(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::trackCompatibleLayers
private

Definition at line 107 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), compatibleLayers(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::trackD0
private

Definition at line 106 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

bool TrackEfficiencyMonitor::trackEfficiency_
private

Definition at line 80 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

MonitorElement* TrackEfficiencyMonitor::trackEta
private

Definition at line 104 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::trackPhi
private

Definition at line 105 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::trackX
private

Definition at line 101 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::trackY
private

Definition at line 102 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::trackZ
private

Definition at line 103 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), testSTATracks(), and testTrackerTracks().