Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef OFFSET_RADIAL_STRIP_TOPOLOGY_H
0002 #define OFFSET_RADIAL_STRIP_TOPOLOGY_H
0003 
0004 /** \class CSCUngangedStripTopology
0005  *  A concrete CSCStripTopology with unganged strips (normal CSC case.)
0006  *
0007  *  \author Tim Cox
0008  * 
0009  */
0010 
0011 #include "Geometry/CSCGeometry/interface/CSCStripTopology.h"
0012 
0013 class CSCUngangedStripTopology : public CSCStripTopology {
0014 public:
0015   CSCUngangedStripTopology(int numberOfStrips,
0016                            float stripPhiPitch,
0017                            float detectorHeight,
0018                            float whereStripsMeet,
0019                            float stripOffset,
0020                            float yCentre)
0021       : CSCStripTopology(numberOfStrips, stripPhiPitch, detectorHeight, whereStripsMeet, stripOffset, yCentre) {}
0022 
0023   ~CSCUngangedStripTopology() override {}
0024 
0025   /** 
0026    * Return channel corresponding to a LocalPoint.
0027    * (but we count from 1 whereas RST counts from 0.)
0028    */
0029   int channel(const LocalPoint& lp) const override { return CSCRadialStripTopology::channel(lp) + 1; }
0030 
0031   /** 
0032    * Return channel corresponding to a strip.
0033    * (Count from 1).
0034    */
0035   int channel(int strip) const override { return strip; }
0036 
0037   /**
0038    * Clone to handle correct copy of component objects referenced
0039    * by base class pointer.
0040    * If gcc could handle it, should be
0041    *   virtual CSCUngangedStripTopology* clone() const
0042    */
0043   CSCStripTopology* clone() const override { return new CSCUngangedStripTopology(*this); }
0044 
0045   /**
0046    * Implement CSCStripTopology interface for its op<<
0047    */
0048   std::ostream& put(std::ostream& os) const override { return os << "CSCUngangedStripTopology"; }
0049 };
0050 
0051 #endif