CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
DTChamberEfficiency Class Reference

#include <DTChamberEfficiency.h>

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

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &eventSetup) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
 DTChamberEfficiency (const edm::ParameterSet &pset)
 
 ~DTChamberEfficiency () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Protected Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Member Functions

bool chamberSelection (const DetId &idDetLay, reco::TransientTrack &trans_track) const
 
std::vector< const DetLayer * > compatibleLayers (const NavigationSchool &navigationSchool, const DetLayer *initialLayer, const FreeTrajectoryState &fts, PropagationDirection propDir)
 
edm::ESHandle< Propagatorpropagator () const
 
MeasurementContainer segQualityCut (const MeasurementContainer &seg_list) const
 

Private Attributes

bool debug
 
std::vector< std::vector< MonitorElement * > > histosPerW
 
edm::InputTag labelRPCRecHits
 
edm::InputTag thecscSegments
 
edm::InputTag thedt4DSegments
 
Chi2MeasurementEstimatortheEstimator
 
double theMaxChi2
 
MuonDetLayerMeasurementstheMeasurementExtractor
 
int theMinNrec
 
std::string theNavigationType
 
double theNSigma
 
MuonServiceProxytheService
 
edm::InputTag theTracksLabel_
 
edm::EDGetTokenT< reco::TrackCollectiontheTracksToken_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Description:

This class provides the histograms for the calculation of the efficiency of muons reconstruction in the DTs. It is applicable both in presence or absence of a magnetic field. Histos are 2D Sector vs Chamber plots for each wheel

Author
: Mario Pelliccioni - INFN Torino pelli.nosp@m.cci@.nosp@m.cern..nosp@m.ch $date : 05/12/2008 16:51:04 CET $

Modification:

Definition at line 49 of file DTChamberEfficiency.h.

Constructor & Destructor Documentation

◆ DTChamberEfficiency()

DTChamberEfficiency::DTChamberEfficiency ( const edm::ParameterSet pset)

Definition at line 49 of file DTChamberEfficiency.cc.

References Chi2MeasurementEstimator_cfi::Chi2MeasurementEstimator, debug, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HLT_2022v14_cff::InputTag, MuonServiceProxy_cff::MuonServiceProxy, dtChamberEfficiency_cfi::theMaxChi2, dtChamberEfficiency_cfi::theMinNrec, and createJobs::theNSigma.

49  {
50  // Get the debug parameter for verbose output
51  debug = pSet.getUntrackedParameter<bool>("debug", false);
52 
53  LogVerbatim("DTDQM|DTMonitorModule|DTChamberEfficiency") << "DTChamberEfficiency: constructor called";
54 
55  // service parameters
56  ParameterSet serviceParameters = pSet.getParameter<ParameterSet>("ServiceParameters");
57  theService = new MuonServiceProxy(serviceParameters, consumesCollector());
58 
59  theTracksLabel_ = pSet.getUntrackedParameter<InputTag>("TrackCollection");
60  theTracksToken_ = consumes<reco::TrackCollection>(theTracksLabel_);
61 
62  theMaxChi2 = static_cast<unsigned int>(pSet.getParameter<double>("theMaxChi2"));
63  theNSigma = pSet.getParameter<double>("theNSigma");
64  theMinNrec = static_cast<int>(pSet.getParameter<double>("theMinNrec"));
65 
66  labelRPCRecHits = pSet.getUntrackedParameter<InputTag>("theRPCRecHits");
67 
68  thedt4DSegments = pSet.getUntrackedParameter<InputTag>("dt4DSegments");
69  thecscSegments = pSet.getUntrackedParameter<InputTag>("cscSegments");
70 
71  edm::ConsumesCollector iC = consumesCollector();
72 
74  thedt4DSegments, thecscSegments, labelRPCRecHits, InputTag(), InputTag(), iC, true, false, false, false);
75 
76  theNavigationType = pSet.getParameter<string>("NavigationType");
77 
79 }
MuonDetLayerMeasurements * theMeasurementExtractor
Log< level::Info, true > LogVerbatim
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MuonServiceProxy * theService
edm::InputTag thecscSegments
edm::InputTag labelRPCRecHits
edm::EDGetTokenT< reco::TrackCollection > theTracksToken_
edm::InputTag thedt4DSegments
edm::InputTag theTracksLabel_
Chi2MeasurementEstimator * theEstimator

