Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:58:20

0001 #ifndef CSCChannelMapperStartup_H
0002 #define CSCChannelMapperStartup_H
0003 
0004 /**
0005  * \class CSCChannelMapperStartup
0006  *
0007  * A concrete CSCChannelMapper class to
0008  * map between raw/online channel numbers (for strips/cathodes and wires/anodes)
0009  * and offline geometry-oriented channel numbers, in which increasing number
0010  * corresponds to increasing local x (strips) or y (wire groups) as defined
0011  * in CMS Note CMS IN-2007/024.
0012  *
0013  * This version is for CMS Startup (2008-2013)
0014  *
0015  * 1. Sorts out readout-flipping within the two endcaps for ME1a and ME1b strip
0016  * channels. <BR>
0017  * 2. Maps the ME1a channels from online labels 65-80 to offline 1-16. <BR>
0018  * 3. Does nothing with wiregroup channels; the output = the input. <BR>
0019  *
0020  * Since ME1a is ganged, the 48 strips in ME1a are fed to 16 channels, so it is
0021  * important to distinguish the nomenclatures "strip" vs "channel". It is
0022  * usually a meaningful distinction!
0023  *
0024  * Also note that the CSCDetId for ME11 and ME1b is identical. Offline we
0025  * presume ring=1 of station 1 to mean the ME1b strips. We use the identifier
0026  * ring=4 to denote the ME1a strips.
0027  *
0028  * \author Tim Cox
0029  *
0030  */
0031 
0032 #include "CalibMuon/CSCCalibration/interface/CSCChannelMapperBase.h"
0033 
0034 class CSCChannelMapperStartup : public CSCChannelMapperBase {
0035 public:
0036   CSCChannelMapperStartup() {}
0037   ~CSCChannelMapperStartup() override {}
0038 
0039   std::string name() const override { return "CSCChannelMapperStartup"; }
0040 
0041   /// Return raw strip channel number for input geometrical channel number
0042   int rawStripChannel(const CSCDetId &id, int igeom) const override;
0043 
0044   /// Return geometrical strip channel number for input raw channel number
0045   int geomStripChannel(const CSCDetId &id, int iraw) const override;
0046 
0047   /// Offline conversion of a strip (geometric labelling) back to channel
0048   /// (Startup: convert the 48 strips of ME1A to 16 ganged channels.)
0049   int channelFromStrip(const CSCDetId &id, int strip) const override;
0050 
0051   /// Construct raw CSCDetId matching supplied offline CSCDetid
0052   /// (Startup:  return the ME11 CSCDetID when supplied with that for ME1A)
0053   CSCDetId rawCSCDetId(const CSCDetId &id) const override;
0054 };
0055 
0056 #endif