Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
#include "DataFormats/CSCDigi/interface/CSCConstants.h"
#include "EventFilter/CSCRawToDigi/interface/CSCDigiToRawAccept.h"

CSCDetId CSCDigiToRawAccept::chamberID(const CSCDetId& cscDetId) {
  CSCDetId chamberId = cscDetId.chamberId();
  if (chamberId.ring() == 4) {
    chamberId = CSCDetId(chamberId.endcap(), chamberId.station(), 1, chamberId.chamber(), 0);
  }
  return chamberId;
}

// older function for pretriggers BX objects
bool CSCDigiToRawAccept::accept(
    const CSCDetId& cscId, const CSCCLCTPreTriggerCollection& lcts, int bxMin, int bxMax, int nominalBX) {
  if (bxMin == -999)
    return true;
  CSCDetId chamberId = chamberID(cscId);
  CSCCLCTPreTriggerCollection::Range lctRange = lcts.get(chamberId);
  bool result = false;
  for (CSCCLCTPreTriggerCollection::const_iterator lctItr = lctRange.first; lctItr != lctRange.second; ++lctItr) {
    int bx = *lctItr - nominalBX;
    if (bx >= bxMin && bx <= bxMax) {
      result = true;
      break;
    }
  }
  return result;
}

bool CSCDigiToRawAccept::accept(const CSCDetId& cscId,
                                const CSCCLCTPreTriggerDigiCollection& lcts,
                                int bxMin,
                                int bxMax,
                                int nominalBX,
                                std::vector<bool>& preTriggerInCFEB) {
  if (bxMin == -999)
    return true;

  bool atLeastOnePreTrigger = false;

  CSCDetId chamberId = chamberID(cscId);
  CSCCLCTPreTriggerDigiCollection::Range lctRange = lcts.get(chamberId);
  for (CSCCLCTPreTriggerDigiCollection::const_iterator lctItr = lctRange.first; lctItr != lctRange.second; ++lctItr) {
    int bx = lctItr->getBX() - nominalBX;
    if (bx >= bxMin && bx <= bxMax) {
      atLeastOnePreTrigger = true;
      // save the location of all pretriggers
      preTriggerInCFEB[lctItr->getCFEB()] = true;
    }
  }
  return atLeastOnePreTrigger;
}