CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
TrackEfficiencyMonitor Class Reference

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

Inheritance diagram for TrackEfficiencyMonitor:
edm::EDAnalyzer edm::EDConsumerBase

Public Types

enum  SemiCylinder { Up, Down }
 
typedef reco::Track Track
 
typedef reco::TrackCollection TrackCollection
 
- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob (void)
 
SemiCylinder checkSemiCylinder (const Track &)
 
int compatibleLayers (TrajectoryStateOnSurface theTSOS)
 
virtual void endJob (void)
 
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)
 
 TrackEfficiencyMonitor (const edm::ParameterSet &)
 
bool trackerAcceptance (TrajectoryStateOnSurface theTSOS, double theRadius, double theMaxZ)
 
 ~TrackEfficiencyMonitor ()
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Attributes

edm::ESHandle< MagneticFieldbField
 
edm::ParameterSet conf_
 
MonitorElementdeltaX
 
MonitorElementdeltaY
 
DQMStoredqmStore_
 
int failedToPropagate
 
bool findDetLayer
 
std::string histname
 
bool isBFieldOff_
 
edm::ESHandle< MeasurementTrackermeasurementTrackerHandle
 
MonitorElementmuonCompatibleLayers
 
MonitorElementmuonD0
 
MonitorElementmuonEta
 
MonitorElementmuonPhi
 
MonitorElementmuonX
 
MonitorElementmuonY
 
MonitorElementmuonZ
 
int nCompatibleLayers
 
MonitorElementsignDeltaX
 
MonitorElementsignDeltaY
 
edm::ESHandle
< GeometricSearchTracker
theGeometricSearchTracker
 
double theMaxZ_
 
MuonServiceProxytheMuonServiceProxy
 
const DirectTrackerNavigationtheNavigation
 
edm::ESHandle< PropagatorthePropagator
 
edm::ESHandle< PropagatorthePropagatorCyl
 
double theRadius_
 
edm::InputTag theSTATracksLabel_
 
edm::EDGetTokenT
< reco::TrackCollection
theSTATracksToken_
 
edm::InputTag theTKTracksLabel_
 
edm::EDGetTokenT
< reco::TrackCollection
theTKTracksToken_
 
edm::ESHandle
< GeometricSearchTracker
theTracker
 
edm::ESHandle
< TransientTrackBuilder
theTTrackBuilder
 
MonitorElementtrackCompatibleLayers
 
MonitorElementtrackD0
 
bool trackEfficiency_
 
MonitorElementtrackEta
 
MonitorElementtrackPhi
 
MonitorElementtrackX
 
MonitorElementtrackY
 
MonitorElementtrackZ
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Monitoring source to measure the track efficiency

Definition at line 40 of file TrackEfficiencyMonitor.h.

Member Typedef Documentation

Definition at line 42 of file TrackEfficiencyMonitor.h.

Definition at line 43 of file TrackEfficiencyMonitor.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

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

Definition at line 51 of file TrackEfficiencyMonitor.cc.

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

