CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
CSCChannelMapperPostls1 Class Reference

#include <CSCChannelMapperPostls1.h>

Inheritance diagram for CSCChannelMapperPostls1:
CSCChannelMapperBase

Public Member Functions

int channelFromStrip (const CSCDetId &id, int strip) const
 
 CSCChannelMapperPostls1 ()
 
int geomStripChannel (const CSCDetId &id, int iraw) const
 Return geometrical strip channel number for input raw channel number. More...
 
virtual std::string name () const
 
CSCDetId rawCSCDetId (const CSCDetId &id) const
 
int rawStripChannel (const CSCDetId &id, int igeom) const
 Return raw strip channel number for input geometrical channel number. More...
 
 ~CSCChannelMapperPostls1 ()
 
- Public Member Functions inherited from CSCChannelMapperBase
 CSCChannelMapperBase ()
 
int geomAnodeChannel (const CSCDetId &id, int iraw) const
 Alias for geomWireChannel. More...
 
int geomCathodeChannel (const CSCDetId &id, int iraw) const
 Alias for geomStripChannel. More...
 
int geomWireChannel (const CSCDetId &id, int iraw) const
 Return geometrical wiregroup channel number for input raw channel number. More...
 
int rawAnodeChannel (const CSCDetId &id, int igeom) const
 Alias for rawWireChannel. More...
 
int rawCathodeChannel (const CSCDetId &id, int igeom) const
 Alias for rawStripChannel. More...
 
int rawWireChannel (const CSCDetId &id, int igeom) const
 Return raw wiregroup channel number for input geometrical channel number. More...
 
virtual ~CSCChannelMapperBase ()
 

Detailed Description

A concrete CSCChannelMapper class to map between raw/online channel numbers (for strips/cathodes and wires/anodes) and offline geometry-oriented channel numbers, in which increasing number corresponds to increasing local x (strips) or y (wire groups) as defined in CMS Note CMS IN-2007/024.

This version is for CMS Postls1 (2013-)

  1. Sorts out readout-flipping within the two endcaps for ME1a and ME1b strip channels.
    We do not yet know whether there WILL be any flipping. For now we presume it is as in the Startup case.
  2. Doesnothing with ME1a channels since we intend each of the 48 strips to go to 48 individual channels.
  3. Does nothing with wiregroup channels; the output = the input.

Also note that the CSCDetId for ME11 and ME1b is identical. Offline we presume ring=1 of station 1 to mean the ME1b strips. We use the identifier ring=4 to denote the ME1a strips.

Author
Tim Cox

Definition at line 29 of file CSCChannelMapperPostls1.h.

Constructor & Destructor Documentation

CSCChannelMapperPostls1::CSCChannelMapperPostls1 ( )
inline

Definition at line 32 of file CSCChannelMapperPostls1.h.

32 {}
CSCChannelMapperPostls1::~CSCChannelMapperPostls1 ( )
inline

Definition at line 33 of file CSCChannelMapperPostls1.h.

33 {}

Member Function Documentation

int CSCChannelMapperPostls1::channelFromStrip ( const CSCDetId id,
int  strip 
) const
virtual

Offline conversion of a strip (geometric labelling) back to channel (Postls1: 1-1 correspondence strip to channel)

Implements CSCChannelMapperBase.

Definition at line 39 of file CSCChannelMapperPostls1.cc.

39  {
40  // This just returns the electronics channel label to which a given strip is connected
41  // In all chambers (including upgraded ME1A) this is just a direct 1-1 correspondence.
42  int ichan = strip;
43  return ichan;
44 }
int CSCChannelMapperPostls1::geomStripChannel ( const CSCDetId id,
int  iraw 
) const
virtual

Return geometrical strip channel number for input raw channel number.

Implements CSCChannelMapperBase.

Definition at line 22 of file CSCChannelMapperPostls1.cc.

References relativeConstraints::ring, and SurfaceOrientation::zplus.

22  {
23  // Translate a raw strip channel in range 1-80, iraw, into
24  // corresponding geometry-oriented channel in which increasing
25  // channel number <-> strip number increasing with +ve local x.
26 
27  int igeo = iraw;
28 
29  bool zplus = (id.endcap()==1);
30  bool me1a = (id.station()==1) && (id.ring()==4);
31  bool me1b = (id.station()==1) && (id.ring()==1);
32 
33  if ( me1a && zplus ) { igeo = 49 - igeo; } // 1-48 -> 48-1
34  if ( me1b && !zplus) { igeo = 65 - igeo; } // 1-64 -> 64-1
35 
36  return igeo;
37 }
virtual std::string CSCChannelMapperPostls1::name ( ) const
inlinevirtual
CSCDetId CSCChannelMapperPostls1::rawCSCDetId ( const CSCDetId id) const
virtual

Construct raw CSCDetId matching supplied offline CSCDetid (Postls1: leave ME1a detid alone)

Implements CSCChannelMapperBase.

Definition at line 46 of file CSCChannelMapperPostls1.cc.

46  {
47  // Return the effective online CSCDetId for given offline CSCDetId
48  // That means the same one (for upgraded ME1A)
49  CSCDetId idraw( id );
50  return idraw;
51 }
int CSCChannelMapperPostls1::rawStripChannel ( const CSCDetId id,
int  igeom 
) const
virtual

Return raw strip channel number for input geometrical channel number.

Implements CSCChannelMapperBase.

Definition at line 3 of file CSCChannelMapperPostls1.cc.

References relativeConstraints::ring, and SurfaceOrientation::zplus.

3  {
4 
5  // Translate a geometry-oriented strip channel in range 1-80, igeo,
6  // into corresponding raw channel.
7 
8  int iraw = igeo;
9 
10  bool zplus = (id.endcap()==1);
11 
12  bool me1a = (id.station()==1) && (id.ring()==4);
13  bool me1b = (id.station()==1) && (id.ring()==1);
14 
15  if ( me1a && zplus ) { iraw = 49 - iraw; } // 1-48 -> 48-1
16  if ( me1b && !zplus) { iraw = 65 - iraw; } // 1-64 -> 64-1
17 
18  return iraw;
19 }