CMS 3D CMS Logo

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

#include <DTSegment2DSLPhiQuality.h>

Inheritance diagram for DTSegment2DSLPhiQuality:
DQMGlobalEDAnalyzer< dtsegment2dsl::Histograms > DQMGlobalEDAnalyzerBase< dtsegment2dsl::Histograms, Args... > edm::global::EDProducer< edm::RunCache< dtsegment2dsl::Histograms >, edm::EndRunProducer, edm::Accumulator, Args... > edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 DTSegment2DSLPhiQuality (const edm::ParameterSet &pset)
 Constructor. More...
 
- Public Member Functions inherited from DQMGlobalEDAnalyzer< dtsegment2dsl::Histograms >
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &, dtsegment2dsl::Histograms const &) const
 
void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup) const final
 
- Public Member Functions inherited from DQMGlobalEDAnalyzerBase< dtsegment2dsl::Histograms, Args... >
void accumulate (edm::StreamID id, edm::Event const &event, edm::EventSetup const &setup) const final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &, dtsegment2dsl::Histograms &) const
 
 DQMGlobalEDAnalyzerBase ()
 
std::shared_ptr< dtsegment2dsl::HistogramsglobalBeginRun (edm::Run const &run, edm::EventSetup const &setup) const final
 
void globalEndRun (edm::Run const &, edm::EventSetup const &) const final
 
- Public Member Functions inherited from edm::global::EDProducer< edm::RunCache< dtsegment2dsl::Histograms >, edm::EndRunProducer, edm::Accumulator, Args... >
 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
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () 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
 
std::vector< bool > const & recordProvenanceList () 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)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) 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 &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
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::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, dtsegment2dsl::Histograms &) const override
 Book the DQM plots. More...
 
void dqmAnalyze (edm::Event const &, edm::EventSetup const &, dtsegment2dsl::Histograms const &) const override
 Perform the real analysis. More...
 

Private Attributes

bool debug_
 
bool doall_
 
bool local_
 
edm::ESGetToken< DTGeometry, MuonGeometryRecordmuonGeomToken_
 
edm::InputTag segment4DLabel_
 
edm::EDGetTokenT< DTRecSegment4DCollectionsegment4DToken_
 
double sigmaResAngle_
 
double sigmaResPos_
 
edm::InputTag simHitLabel_
 
edm::EDGetTokenT< edm::PSimHitContainersimHitToken_
 

Additional Inherited Members

- Public Types inherited from DQMGlobalEDAnalyzerBase< dtsegment2dsl::Histograms, Args... >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::global::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
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from DQMGlobalEDAnalyzerBase< dtsegment2dsl::Histograms, Args... >
uint64_t meId (edm::Run const &run) const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMGlobalEDAnalyzerBase< dtsegment2dsl::Histograms, Args... >
DQMStoredqmstore_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Basic analyzer class which accesses 2D DTSegments reconstructed with both SL Phi and plot resolution comparing reconstructed and simulated quantities

Author
S. Bolognesi and G. Cerminara - INFN Torino

Definition at line 33 of file DTSegment2DSLPhiQuality.h.

Constructor & Destructor Documentation

◆ DTSegment2DSLPhiQuality()

DTSegment2DSLPhiQuality::DTSegment2DSLPhiQuality ( const edm::ParameterSet pset)

Constructor.

Definition at line 37 of file DTSegment2DSLPhiQuality.cc.

38  // Get the debug parameter for verbose output
39  debug_ = pset.getUntrackedParameter<bool>("debug");
41 
42  // the name of the simhit collection
43  simHitLabel_ = pset.getUntrackedParameter<InputTag>("simHitLabel");
44  simHitToken_ = consumes<PSimHitContainer>(pset.getUntrackedParameter<InputTag>("simHitLabel"));
45  // the name of the 2D rec hit collection
46  segment4DLabel_ = pset.getUntrackedParameter<InputTag>("segment4DLabel");
47  segment4DToken_ = consumes<DTRecSegment4DCollection>(pset.getUntrackedParameter<InputTag>("segment4DLabel"));
48 
49  // sigma resolution on position
50  sigmaResPos_ = pset.getParameter<double>("sigmaResPos");
51  // sigma resolution on angle
52  sigmaResAngle_ = pset.getParameter<double>("sigmaResAngle");
53  doall_ = pset.getUntrackedParameter<bool>("doall", false);
54  local_ = pset.getUntrackedParameter<bool>("local", false);
55 }

References DTHitQualityUtils::debug, debug_, doall_, local_, muonDTDigis_cfi::pset, segment4DLabel_, segment4DToken_, sigmaResAngle_, sigmaResPos_, simHitLabel_, and simHitToken_.