53 {
55 
56  theRadius_ = iConfig.getParameter<double>("theRadius");
57  theMaxZ_ = iConfig.getParameter<double>("theMaxZ");
58  isBFieldOff_ = iConfig.getParameter<bool>("isBFieldOff");
59  trackEfficiency_ = iConfig.getParameter<bool>("trackEfficiency");
60  theTKTracksLabel_ = iConfig.getParameter<edm::InputTag>("TKTrackCollection");
61  theSTATracksLabel_ = iConfig.getParameter<edm::InputTag>("STATrackCollection");
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< reco::TrackCollection > theTKTracksToken_
edm::EDGetTokenT< reco::TrackCollection > theSTATracksToken_
TrackEfficiencyMonitor::~TrackEfficiencyMonitor ( )

Definition at line 72 of file TrackEfficiencyMonitor.cc.

74 {}

Member Function Documentation

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

Implements edm::EDAnalyzer.

Definition at line 260 of file TrackEfficiencyMonitor.cc.

References bField, edm::EventSetup::get(), edm::Event::getByToken(), isBFieldOff_, muon::isGoodMuon(), measurementTrackerHandle, nCompatibleLayers, edm::ESHandle< class >::product(), muonTagProbeFilters_cff::staTracks, testSTATracks(), testTrackerTracks(), theNavigation, thePropagator, theSTATracksToken_, theTKTracksToken_, theTracker, theTTrackBuilder, and trackEfficiency_.

262 {
263 
264 
266  // iEvent.getByLabel(theTKTracksLabel_, tkTracks);
267  iEvent.getByToken(theTKTracksToken_, tkTracks);
269  // iEvent.getByLabel(theSTATracksLabel_, staTracks);
270  iEvent.getByToken(theSTATracksToken_, staTracks);
272  iSetup.get<NavigationSchoolRecord>().get("CosmicNavigationSchool", nav);
273  NavigationSetter setter(*nav.product());
275 
276  nCompatibleLayers = 0;
277 
278  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder",theTTrackBuilder);
279  iSetup.get<TrackingComponentsRecord>().get("SteppingHelixPropagatorAny",thePropagator);
280  iSetup.get<IdealMagneticFieldRecord>().get(bField);
283 
284 
285  if(trackEfficiency_){
286  //---------------------------------------------------
287  // Select muons with good quality
288  // If B field is on, no up-down matching between the muons
289  //---------------------------------------------------
290  bool isGoodMuon = false;
291  double mudd0 = 0., mudphi = 0., muddsz = 0., mudeta = 0.;
292  if(isBFieldOff_)
293  {
294  if ( staTracks->size() == 2 )
295  {
296  for ( unsigned int bindex = 0; bindex < staTracks->size(); ++bindex )
297  {
298 
299  if (0 == bindex){
300  mudd0+=(*staTracks)[bindex].d0();
301  mudphi+=(*staTracks)[bindex].phi();
302  muddsz+=(*staTracks)[bindex].dsz();
303  mudeta+=(*staTracks)[bindex].eta();}
304  if (1 == bindex){
305  mudd0-=(*staTracks)[bindex].d0();
306  mudphi-=(*staTracks)[bindex].phi();
307  muddsz-=(*staTracks)[bindex].dsz();
308  mudeta-=(*staTracks)[bindex].eta();}
309  }
310  if ((fabs(mudd0)<15.0)&&(fabs(mudphi)<0.045)&&(fabs(muddsz)<20.0)&&(fabs(mudeta)<0.060)) isGoodMuon = true;
311  }
312 
313  if(isGoodMuon) testTrackerTracks(tkTracks,staTracks);
314 
315  }
316  else if ( staTracks->size() == 1 || staTracks->size() == 2) testTrackerTracks(tkTracks,staTracks);
317  }
318 
319 
320  if(!trackEfficiency_ && tkTracks->size() == 1 ){
321  if( (tkTracks->front()).normalizedChi2() < 5 &&
322  (tkTracks->front()).hitPattern().numberOfValidHits() > 8)
323  testSTATracks(tkTracks,staTracks);
324  }
325 
326 
327  delete theNavigation;
328 
329 }
edm::ESHandle< MagneticField > bField
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
edm::ESHandle< GeometricSearchTracker > theTracker
edm::ESHandle< MeasurementTracker > measurementTrackerHandle
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
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
void testTrackerTracks(edm::Handle< TrackCollection > tkTracks, edm::Handle< TrackCollection > staTracks)
const DirectTrackerNavigation * theNavigation
void testSTATracks(edm::Handle< TrackCollection > tkTracks, edm::Handle< TrackCollection > staTracks)
edm::EDGetTokenT< reco::TrackCollection > theSTATracksToken_
void TrackEfficiencyMonitor::beginJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 80 of file TrackEfficiencyMonitor.cc.

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

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

Definition at line 640 of file TrackEfficiencyMonitor.cc.

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

Referenced by testTrackerTracks().

642 {
643  //---------------------------------------------------
644  // check the number of compatible layers
645  //---------------------------------------------------
646 
647  std::vector< BarrelDetLayer*> barrelTOBLayers = measurementTrackerHandle->geometricSearchTracker()->tobLayers() ;
648 
649  unsigned int layers = 0;
650  for ( unsigned int k=0 ; k < barrelTOBLayers.size() ; k++ )
651  {
652  const DetLayer* firstLay = barrelTOBLayers[barrelTOBLayers.size() -1 - k];
653 
654  //Propagator* theTmpPropagator = new SteppingHelixPropagator(&*bField,anyDirection);
655 
656 
657 
658  Propagator* theTmpPropagator = &*thePropagator->clone();
659  theTmpPropagator->setPropagationDirection(alongMomentum);
660 
661  TrajectoryStateOnSurface startTSOS = theTmpPropagator->propagate(*theTSOS.freeState(),firstLay->surface());
662 
663  std::vector< const DetLayer*> trackCompatibleLayers;
664 
665  findDetLayer = true;
666  bool isUpMuon = false;
667  bool firstdtep = true;
668 
669  if(startTSOS.isValid())
670  {
671 
672  if(firstdtep) layers++;
673 
674  int nwhile = 0;
675 
676  //for other compatible layers
677  while ( startTSOS.isValid() && firstLay && findDetLayer)
678  {
679 
680  if(firstdtep && startTSOS.globalPosition().y()> 0) isUpMuon = true;
681 
682  if(firstdtep){
683  std::vector< const DetLayer*> firstCompatibleLayers;
684  firstCompatibleLayers.push_back(firstLay);
685  std::pair<TrajectoryStateOnSurface, const DetLayer* > nextLayer = findNextLayer(theTSOS, firstCompatibleLayers, isUpMuon );
686  firstdtep = false;
687  }
688  else{
689  trackCompatibleLayers = firstLay->nextLayers(*(startTSOS.freeState()),alongMomentum);
690  if (trackCompatibleLayers.size()!=0 ){
691  std::pair<TrajectoryStateOnSurface, const DetLayer* > nextLayer = findNextLayer(startTSOS, trackCompatibleLayers, isUpMuon );
692  if (firstLay != nextLayer.second ){
693  firstLay = nextLayer.second;
694  startTSOS = nextLayer.first;
695  layers++;
696  }
697  else firstLay=0;
698  }
699  }
700  nwhile++;
701  if(nwhile > 100) break;
702 
703  }
704  delete theTmpPropagator;
705  break;
706  }
707  delete theTmpPropagator;
708  }
709  return layers;
710 
711 }
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
FreeTrajectoryState const * freeState(bool withErrors=true) const
edm::ESHandle< MeasurementTracker > measurementTrackerHandle
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
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)
virtual void setPropagationDirection(PropagationDirection dir) const
Definition: Propagator.h:134
MonitorElement * trackCompatibleLayers
std::vector< const DetLayer * > nextLayers(Args &&...args) const
Definition: DetLayer.h:60
void TrackEfficiencyMonitor::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 334 of file TrackEfficiencyMonitor.cc.

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

