Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 /** \file
0002  *
0003  */
0004 
0005 #include <Geometry/CSCGeometry/interface/CSCChamber.h>
0006 #include <Geometry/CSCGeometry/interface/CSCLayer.h>
0007 
0008 #include <FWCore/MessageLogger/interface/MessageLogger.h>
0009 
0010 CSCChamber::~CSCChamber() {
0011   // Delete all layers
0012   for (std::vector<const CSCLayer*>::const_iterator i = theComponents.begin(); i != theComponents.end(); ++i) {
0013     delete (*i);
0014   }
0015 }
0016 
0017 std::vector<const GeomDet*> CSCChamber::components() const {
0018   return std::vector<const GeomDet*>(theComponents.begin(), theComponents.end());
0019 }
0020 
0021 const GeomDet* CSCChamber::component(DetId id) const { return layer(CSCDetId(id.rawId())); }
0022 
0023 void CSCChamber::addComponent(int n, const CSCLayer* gd) {
0024   if ((n > 0) && (n < 7))
0025     theComponents[n - 1] = gd;
0026   else
0027     edm::LogError("CSC") << "Each chamber has only SIX layers.";
0028 }
0029 
0030 const CSCLayer* CSCChamber::layer(CSCDetId iid) const {
0031   if (iid.chamberId() != id())
0032     return nullptr;  // not in this chamber
0033   return layer(iid.layer());
0034 }
0035 
0036 const CSCLayer* CSCChamber::layer(int ilay) const {
0037   if ((ilay > 0) && (ilay < 7))
0038     return theComponents[ilay - 1];
0039   else {
0040     return nullptr;
0041   }
0042 }