1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCMotherboardME21GEM_h 2 #define L1Trigger_CSCTriggerPrimitives_CSCMotherboardME21GEM_h 26 typedef std::pair<unsigned int, GEMPadDigi>
GEMPadBX;
33 unsigned subsector,
unsigned chamber,
63 bool isCopad =
false,
bool first =
true);
65 bool isCopad =
false,
bool first =
true);
67 bool isCopad =
false,
bool first =
true);
69 bool isCopad =
false);
71 bool isCopad =
false);
75 bool isCopad =
false,
bool first =
true);
78 bool hasPad,
bool hasCoPad);
99 bool oldDataFormat =
false);
101 bool oldDataFormat =
true);
103 bool hasPad,
bool hasCoPad);
110 std::vector<CSCCorrelatedLCTDigi>
sortLCTsByQuality(std::vector<CSCCorrelatedLCTDigi>);
112 std::vector<CSCCorrelatedLCTDigi>
sortLCTsByGEMDPhi(std::vector<CSCCorrelatedLCTDigi>);
114 std::vector<CSCCorrelatedLCTDigi>
getLCTs();
std::vector< GEMCoPadDigi > readoutCoPads()
int deltaRoll(int wg, int roll)
std::vector< CSCCorrelatedLCTDigi > getLCTs()
GEMPadsBX matchingGEMPads(const CSCCLCTDigi &cLCT, const GEMPadsBX &pads=GEMPadsBX(), bool isCopad=false, bool first=true)
unsigned int findQualityGEM(const CSCALCTDigi &aLCT, const CSCCLCTDigi &cLCT, bool hasPad, bool hasCoPad)
std::map< int, GEMPadsBX > GEMPads
std::unique_ptr< GEMCoPadProcessor > coPadProcessor
std::map< int, std::pair< double, double > > gemRollToEtaLimits_
bool promoteALCTGEMquality_
unsigned int tmb_cross_bx_algo
const CSCGeometry * csc_g
std::vector< CSCCLCTDigi > clctV
std::vector< CSCCorrelatedLCTDigi > sortLCTsByQuality(int bx)
bool promoteCLCTGEMquality_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
int deltaPad(int hs, int pad)
bool dropLowQualityALCTsNoGEMs_
int assignGEMRoll(double eta)
void retrieveGEMPads(const GEMPadDigiCollection *pads, unsigned id)
static const double lut_wg_eta_odd[112][2]
void setCSCGeometry(const CSCGeometry *g)
set CSC and GEM geometries for the matching needs
std::pair< unsigned int, GEMPadDigi > GEMPadBX
std::vector< GEMPadBX > GEMPadsBX
bool correctLCTtimingWithGEM_
unsigned int max_me21_lcts
void correlateLCTs(CSCALCTDigi bestALCT, CSCALCTDigi secondALCT, CSCCLCTDigi bestCLCT, CSCCLCTDigi secondCLCT, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2, const GEMPadsBX &pads=GEMPadsBX(), const GEMPadsBX &copads=GEMPadsBX())
std::map< int, std::pair< double, double > > createGEMRollEtaLUT()
static const double lut_pt_vs_dphi_gemcsc[8][3]
void run(const CSCWireDigiCollection *wiredc, const CSCComparatorDigiCollection *compdc, const GEMPadDigiCollection *gemPads)
std::map< int, std::pair< int, int > > cscHsToGemPad_
std::map< int, int > gemPadToCscHs_
bool buildLCTfromALCTandGEM_
CSCCorrelatedLCTDigi allLCTs[MAX_LCT_BINS][15][2]
const GEMGeometry * gem_g
bool buildLCTfromCLCTandGEM_
std::vector< GEMCoPadDigi > gemCoPadV
std::unique_ptr< CSCAnodeLCTProcessor > alct
void printGEMTriggerPads(int minBX, int maxBx, bool iscopad=false)
std::vector< CSCALCTDigi > alctV
CSCCorrelatedLCTDigi constructLCTsGEM(const CSCALCTDigi &alct, const GEMPadDigi &gem, bool oldDataFormat=false)
bool doLCTGhostBustingWithGEMs_
std::vector< CSCCorrelatedLCTDigi > sortLCTsByGEMDPhi(int bx)
bool dropLowQualityCLCTsNoGEMs_
std::unique_ptr< CSCCathodeLCTProcessor > clct
std::vector< CSCCorrelatedLCTDigi > readoutLCTs()
void setGEMGeometry(const GEMGeometry *g)
CSCMotherboardME21GEM(unsigned endcap, unsigned station, unsigned sector, unsigned subsector, unsigned chamber, const edm::ParameterSet &conf)
bool match_earliest_clct_me21_only
bool useOldLCTDataFormat_
int maxDeltaPadCoPadEven_
void correlateLCTsGEM(CSCALCTDigi bestALCT, CSCALCTDigi secondALCT, GEMPadDigi gemPad, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2)
std::map< int, int > cscWgToGemRoll_
bool promoteALCTGEMpattern_
~CSCMotherboardME21GEM() override
static const double lut_wg_eta_even[112][2]