336 {
337  bool outputMEsInRootFile = conf_.getParameter<bool>("OutputMEsInRootFile");
339  if(outputMEsInRootFile){
341  dqmStore_->save(outputFileName);
342  }
343 
344  //if ( theNavigation ) delete theNavigation;
345 
346 }
T getParameter(std::string const &) const
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2296
void showDirStructure(void) const
Definition: DQMStore.cc:2961
std::pair< TrajectoryStateOnSurface, const DetLayer * > TrackEfficiencyMonitor::findNextLayer ( TrajectoryStateOnSurface  startTSOS,
const std::vector< const DetLayer * > &  trackCompatibleLayers,
bool  isUpMuon 
)

Definition at line 717 of file TrackEfficiencyMonitor.cc.

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

Referenced by compatibleLayers().

719 {
720 
721  //Propagator* theTmpPropagator = new SteppingHelixPropagator(&*bField,anyDirection);
722 
723 
724  Propagator* theTmpPropagator = &*thePropagator->clone();
725  theTmpPropagator->setPropagationDirection(alongMomentum);
726 
727 
728  std::vector<const DetLayer*>::const_iterator itl;
729  findDetLayer = false;
730  for (itl=trackCompatibleLayers.begin();itl!=trackCompatibleLayers.end();++itl) {
731  TrajectoryStateOnSurface tsos = theTmpPropagator->propagate(*(sTSOS.freeState()),(**itl).surface());
732  if (tsos.isValid())
733  {
734  sTSOS = tsos;
735  findDetLayer = true;
736 
737  break;
738  }
739  }
740  std::pair<TrajectoryStateOnSurface, const DetLayer* > blabla;
741  blabla.first = sTSOS;
742  blabla.second = &**itl;
743  delete theTmpPropagator;
744  return blabla;
745 }
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
edm::ESHandle< Propagator > thePropagator
virtual void setPropagationDirection(PropagationDirection dir) const
Definition: Propagator.h:134
MonitorElement * trackCompatibleLayers
void TrackEfficiencyMonitor::testSTATracks ( edm::Handle< TrackCollection tkTracks,
edm::Handle< TrackCollection staTracks 
)