◆ ~DTChamberEfficiency()

DTChamberEfficiency::~DTChamberEfficiency ( )
override

Definition at line 81 of file DTChamberEfficiency.cc.

References LogTrace.

81  {
82  LogTrace("DTDQM|DTMonitorModule|DTChamberEfficiency") << "DTChamberEfficiency: destructor called";
83 
84  // free memory
85  delete theService;
87  delete theEstimator;
88 }
MuonDetLayerMeasurements * theMeasurementExtractor
MuonServiceProxy * theService
#define LogTrace(id)
Chi2MeasurementEstimator * theEstimator

Member Function Documentation

◆ analyze()

void DTChamberEfficiency::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 119 of file DTChamberEfficiency.cc.

References alongMomentum, debug, DetId::det(), MuonSubdetId::DT, edmPickEvents::event, options_cfi::eventSetup, HcalObjRepresent::Fill(), TrajectoryStateOnSurface::freeState(), combine::histos, mps_fire::i, reco::Track::innerDetId(), reco::TransientTrack::innermostMeasurementState(), createfilelist::int, TrajectoryStateOnSurface::isValid(), LogTrace, HLT_2022v14_cff::magneticField, DetId::Muon, oppositeToMomentum, TrackCandidateProducer_cfi::propagator, DetId::rawId(), reco::TransientTrack::recHitsBegin(), reco::TransientTrack::recHitsEnd(), reco::TransientTrack::recHitsSize(), DTChamberId::sector(), DTChamberId::station(), DetId::subdetId(), TrajectoryStateOnSurface::surface(), dtChamberEfficiency_cfi::theMinNrec, reco::TransientTrack::track(), HLT_2022v14_cff::track, tracks, and DTChamberId::wheel().

