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
 
 ~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, and doesALCTCrossCLCT().

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 CSCCLCTDigi::getKeyStrip(), CSCALCTDigi::getKeyWG(), CSCALCTDigi::isValid(), CSCCLCTDigi::isValid(), 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 ~CSCMotherboardLUTME11().

51  {
52  if ( !c.isValid() || !a.isValid() ) return false;
53  int key_hs = c.getKeyStrip();
54  int key_wg = a.getKeyWG();
55  // ME1/a half-strip starts at 128
56  if ( key_hs > CSCConstants::MAX_HALF_STRIP_ME1B )
57  {
58  if ( !gangedME1a )
59  {
60  // wrap around ME11 HS number for -z endcap
61  if (theEndcap==2) {
62  // first subtract 128
64  // flip the HS
66  // then add 128 again
68  }
69  if ( key_hs >= lut_wg_vs_hs_me1a[key_wg][0] &&
70  key_hs <= lut_wg_vs_hs_me1a[key_wg][1] ) return true;
71  return false;
72  }
73  else
74  {
75  // wrap around ME11 HS number for -z endcap
76  if (theEndcap==2) {
77  // first subtract 128
79  // flip the HS
81  // then add 128 again
83  }
84  if ( key_hs >= lut_wg_vs_hs_me1ag[key_wg][0] &&
85  key_hs <= lut_wg_vs_hs_me1ag[key_wg][1] ) return true;
86  return false;
87  }
88  }
89  // ME1/b half-strip ends at 127
90  if ( key_hs <= CSCConstants::MAX_HALF_STRIP_ME1B )
91  {
92  if (theEndcap==2) key_hs = CSCConstants::MAX_HALF_STRIP_ME1B - key_hs;
93  if ( key_hs >= lut_wg_vs_hs_me1b[key_wg][0] &&
94  key_hs <= lut_wg_vs_hs_me1b[key_wg][1] ) return true;
95  }
96  return false;
97  }
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:30
std::vector< std::vector< double > > lut_wg_vs_hs_me1ag
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:30
std::vector< std::vector< double > > lut_wg_vs_hs_me1a
std::vector< std::vector< double > > lut_wg_vs_hs_me1b
int getKeyStrip() const
Definition: CSCCLCTDigi.h:89
int getKeyWG() const
return key wire group
Definition: CSCALCTDigi.h:57

Member Data Documentation

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

Definition at line 27 of file CSCUpgradeMotherboardLUT.h.

Referenced by CSCMotherboardLUTME11(), and doesALCTCrossCLCT().

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

Definition at line 28 of file CSCUpgradeMotherboardLUT.h.

Referenced by CSCMotherboardLUTME11(), and doesALCTCrossCLCT().

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

Definition at line 32 of file CSCUpgradeMotherboardLUT.h.

Referenced by CSCMotherboardLUTME11(), and doesALCTCrossCLCT().