CMS 3D CMS Logo

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 override
 
 CSCChannelMapperPostls1 ()
 
int geomStripChannel (const CSCDetId &id, int iraw) const override
 Return geometrical strip channel number for input raw channel number. More...
 
std::string name () const override
 
CSCDetId rawCSCDetId (const CSCDetId &id) const override
 
int rawStripChannel (const CSCDetId &id, int igeom) const override
 Return raw strip channel number for input geometrical channel number. More...
 
 ~CSCChannelMapperPostls1 () override
 
- 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 32 of file CSCChannelMapperPostls1.h.

Constructor & Destructor Documentation

◆ CSCChannelMapperPostls1()

CSCChannelMapperPostls1::CSCChannelMapperPostls1 ( )
inline

Definition at line 34 of file CSCChannelMapperPostls1.h.

34 {}

◆ ~CSCChannelMapperPostls1()

CSCChannelMapperPostls1::~CSCChannelMapperPostls1 ( )
inlineoverride

Definition at line 35 of file CSCChannelMapperPostls1.h.

35 {}

Member Function Documentation

◆ channelFromStrip()

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

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

Implements CSCChannelMapperBase.

Definition at line 45 of file CSCChannelMapperPostls1.cc.

References digitizers_cfi::strip.

45  {
46  // This just returns the electronics channel label to which a given strip is
47  // connected In all chambers (including upgraded ME1A) this is just a direct
48  // 1-1 correspondence.
49  int ichan = strip;
50  return ichan;
51 }

◆ geomStripChannel()

int CSCChannelMapperPostls1::geomStripChannel ( const CSCDetId id,
int  iraw 
) const
overridevirtual

Return geometrical strip channel number for input raw channel number.

Implements CSCChannelMapperBase.

Definition at line 24 of file CSCChannelMapperPostls1.cc.

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

24  {
25  // Translate a raw strip channel in range 1-80, iraw, into
26  // corresponding geometry-oriented channel in which increasing
27  // channel number <-> strip number increasing with +ve local x.
28 
29  int igeo = iraw;
30 
31  bool zplus = (id.endcap() == 1);
32  bool me1a = (id.station() == 1) && (id.ring() == 4);
33  bool me1b = (id.station() == 1) && (id.ring() == 1);
34 
35  if (me1a && zplus) {
36  igeo = 49 - igeo;
37  } // 1-48 -> 48-1
38  if (me1b && !zplus) {
39  igeo = 65 - igeo;
40  } // 1-64 -> 64-1
41 
42  return igeo;
43 }

◆ name()

std::string CSCChannelMapperPostls1::name ( ) const
inlineoverridevirtual

Reimplemented from CSCChannelMapperBase.

Definition at line 37 of file CSCChannelMapperPostls1.h.

Referenced by config.CFG::__str__(), validation.Sample::digest(), and VIDSelectorBase.VIDSelectorBase::initialize().

37 { return "CSCChannelMapperPostls1"; }

◆ rawCSCDetId()

CSCDetId CSCChannelMapperPostls1::rawCSCDetId ( const CSCDetId id) const
overridevirtual

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

Implements CSCChannelMapperBase.

Definition at line 53 of file CSCChannelMapperPostls1.cc.

53  {
54  // Return the effective online CSCDetId for given offline CSCDetId
55  // That means the same one (for upgraded ME1A)
56  CSCDetId idraw(id);
57  return idraw;
58 }

◆ rawStripChannel()

int CSCChannelMapperPostls1::rawStripChannel ( const CSCDetId id,
int  igeom 
) const
overridevirtual

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