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:
DQMEDAnalyzer edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

enum  SemiCylinder { Up, Down }
 
typedef reco::Track Track
 
typedef reco::TrackCollection TrackCollection
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

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 DQMEDAnalyzer
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
 DQMEDAnalyzer (DQMEDAnalyzer const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer &&)=delete
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) override
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDAnalyzer () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

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< 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
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- 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)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Monitoring source to measure the track efficiency

Definition at line 43 of file TrackEfficiencyMonitor.h.

Member Typedef Documentation

Definition at line 45 of file TrackEfficiencyMonitor.h.

Definition at line 46 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_, 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 
61  theTKTracksToken_ = consumes<reco::TrackCollection>(theTKTracksLabel_);
62  theSTATracksToken_ = consumes<reco::TrackCollection>(theSTATracksLabel_);
63 
64  conf_ = iConfig;
65 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::TrackCollection > theTKTracksToken_
edm::EDGetTokenT< reco::TrackCollection > theSTATracksToken_
TrackEfficiencyMonitor::~TrackEfficiencyMonitor ( )
override

Definition at line 70 of file TrackEfficiencyMonitor.cc.

72 {}

Member Function Documentation

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

Definition at line 265 of file TrackEfficiencyMonitor.cc.

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

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

Reimplemented from edm::one::EDProducerBase.

Definition at line 256 of file TrackEfficiencyMonitor.cc.

258 {
259 
260 }
void TrackEfficiencyMonitor::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 75 of file TrackEfficiencyMonitor.cc.

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

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

644 {
645  //---------------------------------------------------
646  // check the number of compatible layers
647  //---------------------------------------------------
648 
649  std::vector< const BarrelDetLayer*> barrelTOBLayers = measurementTrackerHandle->geometricSearchTracker()->tobLayers() ;
650 
651  unsigned int layers = 0;
652  for ( unsigned int k=0 ; k < barrelTOBLayers.size() ; k++ )
653  {
654  const DetLayer* firstLay = barrelTOBLayers[barrelTOBLayers.size() -1 - k];
655 
656  //Propagator* theTmpPropagator = new SteppingHelixPropagator(&*bField,anyDirection);
657 
658 
659 
660  Propagator* theTmpPropagator = &*thePropagator->clone();
661  theTmpPropagator->setPropagationDirection(alongMomentum);
662 
663  TrajectoryStateOnSurface startTSOS = theTmpPropagator->propagate(*theTSOS.freeState(),firstLay->surface());
664 
665  std::vector< const DetLayer*> trackCompatibleLayers;
666 
667  findDetLayer = true;
668  bool isUpMuon = false;
669  bool firstdtep = true;
670 
671  if(startTSOS.isValid())
672  {
673 
674  if(firstdtep) layers++;
675 
676  int nwhile = 0;
677 
678  //for other compatible layers
679  while ( startTSOS.isValid() && firstLay && findDetLayer)
680  {
681 
682  if(firstdtep && startTSOS.globalPosition().y()> 0) isUpMuon = true;
683 
684  if(firstdtep){
685  std::vector< const DetLayer*> firstCompatibleLayers;
686  firstCompatibleLayers.push_back(firstLay);
687  std::pair<TrajectoryStateOnSurface, const DetLayer* > nextLayer = findNextLayer(theTSOS, firstCompatibleLayers, isUpMuon );
688  firstdtep = false;
689  }
690  else{
691  trackCompatibleLayers = navigationSchool.nextLayers(*firstLay, *(startTSOS.freeState()),alongMomentum);
692  if (!trackCompatibleLayers.empty() ){
693  std::pair<TrajectoryStateOnSurface, const DetLayer* > nextLayer = findNextLayer(startTSOS, trackCompatibleLayers, isUpMuon );
694  if (firstLay != nextLayer.second ){
695  firstLay = nextLayer.second;
696  startTSOS = nextLayer.first;
697  layers++;
698  }
699  else firstLay=nullptr;
700  }
701  }
702  nwhile++;
703  if(nwhile > 100) break;
704 
705  }
706  delete theTmpPropagator;
707  break;
708  }
709  delete theTmpPropagator;
710  }
711  return layers;
712 
713 }
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  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 336 of file TrackEfficiencyMonitor.cc.

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