Definition at line 491 of file TrackEfficiencyMonitor.cc.

References checkSemiCylinder(), PV3DBase< T, PVType, FrameType >::eta(), 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(), 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().

493 {
494 
495 
496  reco::TransientTrack tkTT = theTTrackBuilder->build(tkTracks->front());
497  double ipX = tkTT.impactPointState().globalPosition().x();
498  double ipY = tkTT.impactPointState().globalPosition().y();
499  double ipZ = tkTT.impactPointState().globalPosition().z();
500  double eta = tkTT.impactPointState().globalDirection().eta();
501  double phi = tkTT.impactPointState().globalDirection().phi();
502  double d0 = (*tkTracks)[0].d0();
503 
505  LocalVector diffLocal;
506  TrajectoryStateOnSurface staState;
507  bool isTrack = false;
508 
509 
510  if(!staTracks->empty()){
511 
512  //---------------------------------------------------
513  //look for associated muons
514  //---------------------------------------------------
515 
516  float DR2min = 1000;
517  reco::TrackCollection::const_iterator closestTrk = staTracks->end();
518  //----------------------loop on tracker tracks:
519  for(reco::TrackCollection::const_iterator staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack){
521 
522  reco::TransientTrack staTT = theTTrackBuilder->build(*staTrack);
523  failedToPropagate = 1;
524  staState = thePropagator->propagate(staTT.outermostMeasurementState(),tkInner.surface());
525 
526 
527  if(staState.isValid())
528  {
529  failedToPropagate = 0;
530  diffLocal = tkInner.localPosition() - staState.localPosition();
531 
532  double DR2 = diffLocal.x()*diffLocal.x()+diffLocal.y()*diffLocal.y();
533  if (DR2<DR2min) { DR2min = DR2; closestTrk = staTrack;}
534  if ( pow(DR2,0.5) < 100. ) isTrack = true;
535  }
536  }
537  }
538  }
539 
540  if(failedToPropagate == 0)
541  {
542 
543  trackX->Fill(ipX);
544  trackY->Fill(ipY);
545  trackZ->Fill(ipZ);
546  trackEta->Fill(eta);
547  trackPhi->Fill(phi);
548  trackD0->Fill(d0);
549 
550  if(isTrack)
551  {
552  muonX->Fill(ipX);
553  muonY->Fill(ipY);
554  muonZ->Fill(ipZ);
555  muonEta->Fill(eta);
556  muonPhi->Fill(phi);
557  muonD0->Fill(d0);
558  }
559  }
560 
561 
562 
563 }
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
T eta() 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
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
Definition: DDAxes.h:10
void TrackEfficiencyMonitor::testTrackerTracks ( edm::Handle< TrackCollection tkTracks,
edm::Handle< TrackCollection staTracks 
)

Definition at line 351 of file TrackEfficiencyMonitor.cc.

