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...
 
virtual const GeomDetcomponent (DetId id) const
 Return the sub-component (SL or layer) with a given id in this chamber. More...
 
virtual std::vector< const GeomDet * > components () const
 Return the superlayers in the chamber. More...
 
 DTChamber (DTChamberId id, const ReferenceCountingPointer< BoundPlane > &plane)
 Constructor. More...
 
DTChamberId id () const
 Return the DTChamberId of this chamber. More...
 
const DTLayerlayer (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...
 
virtual SubDetector subDetector () const
 Which subdetector. More...
 
const DTSuperLayersuperLayer (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...
 
virtual ~DTChamber ()
 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 ( 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 ( )
virtual

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.push_back(sl);
43 }
std::vector< const DTSuperLayer * > theSLs
Definition: DTChamber.h:69
const GeomDet * DTChamber::component ( DetId  id) const
virtual

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 DTLayer * layer(DTLayerId id) const
Return the layer corresponding to the given id.
Definition: DTChamber.cc:80
const DTSuperLayer * superLayer(DTSuperLayerId id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:65
std::vector< const GeomDet * > DTChamber::components ( ) const
virtual

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 ( DTLayerId  id) const

Return the layer corresponding to the given id.

Definition at line 80 of file DTChamber.cc.

References superLayer().

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

80  {
81  return (superLayer(id.superlayer()))->layer(id.layer());
82 }
const DTLayer * layer(DTLayerId id) const
Return the layer corresponding to the given id.
Definition: DTChamber.cc:80
const DTSuperLayer * superLayer(DTSuperLayerId id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:65
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
virtual SubDetector DTChamber::subDetector ( ) const
inlinevirtual

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 ( 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 0; // not in this SL!
67  return superLayer(id.superLayer());
68 }
DTChamberId theId
Definition: DTChamber.h:66
const DTSuperLayer * superLayer(DTSuperLayerId id) const
Return the superlayer corresponding to the given id.
Definition: DTChamber.cc:65
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 mps_fire::i, and theSLs.

71  {
72  for (std::vector<const DTSuperLayer*>::const_iterator i = theSLs.begin();
73  i!= theSLs.end(); ++i) {
74  if ((*i)->id().superLayer()==isl) return (*i);
75  }
76  return 0;
77 }
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().