338 {
339  bool outputMEsInRootFile = conf_.getParameter<bool>("OutputMEsInRootFile");
341  if(outputMEsInRootFile){
343  dqmStore_->save(outputFileName);
344  }
345 
346  //if ( theNavigation ) delete theNavigation;
347 
348 }
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, const uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2555
void showDirStructure() const
Definition: DQMStore.cc:3428
std::pair< TrajectoryStateOnSurface, const DetLayer * > TrackEfficiencyMonitor::findNextLayer ( TrajectoryStateOnSurface  startTSOS,
const std::vector< const DetLayer * > &  trackCompatibleLayers,
bool  isUpMuon 
)

Definition at line 719 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().

721 {
722 
723  //Propagator* theTmpPropagator = new SteppingHelixPropagator(&*bField,anyDirection);
724 
725 
726  Propagator* theTmpPropagator = &*thePropagator->clone();
727  theTmpPropagator->setPropagationDirection(alongMomentum);
728 
729 
730  std::vector<const DetLayer*>::const_iterator itl;
731  findDetLayer = false;
732  for (itl=trackCompatibleLayers.begin();itl!=trackCompatibleLayers.end();++itl) {
733  TrajectoryStateOnSurface tsos = theTmpPropagator->propagate(*(sTSOS.freeState()),(**itl).surface());
734  if (tsos.isValid())
735  {
736  sTSOS = tsos;
737  findDetLayer = true;
738 
739  break;
740  }
741  }
742  std::pair<TrajectoryStateOnSurface, const DetLayer* > blabla;
743  blabla.first = sTSOS;
744  blabla.second = &**itl;
745  delete theTmpPropagator;
746  return blabla;
747 }
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 493 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().

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

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

595 {
596 
597  //---------------------------------------------------
598  // check if the muon is in the tracker acceptance
599  // check the compatibility with a cylinder of radius "theRadius"
600  //---------------------------------------------------
601 
602  //Propagator* theTmpPropagator = new SteppingHelixPropagator(&*bField,anyDirection);
603 
604  //Propagator* theTmpPropagator = &*thePropagator;
605  Propagator* theTmpPropagator = &*thePropagator->clone();
606 
607  if (theTSOS.globalPosition().y() <0 ) theTmpPropagator->setPropagationDirection(oppositeToMomentum);
608  else theTmpPropagator->setPropagationDirection(alongMomentum);
609 
612  const Cylinder::CylinderPointer cyl = Cylinder::build(pos0, rot0, theRadius);
613  TrajectoryStateOnSurface tsosAtCyl = theTmpPropagator->propagate(*theTSOS.freeState(), *cyl);
614  double accept = false;
615  if ( tsosAtCyl.isValid() ) {
616  if (fabs(tsosAtCyl.globalPosition().z())<theMaxZ ) {
619  const Cylinder::CylinderPointer cyl2 = Cylinder::build(pos02, rot02, theRadius -10);
620  TrajectoryStateOnSurface tsosAtCyl2 = theTmpPropagator->propagate(*tsosAtCyl.freeState(), *cyl2);
621  if ( tsosAtCyl2.isValid() ) {
624  const Cylinder::CylinderPointer cyl3 = Cylinder::build(pos03, rot03, theRadius );
625  TrajectoryStateOnSurface tsosAtCyl3 = theTmpPropagator->propagate(*tsosAtCyl2.freeState(), *cyl3);
626  if ( tsosAtCyl3.isValid() ) {
627  accept=true;
628  }
629  }
630 
631  }
632  }
633  delete theTmpPropagator;
634  //muon propagated to the barrel cylinder
635  return accept;
636 
637 }
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 120 of file TrackEfficiencyMonitor.h.

Referenced by analyze().