References checkSemiCylinder(), compatibleLayers(), deltaX, deltaY, PV3DBase< T, PVType, FrameType >::eta(), eta(), failedToPropagate, MonitorElement::Fill(), TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::globalPosition(), 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(), 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().

353 {
354 
355  const std::string metname = "testStandAloneMuonTracks";
356 
357  //---------------------------------------------------
358  // get the index of the "up" muon
359  // histograms will only be computed for the "up" muon
360  //---------------------------------------------------
361 
362  int nUpMuon = 0;
363  int idxUpMuon = -1;
364  for(unsigned int i =0; i< staTracks->size(); i++){
365  if( checkSemiCylinder((*staTracks)[i]) == TrackEfficiencyMonitor::Up ){
366  nUpMuon++;
367  idxUpMuon = i;
368  }
369  }
370 
371 
372  if( nUpMuon == 1)
373  {
374 
375  //---------------------------------------------------
376  //get the muon informations
377  //---------------------------------------------------
378 
379  reco::TransientTrack staTT = theTTrackBuilder->build((*staTracks)[idxUpMuon]);
380  double ipX = staTT.impactPointState().globalPosition().x();
381  double ipY = staTT.impactPointState().globalPosition().y();
382  double ipZ = staTT.impactPointState().globalPosition().z();
383  double eta = staTT.impactPointState().globalDirection().eta();
384  double phi = staTT.impactPointState().globalDirection().phi();
385  double d0 = (*staTracks)[idxUpMuon].d0();
386 
388  TrajectoryStateOnSurface theTSOSCompLayers = staTT.outermostMeasurementState();
389 
390 
391  //---------------------------------------------------
392  //check if the muon is in the tracker acceptance
393  //---------------------------------------------------
394  bool isInTrackerAcceptance = false;
395  isInTrackerAcceptance = trackerAcceptance( theTSOS, theRadius_ , theMaxZ_ );
396 
397  //---------------------------------------------------st
398  //count the number of compatible layers
399  //---------------------------------------------------
400  nCompatibleLayers = compatibleLayers(theTSOSCompLayers);
401 
402  if(isInTrackerAcceptance && (*staTracks)[idxUpMuon].hitPattern().numberOfValidHits() > 28)
403  {
404  //---------------------------------------------------
405  //count the number of good muon candidates
406  //---------------------------------------------------
407 
408  TrajectoryStateOnSurface staState;
409  LocalVector diffLocal;
410 
411 
412  bool isTrack = false;
413  if(!tkTracks->empty())
414  {
415  //---------------------------------------------------
416  //look for associated tracks
417  //---------------------------------------------------
418  float DR2min = 1000;
419  reco::TrackCollection::const_iterator closestTrk = tkTracks->end();
420 
421  for(reco::TrackCollection::const_iterator tkTrack = tkTracks->begin(); tkTrack != tkTracks->end(); ++tkTrack)
422  {
423  reco::TransientTrack tkTT = theTTrackBuilder->build(*tkTrack);
425  staState = thePropagator->propagate(staTT.outermostMeasurementState(),tkInner.surface());
426  failedToPropagate = 1;
427 
428  if(staState.isValid())
429  {
430  failedToPropagate = 0;
431  diffLocal = tkInner.localPosition() - staState.localPosition();
432  double DR2 = diffLocal.x()*diffLocal.x()+diffLocal.y()*diffLocal.y();
433  if (DR2<DR2min) { DR2min = DR2; closestTrk = tkTrack;}
434  if ( pow(DR2,0.5) < 100. ) isTrack = true;
435  }
436  }
437 
438 
439  if (DR2min != 1000)
440  {
441 
442  reco::TransientTrack tkTT = theTTrackBuilder->build(*closestTrk);
444  staState = thePropagator->propagate(staTT.outermostMeasurementState(),tkInner.surface());
445  deltaX->Fill(diffLocal.x());
446  deltaY->Fill(diffLocal.y());
447  signDeltaX->Fill(diffLocal.x()/(tkInner.localError().positionError().xx() + staState.localError().positionError().xx()));
448  signDeltaY->Fill(diffLocal.y()/(tkInner.localError().positionError().yy() + staState.localError().positionError().yy()));
449 
450  }
451  }
452 
453 
454  if(failedToPropagate == 0)
455  {
456  muonX->Fill(ipX);
457  muonY->Fill(ipY);
458  muonZ->Fill(ipZ);
459  muonEta->Fill(eta);
460  muonPhi->Fill(phi);
461  muonD0->Fill(d0);
463 
464  if(isTrack)
465  {
466  trackX->Fill(ipX);
467  trackY->Fill(ipY);
468  trackZ->Fill(ipZ);
469  trackEta->Fill(eta);
470  trackPhi->Fill(phi);
471  trackD0->Fill(d0);
473  }
474  }
475  }
476  }
477 
478 }
int compatibleLayers(TrajectoryStateOnSurface theTSOS)
int i
Definition: DBlmapReader.cc:9
float xx() const
Definition: LocalError.h:24
const std::string metname
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
T y() const
Definition: PV3DBase.h:63
GlobalPoint globalPosition() const
T eta() 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
T eta() const
Definition: PV3DBase.h:76
bool trackerAcceptance(TrajectoryStateOnSurface theTSOS, double theRadius, double theMaxZ)
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
Definition: DDAxes.h:10
bool TrackEfficiencyMonitor::trackerAcceptance ( TrajectoryStateOnSurface  theTSOS,
double  theRadius,
double  theMaxZ 
)