119  {
120  LogTrace("DTDQM|DTMonitorModule|DTChamberEfficiency")
121  << "--- [DTChamberEfficiency] Event analysed #Run: " << event.id().run() << " #Event: " << event.id().event()
122  << endl;
123 
124  theService->update(eventSetup);
126 
127  //Read tracks from event
129  event.getByToken(theTracksToken_, tracks);
130 
131  if (tracks.isValid()) { // check the validity of the collection
132 
133  const edm::ESHandle<GlobalTrackingGeometry>& globalTrackingGeometry = theService->trackingGeometry();
134  const MagneticField* magneticField = theService->magneticField().product();
135 
136  //loop over the muons
137  for (reco::TrackCollection::const_iterator track = tracks->begin(); track != tracks->end(); ++track) {
138  reco::TransientTrack trans_track(*track, magneticField, globalTrackingGeometry);
139  const int recHitsize = (int)trans_track.recHitsSize();
140  if (recHitsize < theMinNrec)
141  continue;
142 
143  // printout the DT rechits used by the track
144  if (debug) {
145  LogTrace("DTDQM|DTMonitorModule|DTChamberEfficiency") << "--- New track" << endl;
146  set<DTChamberId> chAlrUsed;
147  for (trackingRecHit_iterator rHit = trans_track.recHitsBegin(); rHit != trans_track.recHitsEnd(); ++rHit) {
148  DetId rHitid = (*rHit)->geographicalId();
149  if (!(rHitid.det() == DetId::Muon && rHitid.subdetId() == MuonSubdetId::DT))
150  continue;
151  DTChamberId wId(rHitid.rawId());
152  if (chAlrUsed.find(wId) != chAlrUsed.end())
153  continue;
154  chAlrUsed.insert(wId);
155  LogTrace("DTDQM|DTMonitorModule|DTChamberEfficiency") << " " << wId << endl;
156  }
157  }
158 
159  // Get the layer on which the seed relies
160  DetId id = trans_track.track().innerDetId();
161  const DetLayer* initialLayer = theService->detLayerGeometry()->idToLayer(id);
162 
163  TrajectoryStateOnSurface init_fs = trans_track.innermostMeasurementState();
164  const FreeTrajectoryState* init_fs_free = init_fs.freeState();
165 
166  //get the list of compatible layers
167  vector<const DetLayer*> layer_list =
168  compatibleLayers(*theService->muonNavigationSchool(), initialLayer, *init_fs_free, alongMomentum);
169  vector<const DetLayer*> layer_list_2 =
170  compatibleLayers(*theService->muonNavigationSchool(), initialLayer, *init_fs_free, oppositeToMomentum);
171 
172  layer_list.insert(layer_list.end(), layer_list_2.begin(), layer_list_2.end());
173 
174  set<DTChamberId> alreadyCheckedCh;
175 
176  //loop over the list of compatible layers
177  for (int i = 0; i < (int)layer_list.size(); i++) {
178  //propagate the track to the i-th layer
179  TrajectoryStateOnSurface tsos = propagator()->propagate(init_fs, layer_list.at(i)->surface());
180  if (!tsos.isValid())
181  continue;
182 
183  //determine the chambers kinematically compatible with the track on the i-th layer
184  vector<DetWithState> dss = layer_list.at(i)->compatibleDets(tsos, *propagator(), *theEstimator);
185 
186  if (dss.empty())
187  continue;
188 
189  // get the first det (it's the most compatible)
190  const DetWithState detWithState = dss.front();
191  const DetId idDetLay = detWithState.first->geographicalId();
192 
193  // check if this is a DT and the track has the needed quality
194  if (!chamberSelection(idDetLay, trans_track))
195  continue;
196 
197  DTChamberId DTid = (DTChamberId)idDetLay;
198 
199  // check if the chamber has already been counted
200  if (alreadyCheckedCh.find(DTid) != alreadyCheckedCh.end())
201  continue;
202  alreadyCheckedCh.insert(DTid);
203 
204  // get the compatible measurements
205  MeasurementContainer detMeasurements_initial = theMeasurementExtractor->measurements(
206  layer_list.at(i), detWithState.first, detWithState.second, *theEstimator, event);
207  LogTrace("DTDQM|DTMonitorModule|DTChamberEfficiency")
208  << " chamber: " << DTid << " has: " << detMeasurements_initial.size() << " comp. meas." << endl;
209 
210  //we want to be more picky about the quality of the segments:
211  //exclude the segments with less than 12 hits
212  MeasurementContainer detMeasurements = segQualityCut(detMeasurements_initial);
213 
214  // get the histos for this chamber
215  vector<MonitorElement*> histos = histosPerW[DTid.wheel() + 2];
216  // fill them
217  if (!detMeasurements_initial.empty())
218  histos[0]->Fill(DTid.sector(), DTid.station(), 1.);
219  if (!detMeasurements.empty())
220  histos[1]->Fill(DTid.sector(), DTid.station(), 1.);
221  histos[2]->Fill(DTid.sector(), DTid.station(), 1.);
222  }
223  }
224  } else {
225  LogInfo("DTDQM|DTMonitorModule|DTChamberEfficiency")
226  << "[DTChamberEfficiency] Collection: " << theTracksLabel_ << " is not valid!" << endl;
227  }
228  return;
229 }
MuonDetLayerMeasurements * theMeasurementExtractor
int station() const
Return the station number.
Definition: DTChamberId.h:42
MuonServiceProxy * theService
std::vector< std::vector< MonitorElement * > > histosPerW
bool chamberSelection(const DetId &idDetLay, reco::TransientTrack &trans_track) const
MeasurementContainer segQualityCut(const MeasurementContainer &seg_list) const
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
edm::EDGetTokenT< reco::TrackCollection > theTracksToken_
#define LogTrace(id)
edm::ESHandle< Propagator > propagator() const
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
std::vector< const DetLayer * > compatibleLayers(const NavigationSchool &navigationSchool, const DetLayer *initialLayer, const FreeTrajectoryState &fts, PropagationDirection propDir)
MeasurementContainer measurements(const DetLayer *layer, const GeomDet *det, const TrajectoryStateOnSurface &stateOnDet, const MeasurementEstimator &est, const edm::Event &iEvent)
Log< level::Info, false > LogInfo
Definition: DetId.h:17
auto const & tracks
cannot be loose
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
edm::InputTag theTracksLabel_
std::vector< TrajectoryMeasurement > MeasurementContainer
histos
Definition: combine.py:4
void setEvent(const edm::Event &)
set event
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
int sector() const
Definition: DTChamberId.h:49
FreeTrajectoryState const * freeState(bool withErrors=true) const
Chi2MeasurementEstimator * theEstimator
static constexpr int DT
Definition: MuonSubdetId.h:11
Definition: event.py:1

