CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
virtual bool setAlignmentPositionError (const AlignmentPositionError &ape)
 
void setDetId (DetId id)
 

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().

20  : GeomDet(plane), theId(id) {
21  setDetId(id);
22 }
void setDetId(DetId id)
Definition: GeomDet.h:99
DTChamberId theId
Definition: DTChamber.h:64
GeomDet(Plane *plane)
Definition: GeomDet.h:31
DTChamber::~DTChamber ( )
override

Destructor.

Definition at line 25 of file DTChamber.cc.

References theSLs.

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

Member Function Documentation

void DTChamber::add ( DTSuperLayer sl)

Add SL to the chamber which takes ownership.

Definition at line 36 of file DTChamber.cc.

References theSLs.

Referenced by DTGeometryBuilderFromDDD::buildSuperLayer(), DTGeometryBuilderFromDD4hep::buildSuperLayer(), DTGeometryBuilderFromCondDB::buildSuperLayer(), cms::DTGeometryBuilder::buildSuperLayer(), and counter.Counter::register().

36 { theSLs.emplace_back(sl); }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:67
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 42 of file DTChamber.cc.

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

42  {
43  DTLayerId lId(id.rawId());
44  if (lId.layer() == 0) { // is a SL id
45  return superLayer(lId);
46  } else { // is a layer id
47  return layer(lId);
48  }
49 }
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:53
const DTLayer * layer(const DTLayerId &id) const
Return the layer corresponding to the given id.
Definition: DTChamber.cc:67
std::vector< const GeomDet * > DTChamber::components ( ) const
overridevirtual

Return the superlayers in the chamber.

Reimplemented from GeomDet.

Definition at line 38 of file DTChamber.cc.

References theSLs.

38  {
39  return std::vector<const GeomDet*>(theSLs.begin(), theSLs.end());
40 }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:67
DTChamberId DTChamber::id ( void  ) const
const DTLayer * DTChamber::layer ( const DTLayerId id) const

Return the layer corresponding to the given id.

Definition at line 67 of file DTChamber.cc.

References superLayer().

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

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

equal if the id is the same

Definition at line 34 of file DTChamber.cc.

References id().

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

Which subdetector.

Reimplemented from GeomDet.

Definition at line 36 of file DTChamber.h.

References GeomDetEnumerators::DT.

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

Return the superlayer corresponding to the given id.

Definition at line 53 of file DTChamber.cc.

References theId.

Referenced by DTVDriftCalibration::analyze(), DTResolutionAnalysisTask::analyze(), HoughGrouping::associateHits(), component(), DTTrigGeomUtils::DTTrigGeomUtils(), DTTrigGeom::getGeom(), layer(), DTTrigGeom::localPosition(), HoughGrouping::obtainGeometricalBorders(), DTRefitAndCombineReco4D::reconstruct(), DTCombinatorialPatternReco4D::reconstruct(), DTMeantimerPatternReco4D::reconstruct(), and DTTrigGeom::tubePosInCh().

53  {
54  if (id.chamberId() != theId)
55  return nullptr; // not in this SL!
56  return superLayer(id.superLayer());
57 }
const DTSuperLayer * superLayer(const DTSuperLayerId &id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:53
DTChamberId theId
Definition: DTChamber.h:64
const DTSuperLayer * DTChamber::superLayer ( int  isl) const

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

Definition at line 59 of file DTChamber.cc.

References theSLs.

59  {
60  for (auto theSL : theSLs) {
61  if (theSL->id().superLayer() == isl)
62  return theSL;
63  }
64  return nullptr;
65 }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:67
const std::vector< const DTSuperLayer * > & DTChamber::superLayers ( ) const

Return the superlayers in the chamber.

Definition at line 51 of file DTChamber.cc.

References theSLs.

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

51 { return theSLs; }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:67

Member Data Documentation

DTChamberId DTChamber::theId
private

Definition at line 64 of file DTChamber.h.

Referenced by id(), and superLayer().

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

Definition at line 67 of file DTChamber.h.

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