Definition at line 591 of file TrackEfficiencyMonitor.cc.

References accept(), alongMomentum, newFWLiteAna::build, 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().

593 {
594 
595  //---------------------------------------------------
596  // check if the muon is in the tracker acceptance
597  // check the compatibility with a cylinder of radius "theRadius"
598  //---------------------------------------------------
599 
600  //Propagator* theTmpPropagator = new SteppingHelixPropagator(&*bField,anyDirection);
601 
602  //Propagator* theTmpPropagator = &*thePropagator;
603  Propagator* theTmpPropagator = &*thePropagator->clone();
604 
605  if (theTSOS.globalPosition().y() <0 ) theTmpPropagator->setPropagationDirection(oppositeToMomentum);
606  else theTmpPropagator->setPropagationDirection(alongMomentum);
607 
610  const Cylinder::CylinderPointer cyl = Cylinder::build(pos0, rot0, theRadius);
611  TrajectoryStateOnSurface tsosAtCyl = theTmpPropagator->propagate(*theTSOS.freeState(), *cyl);
612  double accept = false;
613  if ( tsosAtCyl.isValid() ) {
614  if (fabs(tsosAtCyl.globalPosition().z())<theMaxZ ) {
617  const Cylinder::CylinderPointer cyl2 = Cylinder::build(pos02, rot02, theRadius -10);
618  TrajectoryStateOnSurface tsosAtCyl2 = theTmpPropagator->propagate(*tsosAtCyl.freeState(), *cyl2);
619  if ( tsosAtCyl2.isValid() ) {
622  const Cylinder::CylinderPointer cyl3 = Cylinder::build(pos03, rot03, theRadius );
623  TrajectoryStateOnSurface tsosAtCyl3 = theTmpPropagator->propagate(*tsosAtCyl2.freeState(), *cyl3);
624  if ( tsosAtCyl3.isValid() ) {
625  accept=true;
626  }
627  }
628 
629  }
630  }
631  delete theTmpPropagator;
632  //muon propagated to the barrel cylinder
633  return accept;
634 
635 }
TkRotation< Scalar > RotationType
Definition: Definitions.h:29
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:26
Point3DBase< Scalar, GlobalTag > PositionType
Definition: Definitions.h:30
FreeTrajectoryState const * freeState(bool withErrors=true) const
T z() const
Definition: PV3DBase.h:64
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
edm::ESHandle< Propagator > thePropagator
virtual void setPropagationDirection(PropagationDirection dir) const
Definition: Propagator.h:134

Member Data Documentation

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

Definition at line 115 of file TrackEfficiencyMonitor.h.

Referenced by analyze().