edm::ParameterSet TrackEfficiencyMonitor::conf_
private

Definition at line 73 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::deltaX
private

Definition at line 107 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::deltaY
private

Definition at line 108 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

DQMStore* TrackEfficiencyMonitor::dqmStore_
private

Definition at line 72 of file TrackEfficiencyMonitor.h.

Referenced by endJob(), and TrackEfficiencyMonitor().

int TrackEfficiencyMonitor::failedToPropagate
private

Definition at line 87 of file TrackEfficiencyMonitor.h.

Referenced by testSTATracks(), and testTrackerTracks().

bool TrackEfficiencyMonitor::findDetLayer
private

Definition at line 89 of file TrackEfficiencyMonitor.h.

Referenced by compatibleLayers(), and findNextLayer().

std::string TrackEfficiencyMonitor::histname
private

Definition at line 70 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms().

bool TrackEfficiencyMonitor::isBFieldOff_
private

Definition at line 77 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

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

Definition at line 122 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and compatibleLayers().

MonitorElement* TrackEfficiencyMonitor::muonCompatibleLayers
private

Definition at line 97 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::muonD0
private

Definition at line 96 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonEta
private

Definition at line 94 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonPhi
private

Definition at line 95 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonX
private

Definition at line 91 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonY
private

Definition at line 92 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::muonZ
private

Definition at line 93 of file TrackEfficiencyMonitor.h.

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

int TrackEfficiencyMonitor::nCompatibleLayers
private

Definition at line 88 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::signDeltaX
private

Definition at line 109 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

MonitorElement* TrackEfficiencyMonitor::signDeltaY
private

Definition at line 110 of file TrackEfficiencyMonitor.h.

Referenced by bookHistograms(), and testTrackerTracks().

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

Definition at line 115 of file TrackEfficiencyMonitor.h.

double TrackEfficiencyMonitor::theMaxZ_
private

Definition at line 76 of file TrackEfficiencyMonitor.h.

Referenced by testTrackerTracks(), and TrackEfficiencyMonitor().

MuonServiceProxy* TrackEfficiencyMonitor::theMuonServiceProxy
private

Definition at line 113 of file TrackEfficiencyMonitor.h.

const DirectTrackerNavigation* TrackEfficiencyMonitor::theNavigation
private

Definition at line 112 of file TrackEfficiencyMonitor.h.

Referenced by analyze().

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

Definition at line 117 of file TrackEfficiencyMonitor.h.

double TrackEfficiencyMonitor::theRadius_
private

Definition at line 75 of file TrackEfficiencyMonitor.h.

Referenced by testTrackerTracks(), and TrackEfficiencyMonitor().

edm::InputTag TrackEfficiencyMonitor::theSTATracksLabel_
private

Definition at line 82 of file TrackEfficiencyMonitor.h.

Referenced by TrackEfficiencyMonitor().

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

Definition at line 84 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

edm::InputTag TrackEfficiencyMonitor::theTKTracksLabel_
private

Definition at line 81 of file TrackEfficiencyMonitor.h.

Referenced by TrackEfficiencyMonitor().

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

Definition at line 83 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

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

Definition at line 119 of file TrackEfficiencyMonitor.h.

Referenced by analyze().

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

Definition at line 118 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackCompatibleLayers
private

Definition at line 105 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackD0
private

Definition at line 104 of file TrackEfficiencyMonitor.h.

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

bool TrackEfficiencyMonitor::trackEfficiency_
private

Definition at line 78 of file TrackEfficiencyMonitor.h.

Referenced by analyze(), and TrackEfficiencyMonitor().

MonitorElement* TrackEfficiencyMonitor::trackEta
private

Definition at line 102 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackPhi
private

Definition at line 103 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackX
private

Definition at line 99 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackY
private

Definition at line 100 of file TrackEfficiencyMonitor.h.

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

MonitorElement* TrackEfficiencyMonitor::trackZ
private

Definition at line 101 of file TrackEfficiencyMonitor.h.

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