Member Function Documentation

◆ bookHistograms()

void DTSegment2DSLPhiQuality::bookHistograms ( DQMStore::IBooker booker,
edm::Run const &  run,
edm::EventSetup const &  setup,
dtsegment2dsl::Histograms histograms 
) const
overrideprivatevirtual

Book the DQM plots.

Implements DQMGlobalEDAnalyzerBase< dtsegment2dsl::Histograms, Args... >.

Definition at line 57 of file DTSegment2DSLPhiQuality.cc.

60  {
61  // Book the histos
62  histograms.h2DHitSuperPhi = std::make_unique<HRes2DHit>("SuperPhi", booker, doall_, local_);
63  if (doall_) {
64  histograms.h2DHitEff_SuperPhi = std::make_unique<HEff2DHit>("SuperPhi", booker);
65  }
66 }

References doall_, and local_.

◆ dqmAnalyze()

void DTSegment2DSLPhiQuality::dqmAnalyze ( edm::Event const &  event,
edm::EventSetup const &  setup,
dtsegment2dsl::Histograms const &  histograms 
) const
overrideprivatevirtual

Perform the real analysis.

Implements DQMGlobalEDAnalyzerBase< dtsegment2dsl::Histograms, Args... >.

Definition at line 69 of file DTSegment2DSLPhiQuality.cc.