edm::ParameterSet TrackEfficiencyMonitor::conf_
private

Definition at line 68 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::deltaX
private

Definition at line 102 of file TrackEfficiencyMonitor.h.

Referenced by beginJob(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::deltaY
private

Definition at line 103 of file TrackEfficiencyMonitor.h.

Referenced by beginJob(), and testTrackerTracks().

DQMStore* TrackEfficiencyMonitor::dqmStore_
private

Definition at line 67 of file TrackEfficiencyMonitor.h.

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

int TrackEfficiencyMonitor::failedToPropagate
private

Definition at line 82 of file TrackEfficiencyMonitor.h.

Referenced by testSTATracks(), and testTrackerTracks().

bool TrackEfficiencyMonitor::findDetLayer
private

Definition at line 84 of file TrackEfficiencyMonitor.h.

Referenced by compatibleLayers(), and findNextLayer().

std::string TrackEfficiencyMonitor::histname
private

Definition at line 65 of file TrackEfficiencyMonitor.h.

Referenced by beginJob().

bool TrackEfficiencyMonitor::isBFieldOff_
private

Definition at line 72 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

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

Definition at line 117 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and compatibleLayers().

MonitorElement* TrackEfficiencyMonitor::muonCompatibleLayers
private

Definition at line 92 of file TrackEfficiencyMonitor.h.

Referenced by beginJob(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::muonD0
private

Definition at line 91 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonEta
private

Definition at line 89 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonPhi
private

Definition at line 90 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonX
private

Definition at line 86 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonY
private

Definition at line 87 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonZ
private

Definition at line 88 of file TrackEfficiencyMonitor.h.

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

int TrackEfficiencyMonitor::nCompatibleLayers
private

Definition at line 83 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::signDeltaX
private

Definition at line 104 of file TrackEfficiencyMonitor.h.

Referenced by beginJob(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::signDeltaY
private

Definition at line 105 of file TrackEfficiencyMonitor.h.

Referenced by beginJob(), and testTrackerTracks().

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

Definition at line 110 of file TrackEfficiencyMonitor.h.

double TrackEfficiencyMonitor::theMaxZ_
private

Definition at line 71 of file TrackEfficiencyMonitor.h.

Referenced by testTrackerTracks(), and TrackEfficiencyMonitor().

MuonServiceProxy* TrackEfficiencyMonitor::theMuonServiceProxy
private

Definition at line 108 of file TrackEfficiencyMonitor.h.

const DirectTrackerNavigation* TrackEfficiencyMonitor::theNavigation
private

Definition at line 107 of file TrackEfficiencyMonitor.h.

Referenced by analyze().

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

Definition at line 112 of file TrackEfficiencyMonitor.h.

double TrackEfficiencyMonitor::theRadius_
private

Definition at line 70 of file TrackEfficiencyMonitor.h.

Referenced by testTrackerTracks(), and TrackEfficiencyMonitor().

edm::InputTag TrackEfficiencyMonitor::theSTATracksLabel_
private

Definition at line 77 of file TrackEfficiencyMonitor.h.

Referenced by TrackEfficiencyMonitor().

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

Definition at line 79 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

edm::InputTag TrackEfficiencyMonitor::theTKTracksLabel_
private

Definition at line 76 of file TrackEfficiencyMonitor.h.

Referenced by TrackEfficiencyMonitor().

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

Definition at line 78 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

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

Definition at line 114 of file TrackEfficiencyMonitor.h.

Referenced by analyze().

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

Definition at line 113 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackCompatibleLayers
private

Definition at line 100 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackD0
private

Definition at line 99 of file TrackEfficiencyMonitor.h.

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

bool TrackEfficiencyMonitor::trackEfficiency_
private

Definition at line 73 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

MonitorElement* TrackEfficiencyMonitor::trackEta
private

Definition at line 97 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackPhi
private

Definition at line 98 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackX
private

Definition at line 94 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackY
private

Definition at line 95 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackZ
private

Definition at line 96 of file TrackEfficiencyMonitor.h.

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