◆ bookHistograms()

void DTChamberEfficiency::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &   
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 92 of file DTChamberEfficiency.cc.

References dqm::implementation::IBooker::book2D(), combine::histos, LogTrace, dqm::implementation::NavigatorBase::setCurrentFolder(), and makeMuonMisalignmentScenario::wheel.

92  {
93  LogTrace("DTDQM|DTMonitorModule|DTChamberEfficiency") << "DTChamberEfficiency: booking histos";
94 
95  // Create the monitor elements
96  ibooker.setCurrentFolder("DT/05-ChamberEff/Task");
97 
98  for (int wheel = -2; wheel <= 2; wheel++) {
99  vector<MonitorElement*> histos;
100 
101  stringstream wheel_str;
102  wheel_str << wheel;
103 
104  histos.push_back(ibooker.book2D(
105  "hCountSectVsChamb_All_W" + wheel_str.str(), "Countings for wheel " + wheel_str.str(), 14, 1., 15., 4, 1., 5.));
106 
107  histos.push_back(ibooker.book2D(
108  "hCountSectVsChamb_Qual_W" + wheel_str.str(), "Countings for wheel " + wheel_str.str(), 14, 1., 15., 4, 1., 5.));
109 
110  histos.push_back(ibooker.book2D(
111  "hExtrapSectVsChamb_W" + wheel_str.str(), "Extrapolations for wheel " + wheel_str.str(), 14, 1., 15., 4, 1., 5.));
112 
113  histosPerW.push_back(histos);
114  }
115 
116  return;
117 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
std::vector< std::vector< MonitorElement * > > histosPerW
#define LogTrace(id)
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:212
histos
Definition: combine.py:4

◆ chamberSelection()

bool DTChamberEfficiency::chamberSelection ( const DetId idDetLay,
reco::TransientTrack trans_track 
) const
private

Definition at line 231 of file DTChamberEfficiency.cc.

References DetId::det(), MuonSubdetId::DT, DetId::Muon, reco::TransientTrack::recHit(), reco::TransientTrack::recHitsSize(), and DetId::subdetId().

231  {
232  //check that we have a muon and that is a DT detector
233  if (!(idDetLay.det() == DetId::Muon && idDetLay.subdetId() == MuonSubdetId::DT))
234  return false;
235 
236  if (trans_track.recHitsSize() == 2)
237  if (trans_track.recHit(0)->geographicalId() == idDetLay || trans_track.recHit(1)->geographicalId() == idDetLay)
238  return false;
239 
240  return true;
241 }
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
TrackingRecHitRef recHit(size_t i) const
get n-th recHit
size_t recHitsSize() const
number of RecHits
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
static constexpr int DT
Definition: MuonSubdetId.h:11

◆ compatibleLayers()

vector< const DetLayer * > DTChamberEfficiency::compatibleLayers ( const NavigationSchool navigationSchool,
const DetLayer initialLayer,
const FreeTrajectoryState fts,
PropagationDirection  propDir 
)
private

Definition at line 270 of file DTChamberEfficiency.cc.

References DirectMuonNavigation::compatibleLayers(), and NavigationSchool::compatibleLayers().

273  {
274  vector<const DetLayer*> detLayers;
275 
276  if (theNavigationType == "Standard") {
277  // ask for compatible layers
278  detLayers = navigationSchool.compatibleLayers(*initialLayer, fts, propDir);
279  // I have to fit by hand the first layer until the seedTSOS is defined on the first rechit layer
280  // In fact the first layer is not returned by initialLayer->compatibleLayers.
281 
282  detLayers.insert(detLayers.begin(), initialLayer);
283 
284  } else if (theNavigationType == "Direct") {
285  DirectMuonNavigation navigation(ESHandle<MuonDetLayerGeometry>(&*theService->detLayerGeometry()));
286  detLayers = navigation.compatibleLayers(fts, propDir);
287  } else
288  LogError("DTDQM|DTMonitorModule|DTChamberEfficiency") << "No Properly Navigation Selected!!" << endl;
289 
290  return detLayers;
291 }
MuonServiceProxy * theService
Log< level::Error, false > LogError
std::vector< const DetLayer * > compatibleLayers(const DetLayer &detLayer, Args &&... args) const
Returns all layers compatible.

◆ dqmBeginRun()

void DTChamberEfficiency::dqmBeginRun ( const edm::Run ,
const edm::EventSetup  
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 90 of file DTChamberEfficiency.cc.

90 {}

◆ propagator()

ESHandle< Propagator > DTChamberEfficiency::propagator ( ) const
inlineprivate

Definition at line 293 of file DTChamberEfficiency.cc.

293  {
294  return theService->propagator("SteppingHelixPropagatorAny");
295 }
MuonServiceProxy * theService

◆ segQualityCut()

MeasurementContainer DTChamberEfficiency::segQualityCut ( const MeasurementContainer seg_list) const
private

Definition at line 243 of file DTChamberEfficiency.cc.

References createfilelist::int, mps_fire::result, and DTChamberId::station().

243  {
245 
246  for (MeasurementContainer::const_iterator mescont_Itr = seg_list.begin(); mescont_Itr != seg_list.end();
247  ++mescont_Itr) {
248  //get the rechits of the segment
249  TransientTrackingRecHit::ConstRecHitContainer recHit_list = mescont_Itr->recHit()->transientHits();
250 
251  //loop over the rechits and get the number of hits
252  int nhit_seg(0);
253  for (TransientTrackingRecHit::ConstRecHitContainer::const_iterator recList_Itr = recHit_list.begin();
254  recList_Itr != recHit_list.end();
255  ++recList_Itr) {
256  nhit_seg += (int)(*recList_Itr)->transientHits().size();
257  }
258 
259  DTChamberId tmpId = (DTChamberId)mescont_Itr->recHit()->hit()->geographicalId();
260 
261  if (tmpId.station() < 4 && nhit_seg >= 12)
262  result.push_back(*mescont_Itr);
263  if (tmpId.station() == 4 && nhit_seg >= 8)
264  result.push_back(*mescont_Itr);
265  }
266 
267  return result;
268 }
int station() const
Return the station number.
Definition: DTChamberId.h:42
std::vector< ConstRecHitPointer > ConstRecHitContainer
std::vector< TrajectoryMeasurement > MeasurementContainer

Member Data Documentation

◆ debug

bool DTChamberEfficiency::debug
private

◆ histosPerW

std::vector<std::vector<MonitorElement*> > DTChamberEfficiency::histosPerW
private

Definition at line 96 of file DTChamberEfficiency.h.

◆ labelRPCRecHits

edm::InputTag DTChamberEfficiency::labelRPCRecHits
private

Definition at line 82 of file DTChamberEfficiency.h.

◆ thecscSegments

edm::InputTag DTChamberEfficiency::thecscSegments
private

Definition at line 84 of file DTChamberEfficiency.h.

◆ thedt4DSegments

edm::InputTag DTChamberEfficiency::thedt4DSegments
private

Definition at line 83 of file DTChamberEfficiency.h.

◆ theEstimator

Chi2MeasurementEstimator* DTChamberEfficiency::theEstimator
private

Definition at line 94 of file DTChamberEfficiency.h.

◆ theMaxChi2

double DTChamberEfficiency::theMaxChi2
private

Definition at line 86 of file DTChamberEfficiency.h.

◆ theMeasurementExtractor

MuonDetLayerMeasurements* DTChamberEfficiency::theMeasurementExtractor
private

Definition at line 93 of file DTChamberEfficiency.h.

◆ theMinNrec

int DTChamberEfficiency::theMinNrec
private

Definition at line 88 of file DTChamberEfficiency.h.

◆ theNavigationType

std::string DTChamberEfficiency::theNavigationType
private

Definition at line 90 of file DTChamberEfficiency.h.

◆ theNSigma

double DTChamberEfficiency::theNSigma
private

Definition at line 87 of file DTChamberEfficiency.h.

◆ theService

MuonServiceProxy* DTChamberEfficiency::theService
private

Definition at line 92 of file DTChamberEfficiency.h.

◆ theTracksLabel_

edm::InputTag DTChamberEfficiency::theTracksLabel_
private

Definition at line 79 of file DTChamberEfficiency.h.

◆ theTracksToken_

edm::EDGetTokenT<reco::TrackCollection> DTChamberEfficiency::theTracksToken_
private

Definition at line 80 of file DTChamberEfficiency.h.