1 #ifndef L1Trigger_CSCTriggerPrimitives_CSCMotherboardME21GEM_h
2 #define L1Trigger_CSCTriggerPrimitives_CSCMotherboardME21GEM_h
25 typedef std::pair<unsigned int, const GEMPadDigi*>
GEMPadBX;
32 unsigned subsector,
unsigned chamber,
66 bool isCopad =
false,
bool first =
true);
68 bool isCopad =
false,
bool first =
true);
70 bool isCopad =
false,
bool first =
true);
73 bool hasPad,
bool hasCoPad);
96 bool oldDataFormat =
false);
98 bool oldDataFormat =
true);
100 bool hasPad,
bool hasCoPad);
104 std::vector<CSCCorrelatedLCTDigi>
sortLCTsByQuality(std::vector<CSCCorrelatedLCTDigi>);
106 std::vector<CSCCorrelatedLCTDigi>
sortLCTsByGEMDPhi(std::vector<CSCCorrelatedLCTDigi>);
108 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::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)
double gem_match_delta_phi_odd
GEM matching dphi and deta.
bool dropLowQualityALCTsNoGEMs_
int assignGEMRoll(double eta)
void retrieveGEMPads(const GEMPadDigiCollection *pads, unsigned id)
static const double lut_wg_eta_odd[112][2]
double gem_match_delta_eta
void setCSCGeometry(const CSCGeometry *g)
set CSC and GEM geometries for the matching needs
bool do_gem_matching
Do GEM matching?
std::vector< GEMPadBX > GEMPadsBX
bool correctLCTtimingWithGEM_
double gem_match_min_eta
min eta of LCT for which we require GEM match (we don't throw out LCTs below this min eta) ...
std::pair< unsigned int, const GEMPadDigi * > GEMPadBX
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()
double gem_match_delta_phi_even
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]
int gem_match_delta_bx
delta BX for GEM pads matching
const GEMGeometry * gem_g
bool buildLCTfromCLCTandGEM_
std::vector< GEMCoPadDigi > gemCoPadV
std::unique_ptr< CSCAnodeLCTProcessor > alct
void buildCoincidencePads(const GEMPadDigiCollection *out_pads, GEMCoPadDigiCollection &out_co_pads, CSCDetId csc_id)
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)
void retrieveGEMCoPads(const GEMCoPadDigiCollection *pads, unsigned id)
bool match_earliest_clct_me21_only
bool useOldLCTDataFormat_
void correlateLCTsGEM(CSCALCTDigi bestALCT, CSCALCTDigi secondALCT, GEMPadDigi gemPad, CSCCorrelatedLCTDigi &lct1, CSCCorrelatedLCTDigi &lct2)
std::map< int, int > cscWgToGemRoll_
bool gem_clear_nomatch_lcts
whether to throw out GEM-fiducial LCTs that have no gem match
bool promoteALCTGEMpattern_
static const double lut_wg_eta_even[112][2]