71  {
72  // Get the DT Geometry
73  const DTGeometry &dtGeom = setup.getData(muonGeomToken_);
74 
75  // Get the SimHit collection from the event
77  event.getByToken(simHitToken_, simHits); // FIXME: second string to be removed
78 
79  // Map simHits by chamber
80  map<DTChamberId, PSimHitContainer> simHitsPerCh;
81  for (const auto &simHit : *simHits) {
82  // Create the id of the chamber (the simHits in the DT known their wireId)
83  DTChamberId chamberId = (((DTWireId(simHit.detUnitId())).layerId()).superlayerId()).chamberId();
84  // Fill the map
85  simHitsPerCh[chamberId].push_back(simHit);
86  }
87 
88  // Get the 4D rechits from the event
90  event.getByToken(segment4DToken_, segment4Ds);
91 
92  if (!segment4Ds.isValid()) {
93  if (debug_) {
94  cout << "[DTSegment2DSLPhiQuality]**Warning: no 4D Segments with label: " << segment4DLabel_
95  << " in this event, skipping!" << endl;
96  }
97  return;
98  }
99 
100  // Loop over all chambers containing a segment
102  for (chamberId = segment4Ds->id_begin(); chamberId != segment4Ds->id_end(); ++chamberId) {
103  //------------------------- simHits ---------------------------//
104  // Get simHits of each chamber
105  PSimHitContainer simHits = simHitsPerCh[(*chamberId)];
106 
107  // Map simhits per wire
108  map<DTWireId, PSimHitContainer> simHitsPerWire = DTHitQualityUtils::mapSimHitsPerWire(simHits);
109  map<DTWireId, const PSimHit *> muSimHitPerWire = DTHitQualityUtils::mapMuSimHitsPerWire(simHitsPerWire);
110  int nMuSimHit = muSimHitPerWire.size();
111  if (nMuSimHit == 0 || nMuSimHit == 1) {
112  if (debug_ && nMuSimHit == 1) {
113  cout << "[DTSegment2DSLPhiQuality] Only " << nMuSimHit << " mu SimHit in this chamber, skipping!" << endl;
114  }
115  continue; // If no or only one mu SimHit is found skip this chamber
116  }
117  if (debug_) {
118  cout << "=== Chamber " << (*chamberId) << " has " << nMuSimHit << " SimHits" << endl;
119  }
120 
121  // Find outer and inner mu SimHit to build a segment
122  pair<const PSimHit *, const PSimHit *> inAndOutSimHit = DTHitQualityUtils::findMuSimSegment(muSimHitPerWire);
123 
124  // Find direction and position of the sim Segment in Chamber RF
125  pair<LocalVector, LocalPoint> dirAndPosSimSegm =
126  DTHitQualityUtils::findMuSimSegmentDirAndPos(inAndOutSimHit, (*chamberId), dtGeom);
127 
128  LocalVector simSegmLocalDir = dirAndPosSimSegm.first;
129  LocalPoint simSegmLocalPos = dirAndPosSimSegm.second;
130  const DTChamber *chamber = dtGeom.chamber(*chamberId);
131  GlobalPoint simSegmGlobalPos = chamber->toGlobal(simSegmLocalPos);
132 
133  // Atan(x/z) angle and x position in SL RF
134  float angleSimSeg = DTHitQualityUtils::findSegmentAlphaAndBeta(simSegmLocalDir).first;
135  float posSimSeg = simSegmLocalPos.x();
136  // Position (in eta, phi coordinates) in lobal RF
137  float etaSimSeg = simSegmGlobalPos.eta();
138  float phiSimSeg = simSegmGlobalPos.phi();
139 
140  if (debug_) {
141  cout << " Simulated segment: local direction " << simSegmLocalDir << endl
142  << " local position " << simSegmLocalPos << endl
143  << " angle " << angleSimSeg << endl;
144  }
145 
146  //---------------------------- recHits --------------------------//
147  // Get the range of rechit for the corresponding chamberId
148  bool recHitFound = false;
149  DTRecSegment4DCollection::range range = segment4Ds->get(*chamberId);
150  int nsegm = distance(range.first, range.second);
151  if (debug_) {
152  cout << " Chamber: " << *chamberId << " has " << nsegm << " 4D segments" << endl;
153  }
154 
155  if (nsegm != 0) {
156  // Find the best RecHit: look for the 4D RecHit with the phi angle closest
157  // to that of segment made of SimHits.
158  // RecHits must have delta alpha and delta position within 5 sigma of
159  // the residual distribution (we are looking for residuals of segments
160  // usefull to the track fit) for efficency purpose
161  const DTRecSegment2D *bestRecHit = nullptr;
162  bool bestRecHitFound = false;
163  double deltaAlpha = 99999;
164 
165  // Loop over the recHits of this chamberId
166  for (DTRecSegment4DCollection::const_iterator segment4D = range.first; segment4D != range.second; ++segment4D) {
167  // Check the dimension
168  if ((*segment4D).dimension() != 4) {
169  if (debug_) {
170  cout << "[DTSegment2DSLPhiQuality]***Error: This is not 4D "
171  "segment!!!"
172  << endl;
173  }
174  continue;
175  }
176 
177  // Get 2D superPhi segments from 4D segments
178  const DTChamberRecSegment2D *phiSegment2D = (*segment4D).phiSegment();
179  if ((*phiSegment2D).dimension() != 2) {
180  if (debug_) {
181  cout << "[DTSegment2DQuality]***Error: This is not 2D segment!!!" << endl;
182  }
183  abort();
184  }
185 
186  // Segment Local Direction and position (in Chamber RF)
187  LocalVector recSegDirection = (*phiSegment2D).localDirection();
188 
189  float recSegAlpha = DTHitQualityUtils::findSegmentAlphaAndBeta(recSegDirection).first;
190  if (debug_) {
191  cout << " RecSegment direction: " << recSegDirection << endl
192  << " position : " << (*phiSegment2D).localPosition() << endl
193  << " alpha : " << recSegAlpha << endl;
194  }
195 
196  if (fabs(recSegAlpha - angleSimSeg) < deltaAlpha) {
197  deltaAlpha = fabs(recSegAlpha - angleSimSeg);
198  bestRecHit = &(*phiSegment2D);
199  bestRecHitFound = true;
200  }
201  } // End of Loop over all 4D RecHits of this chambers
202 
203  if (bestRecHitFound) {
204  // Best rechit direction and position in Chamber RF
205  LocalPoint bestRecHitLocalPos = bestRecHit->localPosition();
206  LocalVector bestRecHitLocalDir = bestRecHit->localDirection();
207 
208  LocalError bestRecHitLocalPosErr = bestRecHit->localPositionError();
209  LocalError bestRecHitLocalDirErr = bestRecHit->localDirectionError();
210 
211  float angleBestRHit = DTHitQualityUtils::findSegmentAlphaAndBeta(bestRecHitLocalDir).first;
212  if (fabs(angleBestRHit - angleSimSeg) < 5 * sigmaResAngle_ &&
213  fabs(bestRecHitLocalPos.x() - posSimSeg) < 5 * sigmaResPos_) {
214  recHitFound = true;
215  }
216 
217  // Fill Residual histos
218  histograms.h2DHitSuperPhi->fill(angleSimSeg,
219  angleBestRHit,
220  posSimSeg,
221  bestRecHitLocalPos.x(),
222  etaSimSeg,
223  phiSimSeg,
224  sqrt(bestRecHitLocalPosErr.xx()),
225  sqrt(bestRecHitLocalDirErr.xx()));
226  }
227  } // end of if (nsegm!= 0)
228 
229  // Fill Efficiency plot
230  if (doall_) {
231  histograms.h2DHitEff_SuperPhi->fill(etaSimSeg, phiSimSeg, posSimSeg, angleSimSeg, recHitFound);
232  }
233  } // End of loop over chambers
234 }

