|
|
Go to the documentation of this file.
180 for (
const auto&
p : alctClusters) {
181 for (
const auto&
q : clctClusters) {
199 unsigned deltaWG(
station_ == 1 ? 10 : 20);
231 unsigned halfStripCut;
255 return halfStripDiff <= halfStripCut;
265 uint16_t baseSlope = 0;
270 int clctSlope =
pow(-1, clct.
getBend()) * baseSlope;
273 if (
cl.isCoincidence()
or cl.id().layer() == 1) {
274 key_es =
cl.layer1_middle_es();
276 key_es =
cl.layer1_middle_es_me1a();
284 else if (
cl.id().layer() == 2) {
285 key_es =
cl.layer2_middle_es();
287 key_es =
cl.layer2_middle_es_me1a();
296 edm::LogWarning(
"CSCGEMMatcher") <<
"cluster.id().layer =" <<
cl.id().layer() <<
" out of acceptable range 1-2!";
319 for (
const auto&
p : alctClusters) {
320 for (
const auto&
q : clctClusters) {
382 if (!clustersBXLoc.empty())
383 best = clustersBXLoc[0];
397 if (!clustersBXLoc.empty())
398 best = clustersBXLoc[0];
410 if (!clustersBXLoc.empty())
411 best = clustersBXLoc[0];
416 std::vector<std::vector<uint16_t>> CLCTHitMatrix = clct.
getHits();
417 int CLCTHits[6] = {-1, -1, -1, -1, -1, -1};
430 float MinMaxPairDifferences[2] = {999., -999.};
431 for (
unsigned First = 0; First < 5; ++First) {
433 if (CLCTHits[First] == -1)
435 for (
unsigned Second = First + 1; Second < 6; ++Second) {
437 if (CLCTHits[Second] == -1)
439 float PairDifference = (CLCTHits[First] - CLCTHits[Second]) / (
float)(Second - First);
440 if (PairDifference < MinMaxPairDifferences[0])
441 MinMaxPairDifferences[0] = PairDifference;
442 if (PairDifference > MinMaxPairDifferences[1])
443 MinMaxPairDifferences[1] = PairDifference;
448 uint16_t cosi =
std::ceil(
std::abs(MinMaxPairDifferences[1] - MinMaxPairDifferences[0]));
459 else if (cosi == 2) {
466 else if (cosi == 3) {
480 int SlopeSign = cscSlope /
std::abs(cscSlope);
485 if (isL1orCoincidence)
490 if (isL1orCoincidence)
498 if (isL1orCoincidence)
503 if (isL1orCoincidence)
509 return std::round(SlopeShift * SlopeSign *
endcap_);
void bestClusterBXLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalCluster &best) const
uint16_t getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_2to1_L1_ME11_even_
constexpr int layer() const
int CSCGEMSlopeCorrector(const bool isL1orCopad, const int cscSlope) const
unsigned maxDeltaBXCLCTGEM_
uint16_t mitigatedSlopeByConsistency(const CSCCLCTDigi &clct) const
uint16_t getKeyStripME1a(int n=2) const
std::unique_ptr< CSCLUTReader > gem_csc_slope_corr_L1_ME11_even_
def window(xmin, xmax, ymin, ymax, x=0, y=0, width=100, height=100, xlogbase=None, ylogbase=None, minusInfinity=-1000, flipx=False, flipy=True)
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME21_odd_
unsigned maxDeltaBXALCTGEM_
void matchingClustersBXLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &selected) const
std::unique_ptr< CSCLUTReader > gem_csc_slope_corr_L2_ME11_even_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME21_even_
std::vector< std::string > gemCscSlopeCorrectionFiles_
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME1b_even_
uint16_t getKeyStrip(const uint16_t n=2) const
Log< level::Warning, false > LogWarning
std::vector< std::string > gemCscSlopeCosiCorrectionFiles_
unsigned maxDeltaHsEvenME1a_
CSCGEMMatcher(int endcap, unsigned station, unsigned chamber, const edm::ParameterSet &tmbParams, const edm::ParameterSet &luts)
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME21_even_
uint16_t getKeyWG() const
return key wire group
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME1a_even_
constexpr int32_t ceil(float num)
std::vector< std::string > gemCscSlopeCosiFiles_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_corr_L1_ME11_odd_
bool matchedClusterLocHS(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_corr_L1_ME11_even_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_corr_L2_ME11_even_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME1b_odd_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_corr_L2_ME11_odd_
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME21_odd_
constexpr std::array< uint8_t, layerIndexSize > layer
unsigned calculateGEMCSCBending(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
bool isMatched(TrackingRecHit const &hit)
static int position[264][3]
bool isValid() const
check CLCT validity (1 - valid CLCT)
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_3to1_L1_ME11_even_
bool mitigateSlopeByCosi_
std::vector< std::string > esDiffToSlopeME1aFiles_
uint16_t getSlope() const
return the slope
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME1b_odd_
uint16_t getKeyStrip(int n=2) const
uint16_t getBX() const
return BX
bool matchedClusterLocES(const CSCCLCTDigi &clct, const GEMInternalCluster &cluster) const
std::unique_ptr< CSCLUTReader > gem_csc_slope_corr_L2_ME11_odd_
bool assign_gem_csc_bending_
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_2to1_L1_ME11_odd_
void matchingClustersLoc(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &selected) const
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME1a_even_
unsigned maxDeltaHsOddME1a_
void matchingClustersBX(const CSCALCTDigi &alct, const GEMInternalClusters &clusters, GEMInternalClusters &selected) const
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< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
T getParameter(std::string const &) const
bool isValid() const
check ALCT validity (1 - valid ALCT)
Power< A, B >::type pow(const A &a, const B &b)
Abs< T >::type abs(const T &t)
std::vector< std::string > esDiffToSlopeME21Files_
std::unique_ptr< CSCLUTReader > es_diff_slope_L2_ME1a_odd_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME1b_even_
static const double slope[3]
std::unique_ptr< CSCLUTReader > gem_csc_slope_cosi_3to1_L1_ME11_odd_
std::vector< GEMInternalCluster > GEMInternalClusters
const ComparatorContainer & getHits() const
std::vector< std::string > esDiffToSlopeME1bFiles_
std::unique_ptr< CSCLUTReader > es_diff_slope_L1_ME1a_odd_
std::unique_ptr< CSCLUTReader > gem_csc_slope_corr_L1_ME11_odd_