CMS 3D CMS Logo

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

#include <DTChamber.h>

Inheritance diagram for DTChamber:
GeomDet

Public Member Functions

void add (DTSuperLayer *sl)
 Add SL to the chamber which takes ownership. More...
 
const GeomDetcomponent (DetId id) const override
 Return the sub-component (SL or layer) with a given id in this chamber. More...
 
std::vector< const GeomDet * > components () const override
 Return the superlayers in the chamber. More...
 
 DTChamber (const DTChamberId &id, const ReferenceCountingPointer< BoundPlane > &plane)
 Constructor. More...
 
DTChamberId id () const
 Return the DTChamberId of this chamber. More...
 
const DTLayerlayer (const DTLayerId &id) const
 Return the layer corresponding to the given id. More...
 
bool operator== (const DTChamber &ch) const
 equal if the id is the same More...
 
SubDetector subDetector () const override
 Which subdetector. More...
 
const DTSuperLayersuperLayer (const DTSuperLayerId &id) const
 Return the superlayer corresponding to the given id. More...
 
const DTSuperLayersuperLayer (int isl) const
 
const std::vector< const DTSuperLayer * > & superLayers () const
 Return the superlayers in the chamber. More...
 
 ~DTChamber () override
 Destructor. More...
 
- Public Member Functions inherited from GeomDet
AlignmentPositionError const * alignmentPositionError () const
 Return pointer to alignment errors. More...
 
int gdetIndex () const
 
DetId geographicalId () const
 The label of this GeomDet. More...
 
 GeomDet (Plane *plane)
 
 GeomDet (const ReferenceCountingPointer< Plane > &plane)
 
int index () const
 
virtual bool isLeaf () const
 is a Unit More...
 
const Surface::PositionTypeposition () const
 The position (origin of the R.F.) More...
 
const Surface::RotationTyperotation () const
 The rotation defining the local R.F. More...
 
void setGdetIndex (int i)
 
void setIndex (int i)
 
const PlanespecificSurface () const
 Same as surface(), kept for backward compatibility. More...
 
const Planesurface () const
 The nominal surface of the GeomDet. More...
 
virtual const SurfaceDeformationsurfaceDeformation () const
 
GlobalPoint toGlobal (const Local2DPoint &lp) const
 Conversion to the global R.F. from the R.F. of the GeomDet. More...
 
GlobalPoint toGlobal (const Local3DPoint &lp) const
 Conversion to the global R.F. from the R.F. of the GeomDet. More...
 
GlobalVector toGlobal (const LocalVector &lv) const
 Conversion to the global R.F. from the R.F. of the GeomDet. More...
 
LocalPoint toLocal (const GlobalPoint &gp) const
 Conversion to the R.F. of the GeomDet. More...
 
LocalVector toLocal (const GlobalVector &gv) const
 Conversion to the R.F. of the GeomDet. More...
 
virtual const Topologytopology () const
 
virtual const GeomDetTypetype () const
 
virtual ~GeomDet ()
 

Private Attributes

DTChamberId theId
 
std::vector< const DTSuperLayer * > theSLs
 

Additional Inherited Members

- Public Types inherited from GeomDet
using SubDetector = GeomDetEnumerators::SubDetector
 
- Protected Member Functions inherited from GeomDet
void setDetId (DetId id)
 
- Protected Attributes inherited from GeomDet
AlignmentPositionErrortheAlignmentPositionError = 0
 

Detailed Description

Model of a Muon Drift Tube chamber.

A chamber is a GeomDet; the associated reconstructed objects are 4D segments built in the chamber local reference frame. The chamber is composed by 2 or three DTSuperLayer, which in turn are composed by four DTLayer each.

Author
S. Lacaprara, N. Amapane

Definition at line 24 of file DTChamber.h.

Constructor & Destructor Documentation

DTChamber::DTChamber ( const DTChamberId id,
const ReferenceCountingPointer< BoundPlane > &  plane 
)

Constructor.

Definition at line 19 of file DTChamber.cc.

References GeomDet::setDetId().

19  :
20  GeomDet(plane),
21  theId(id) {
22  setDetId(id);
23 }
void setDetId(DetId id)
Definition: GeomDet.h:120
DTChamberId theId
Definition: DTChamber.h:66
GeomDet(Plane *plane)
Definition: GeomDet.h:34
DTChamber::~DTChamber ( )
override

Destructor.

Definition at line 26 of file DTChamber.cc.

References theSLs.

26  {
27  for (std::vector<const DTSuperLayer*>::const_iterator isl=theSLs.begin();
28  isl!=theSLs.end(); ++isl) delete (*isl);
29 }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:69

Member Function Documentation

void DTChamber::add ( DTSuperLayer sl)

Add SL to the chamber which takes ownership.

Definition at line 41 of file DTChamber.cc.