References relativeConstraints::chamber, DTGeometry::chamber(), gather_cfg::cout, debug_, HLT_FULL_cff::distance, doall_, PV3DBase< T, PVType, FrameType >::eta(), DTHitQualityUtils::findMuSimSegment(), DTHitQualityUtils::findMuSimSegmentDirAndPos(), DTHitQualityUtils::findSegmentAlphaAndBeta(), edm::HandleBase::isValid(), DTRecSegment2D::localDirection(), DTRecSegment2D::localDirectionError(), DTRecSegment2D::localPosition(), DTRecSegment2D::localPositionError(), DTHitQualityUtils::mapMuSimHitsPerWire(), DTHitQualityUtils::mapSimHitsPerWire(), muonGeomToken_, PV3DBase< T, PVType, FrameType >::phi(), FastTimerService_cff::range, segment4DLabel_, segment4DToken_, singleTopDQM_cfi::setup, sigmaResAngle_, sigmaResPos_, rpcPointValidation_cfi::simHit, FastTrackerRecHitCombiner_cfi::simHits, simHitToken_, mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), and LocalError::xx().

Member Data Documentation

◆ debug_

bool DTSegment2DSLPhiQuality::debug_
private

Definition at line 68 of file DTSegment2DSLPhiQuality.h.

Referenced by dqmAnalyze(), and DTSegment2DSLPhiQuality().

◆ doall_

bool DTSegment2DSLPhiQuality::doall_
private

Definition at line 64 of file DTSegment2DSLPhiQuality.h.

Referenced by bookHistograms(), dqmAnalyze(), and DTSegment2DSLPhiQuality().

◆ local_

bool DTSegment2DSLPhiQuality::local_
private

Definition at line 65 of file DTSegment2DSLPhiQuality.h.

Referenced by bookHistograms(), and DTSegment2DSLPhiQuality().

◆ muonGeomToken_

edm::ESGetToken<DTGeometry, MuonGeometryRecord> DTSegment2DSLPhiQuality::muonGeomToken_
private

Definition at line 56 of file DTSegment2DSLPhiQuality.h.

Referenced by dqmAnalyze().

◆ segment4DLabel_

edm::InputTag DTSegment2DSLPhiQuality::segment4DLabel_
private

Definition at line 51 of file DTSegment2DSLPhiQuality.h.

Referenced by dqmAnalyze(), and DTSegment2DSLPhiQuality().

◆ segment4DToken_

edm::EDGetTokenT<DTRecSegment4DCollection> DTSegment2DSLPhiQuality::segment4DToken_
private

Definition at line 53 of file DTSegment2DSLPhiQuality.h.

Referenced by dqmAnalyze(), and DTSegment2DSLPhiQuality().

◆ sigmaResAngle_

double DTSegment2DSLPhiQuality::sigmaResAngle_
private

Definition at line 62 of file DTSegment2DSLPhiQuality.h.

Referenced by dqmAnalyze(), and DTSegment2DSLPhiQuality().

◆ sigmaResPos_

double DTSegment2DSLPhiQuality::sigmaResPos_
private

Definition at line 59 of file DTSegment2DSLPhiQuality.h.

Referenced by dqmAnalyze(), and DTSegment2DSLPhiQuality().

◆ simHitLabel_

edm::InputTag DTSegment2DSLPhiQuality::simHitLabel_
private

Definition at line 50 of file DTSegment2DSLPhiQuality.h.

Referenced by DTSegment2DSLPhiQuality().

◆ simHitToken_

edm::EDGetTokenT<edm::PSimHitContainer> DTSegment2DSLPhiQuality::simHitToken_
private

Definition at line 52 of file DTSegment2DSLPhiQuality.h.

Referenced by dqmAnalyze(), and DTSegment2DSLPhiQuality().

