CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
CSCMotherboardLUTME11 Class Reference

#include <CSCUpgradeMotherboardLUT.h>

Public Member Functions

 CSCMotherboardLUTME11 ()
 
bool doesALCTCrossCLCT (const CSCALCTDigi &a, const CSCCLCTDigi &c, int theEndcap, bool gangedME1a=false) const
 
bool doesWiregroupCrossStrip (int wg, int keystrip, int theEndcap, bool gangedME1a=false) const
 
 ~CSCMotherboardLUTME11 ()
 

Private Attributes

std::vector< std::vector< double > > lut_wg_vs_hs_me1a
 
std::vector< std::vector< double > > lut_wg_vs_hs_me1ag
 
std::vector< std::vector< double > > lut_wg_vs_hs_me1b
 

Detailed Description

Definition at line 15 of file CSCUpgradeMotherboardLUT.h.

Constructor & Destructor Documentation

CSCMotherboardLUTME11::CSCMotherboardLUTME11 ( )

Definition at line 3 of file CSCUpgradeMotherboardLUT.cc.

References lut_wg_vs_hs_me1a, lut_wg_vs_hs_me1ag, and lut_wg_vs_hs_me1b.

4 {
5  // Keep in mind that ME1A is considered an extension of ME1B
6  // This means that ME1A half-strips start at 128 and end at 223
8  {128,223},{128,223},{128,223},{128,223},{128,223},
9  {128,223},{128,223},{128,223},{128,223},{128,223},
10  {128,223},{128,223},{128,205},{128,189},{128,167},
11  {128,150},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
12  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
13  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
14  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
15  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
16  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
17  {-1,-1},{-1,-1},{-1,-1}
18  };
19  // When the half-strips are triple-ganged, (Run-1)
20  // ME1A half-strips go from 128 to 159
22  {128,159},{128,159},{128,159},{128,159},{128,159},
23  {128,159},{128,159},{128,159},{128,159},{128,159},
24  {128,159},{128,159},{128,159},{128,159},{128,159},
25  {128,150},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
26  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
27  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
28  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
29  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
30  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
31  {-1,-1},{-1,-1},{-1,-1}
32  };
33  // ME1B half-strips start at 0 and end at 127
35  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
36  {-1,-1},{-1,-1},{-1,-1},{-1,-1},{-1,-1},
37  {100, 127},{73, 127},{47, 127},{22, 127},{0, 127},
38  {0, 127},{0, 127},{0, 127},{0, 127},{0, 127},
39  {0, 127},{0, 127},{0, 127},{0, 127},{0, 127},
40  {0, 127},{0, 127},{0, 127},{0, 127},{0, 127},
41  {0, 127},{0, 127},{0, 127},{0, 127},{0, 127},
42  {0, 127},{0, 127},{0, 127},{0, 127},{0, 127},
43  {0, 127},{0, 127},{0, 127},{0, 127},{0, 105},
44  {0, 93},{0, 78},{0, 63}
45  };
46 }
std::vector< std::vector< double > > lut_wg_vs_hs_me1ag
std::vector< std::vector< double > > lut_wg_vs_hs_me1a
std::vector< std::vector< double > > lut_wg_vs_hs_me1b
CSCMotherboardLUTME11::~CSCMotherboardLUTME11 ( )
inline

Definition at line 19 of file CSCUpgradeMotherboardLUT.h.

References a, EnergyCorrector::c, doesALCTCrossCLCT(), and doesWiregroupCrossStrip().

19 {}

Member Function Documentation

bool CSCMotherboardLUTME11::doesALCTCrossCLCT ( const CSCALCTDigi a,
const CSCCLCTDigi c,
int  theEndcap,
bool  gangedME1a = false 
) const

Definition at line 49 of file CSCUpgradeMotherboardLUT.cc.

References doesWiregroupCrossStrip(), CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), CSCALCTDigi::isValid(), and CSCCLCTDigi::isValid().