References theSLs.

Referenced by DTGeometryBuilderFromDDD::buildSuperLayer(), DTGeometryBuilderFromCondDB::buildSuperLayer(), counter.Counter::register(), and subDetector().

41  {
42  theSLs.emplace_back(sl);
43 }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:69
const GeomDet * DTChamber::component ( DetId  id) const
overridevirtual

Return the sub-component (SL or layer) with a given id in this chamber.

Reimplemented from GeomDet.

Definition at line 50 of file DTChamber.cc.

References DTLayerId::layer(), layer(), and superLayer().

Referenced by subDetector().

50  {
51  DTLayerId lId(id.rawId());
52  if (lId.layer()==0) { // is a SL id
53  return superLayer(lId);
54  } else { // is a layer id
55  return layer(lId);
56  }
57 }
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:65
const DTLayer * layer(const DTLayerId &id) const
Return the layer corresponding to the given id.
Definition: DTChamber.cc:79
std::vector< const GeomDet * > DTChamber::components ( ) const
overridevirtual

Return the superlayers in the chamber.

Reimplemented from GeomDet.

Definition at line 45 of file DTChamber.cc.

References theSLs.

Referenced by subDetector().

45  {
46  return std::vector<const GeomDet*>(theSLs.begin(), theSLs.end());
47 }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:69
DTChamberId DTChamber::id ( void  ) const
const DTLayer * DTChamber::layer ( const DTLayerId id) const

Return the layer corresponding to the given id.

Definition at line 79 of file DTChamber.cc.

References superLayer().

Referenced by DTEfficiencyTask::analyze(), component(), geometryXMLparser.DTAlignable::index(), geometryXMLparser.CSCAlignable::index(), and subDetector().

79  {
80  return (superLayer(id.superlayer()))->layer(id.layer());
81 }
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:65
const DTLayer * layer(const DTLayerId &id) const
Return the layer corresponding to the given id.
Definition: DTChamber.cc:79
bool DTChamber::operator== ( const DTChamber ch) const

equal if the id is the same

Definition at line 37 of file DTChamber.cc.

References id().

Referenced by subDetector().

37  {
38  return id()==ch.id();
39 }
DTChamberId id() const
Return the DTChamberId of this chamber.
Definition: DTChamber.cc:33
SubDetector DTChamber::subDetector ( ) const
inlineoverridevirtual

Which subdetector.

Reimplemented from GeomDet.

Definition at line 37 of file DTChamber.h.

References add(), component(), components(), GeomDetEnumerators::DT, layer(), operator==(), superLayer(), and superLayers().

const DTSuperLayer * DTChamber::superLayer ( const DTSuperLayerId id) const

Return the superlayer corresponding to the given id.

Definition at line 65 of file DTChamber.cc.

References theId.

Referenced by DTVDriftCalibration::analyze(), DTResolutionAnalysisTask::analyze(), component(), DTTrigGeomUtils::DTTrigGeomUtils(), DTTrigGeom::getGeom(), layer(), DTTrigGeom::localPosition(), DTSegmentCand::operator DTChamberRecSegment2D *(), DTMeantimerPatternReco4D::reconstruct(), DTCombinatorialPatternReco4D::reconstruct(), DTRefitAndCombineReco4D::reconstruct(), subDetector(), and DTTrigGeom::tubePosInCh().

65  {
66  if (id.chamberId()!=theId) return nullptr; // not in this SL!
67  return superLayer(id.superLayer());
68 }
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:65
DTChamberId theId
Definition: DTChamber.h:66
const DTSuperLayer * DTChamber::superLayer ( int  isl) const

Return the given superlayer. Superlayers are numbered 1 (phi), 2 (Z), 3 (phi)

Definition at line 71 of file DTChamber.cc.

References theSLs.

71  {
72  for (auto theSL : theSLs) {
73  if (theSL->id().superLayer()==isl) return theSL;
74  }
75  return nullptr;
76 }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:69
const std::vector< const DTSuperLayer * > & DTChamber::superLayers ( ) const

Return the superlayers in the chamber.

Definition at line 60 of file DTChamber.cc.

References theSLs.

Referenced by DTEfficiencyTask::analyze(), DTDigiTask::beginLuminosityBlock(), DTnoiseDBValidation::bookHisto(), DTNoiseTask::bookHistos(), MuonSimHitProducer::produce(), and subDetector().

60  {
61  return theSLs;
62 }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:69

Member Data Documentation

DTChamberId DTChamber::theId
private

Definition at line 66 of file DTChamber.h.

Referenced by id(), and superLayer().

std::vector<const DTSuperLayer*> DTChamber::theSLs
private

Definition at line 69 of file DTChamber.h.

Referenced by add(), components(), superLayer(), superLayers(), and ~DTChamber().