Vector3DBase< float, LocalTag >
DTGeometry
Definition: DTGeometry.h:28
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
DTSegment2DSLPhiQuality::simHitToken_
edm::EDGetTokenT< edm::PSimHitContainer > simHitToken_
Definition: DTSegment2DSLPhiQuality.h:52
DTSegment2DSLPhiQuality::muonGeomToken_
edm::ESGetToken< DTGeometry, MuonGeometryRecord > muonGeomToken_
Definition: DTSegment2DSLPhiQuality.h:56
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
DTHitQualityUtils::mapMuSimHitsPerWire
std::map< DTWireId, const PSimHit * > mapMuSimHitsPerWire(const std::map< DTWireId, edm::PSimHitContainer > &simHitWireMap)
Create a map between the Mu SimHits and corresponding MuBarWireId ;.
DTHitQualityUtils::debug
std::atomic< bool > debug
Definition: DTHitQualityUtils.h:50
gather_cfg.cout
cout
Definition: gather_cfg.py:144
DTChamber
Definition: DTChamber.h:24
DTRecSegment2D::localDirectionError
LocalError localDirectionError() const override
the local direction error (xx,xy,yy) in SL frame: only xx is not 0.
Definition: DTRecSegment2D.cc:76
FastTrackerRecHitCombiner_cfi.simHits
simHits
Definition: FastTrackerRecHitCombiner_cfi.py:5
DTHitQualityUtils::findSegmentAlphaAndBeta
std::pair< double, double > findSegmentAlphaAndBeta(const LocalVector &direction)
DTRecSegment2D::localPositionError
LocalError localPositionError() const override
local position error in SL frame
Definition: DTRecSegment2D.cc:74
edm::Handle
Definition: AssociativeIterator.h:50
edm::RangeMap::id_iterator
identifier iterator
Definition: RangeMap.h:130
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
DTSegment2DSLPhiQuality::doall_
bool doall_
Definition: DTSegment2DSLPhiQuality.h:64
DTGeometry::chamber
const DTChamber * chamber(const DTChamberId &id) const
Return a DTChamber given its id.
Definition: DTGeometry.cc:90
DTSegment2DSLPhiQuality::simHitLabel_
edm::InputTag simHitLabel_
Definition: DTSegment2DSLPhiQuality.h:50
DTHitQualityUtils::findMuSimSegment
std::pair< const PSimHit *, const PSimHit * > findMuSimSegment(const std::map< DTWireId, const PSimHit * > &mapWireAndMuSimHit)
DTWireId
Definition: DTWireId.h:12
LocalError::xx
float xx() const
Definition: LocalError.h:22
DTSegment2DSLPhiQuality::debug_
bool debug_
Definition: DTSegment2DSLPhiQuality.h:68
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DTSegment2DSLPhiQuality::segment4DToken_
edm::EDGetTokenT< DTRecSegment4DCollection > segment4DToken_
Definition: DTSegment2DSLPhiQuality.h:53
Point3DBase< float, LocalTag >
DTHitQualityUtils::mapSimHitsPerWire
std::map< DTWireId, edm::PSimHitContainer > mapSimHitsPerWire(const edm::PSimHitContainer &simhits)
DTRecSegment2D
Definition: DTRecSegment2D.h:45
LocalError
Definition: LocalError.h:12
edm::RangeMap::const_iterator
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
DTRecSegment2D::localPosition
LocalPoint localPosition() const override
local position in SL frame
Definition: DTRecSegment2D.h:84
DTChamberRecSegment2D
Definition: DTChamberRecSegment2D.h:31
DTHitQualityUtils::findMuSimSegmentDirAndPos
std::pair< LocalVector, LocalPoint > findMuSimSegmentDirAndPos(const std::pair< const PSimHit *, const PSimHit * > &inAndOutSimHit, const DetId detId, const DTGeometry &muonGeom)
DTSegment2DSLPhiQuality::segment4DLabel_
edm::InputTag segment4DLabel_
Definition: DTSegment2DSLPhiQuality.h:51
histograms
Definition: histograms.py:1
edm::RangeMap::range
std::pair< const_iterator, const_iterator > range
iterator range
Definition: RangeMap.h:50
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
DTSegment2DSLPhiQuality::sigmaResPos_
double sigmaResPos_
Definition: DTSegment2DSLPhiQuality.h:59
edm::EDConsumerBase::esConsumes
auto esConsumes()
Definition: EDConsumerBase.h:206
DTSegment2DSLPhiQuality::sigmaResAngle_
double sigmaResAngle_
Definition: DTSegment2DSLPhiQuality.h:62
DTRecSegment2D::localDirection
LocalVector localDirection() const override
the local direction in SL frame
Definition: DTRecSegment2D.h:90
DTChamberId
Definition: DTChamberId.h:14
edm::PSimHitContainer
std::vector< PSimHit > PSimHitContainer
Definition: PSimHitContainer.h:11
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
HLT_FULL_cff.distance
distance
Definition: HLT_FULL_cff.py:7746
edm::InputTag
Definition: InputTag.h:15
DTSegment2DSLPhiQuality::local_
bool local_
Definition: DTSegment2DSLPhiQuality.h:65
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27