Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:14:26

0001 #ifndef DTLAYER_H
0002 #define DTLAYER_H
0003 
0004 /** \class DTLayer
0005  *
0006  *  Model of a layer (row of cells) in Muon Drift Tube chambers.
0007  *
0008  *  The layer is the GeomDetUnit for the DTs. 
0009  *  The individual channes are modelled by DTTopology.
0010  *
0011  *  \author : Stefano Lacaprara - INFN Padova <stefano.lacaprara@pd.infn.it>
0012  *
0013  */
0014 
0015 /* Base Class Headers */
0016 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0017 
0018 /* Collaborating Class Declarations */
0019 #include "DataFormats/MuonDetId/interface/DTLayerId.h"
0020 #include "Geometry/DTGeometry/interface/DTTopology.h"
0021 #include "Geometry/DTGeometry/interface/DTLayerType.h"
0022 class DTSuperLayer;
0023 class DTChamber;
0024 
0025 class DTLayer : public GeomDetUnit {
0026 public:
0027   /* Constructor */
0028   DTLayer(const DTLayerId& id,
0029           ReferenceCountingPointer<BoundPlane>& plane,
0030           const DTTopology& topo,
0031           const DTLayerType& type,
0032           const DTSuperLayer* sl = nullptr);
0033 
0034   /* Destructor */
0035   ~DTLayer() override;
0036 
0037   /* Operations */
0038   const Topology& topology() const override;
0039 
0040   const GeomDetType& type() const override;
0041 
0042   const DTTopology& specificTopology() const;
0043 
0044   /// Return the DetId of this SL
0045   DTLayerId id() const;
0046 
0047   /// Return the Superlayer this Layer belongs to (0 if any, eg if a
0048   /// layer is built on his own)
0049   const DTSuperLayer* superLayer() const;
0050 
0051   /// Return the chamber this Layer belongs to (0 if none, eg if a layer is
0052   /// built on his own)
0053   const DTChamber* chamber() const;
0054 
0055   /// True if the id are the same
0056   bool operator==(const DTLayer& l) const;
0057 
0058   /// A Layer has no components
0059   std::vector<const GeomDet*> components() const override;
0060 
0061 private:
0062   DTLayerId theId;
0063   DTTopology theTopo;
0064   DTLayerType theType;
0065 
0066   const DTSuperLayer* theSL;
0067 
0068 protected:
0069 };
0070 #endif  // DTLAYER_H