Referenced by ~CSCMotherboardLUTME11().

51  {
52  if ( !c.isValid() || !a.isValid() ) return false;
53  int key_hs = c.getKeyStrip();
54  int key_wg = a.getKeyWG();
55  return doesWiregroupCrossStrip(key_wg, key_hs, theEndcap, gangedME1a);
56  }
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:32
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:35
int getKeyStrip() const
Definition: CSCCLCTDigi.h:94
bool doesWiregroupCrossStrip(int wg, int keystrip, int theEndcap, bool gangedME1a=false) const
int getKeyWG() const
return key wire group
Definition: CSCALCTDigi.h:59
bool CSCMotherboardLUTME11::doesWiregroupCrossStrip ( int  wg,
int  keystrip,
int  theEndcap,
bool  gangedME1a = false 
) const

Definition at line 60 of file CSCUpgradeMotherboardLUT.cc.

References lut_wg_vs_hs_me1a, lut_wg_vs_hs_me1ag, lut_wg_vs_hs_me1b, CSCConstants::MAX_HALF_STRIP_ME1A_GANGED, CSCConstants::MAX_HALF_STRIP_ME1A_UNGANGED, and CSCConstants::MAX_HALF_STRIP_ME1B.

Referenced by doesALCTCrossCLCT(), and ~CSCMotherboardLUTME11().

62  {
63  // ME1/a half-strip starts at 128
64  if ( key_hs > CSCConstants::MAX_HALF_STRIP_ME1B )
65  {
66  if ( !gangedME1a )
67  {
68  // wrap around ME11 HS number for -z endcap
69  if (theEndcap==2) {
70  // first subtract 128
72  // flip the HS
74  // then add 128 again
76  }
77  if ( key_hs >= lut_wg_vs_hs_me1a[key_wg][0] &&
78  key_hs <= lut_wg_vs_hs_me1a[key_wg][1] ) return true;
79  return false;
80  }
81  else
82  {
83  // wrap around ME11 HS number for -z endcap
84  if (theEndcap==2) {
85  // first subtract 128
87  // flip the HS
89  // then add 128 again
91  }
92  if ( key_hs >= lut_wg_vs_hs_me1ag[key_wg][0] &&
93  key_hs <= lut_wg_vs_hs_me1ag[key_wg][1] ) return true;
94  return false;
95  }
96  }
97  // ME1/b half-strip ends at 127
98  if ( key_hs <= CSCConstants::MAX_HALF_STRIP_ME1B )
99  {
100  if (theEndcap==2) key_hs = CSCConstants::MAX_HALF_STRIP_ME1B - key_hs;
101  if ( key_hs >= lut_wg_vs_hs_me1b[key_wg][0] &&
102  key_hs <= lut_wg_vs_hs_me1b[key_wg][1] ) return true;
103  }
104  return false;
105  }
std::vector< std::vector< double > > lut_wg_vs_hs_me1ag
std::vector< std::vector< double > > lut_wg_vs_hs_me1a
std::vector< std::vector< double > > lut_wg_vs_hs_me1b

Member Data Documentation

std::vector<std::vector<double> > CSCMotherboardLUTME11::lut_wg_vs_hs_me1a
private

Definition at line 29 of file CSCUpgradeMotherboardLUT.h.

Referenced by CSCMotherboardLUTME11(), and doesWiregroupCrossStrip().

std::vector<std::vector<double> > CSCMotherboardLUTME11::lut_wg_vs_hs_me1ag
private

Definition at line 30 of file CSCUpgradeMotherboardLUT.h.

Referenced by CSCMotherboardLUTME11(), and doesWiregroupCrossStrip().

std::vector<std::vector<double> > CSCMotherboardLUTME11::lut_wg_vs_hs_me1b
private

Definition at line 34 of file CSCUpgradeMotherboardLUT.h.

Referenced by CSCMotherboardLUTME11(), and doesWiregroupCrossStrip().