1 #ifndef HcalSimAlgos_HcalTriggerPrimitiveAlgo_h 2 #define HcalSimAlgos_HcalTriggerPrimitiveAlgo_h 30 const std::vector<double>&
w,
41 int numberOfSamplesZDC,
42 int numberOfPresamplesZDC,
44 uint32_t minSignalThreshold = 0,
45 uint32_t PMT_NoiseThreshold = 0);
48 template <
typename... Digis>
56 const Digis&... digis);
58 template <
typename T,
typename... Args>
121 std::vector<bool> sample_saturation,
129 const int HF_LUMI_SHIFT,
134 const int HF_LUMI_SHIFT,
178 typedef std::map<HcalTrigTowerDetId, IntegerCaloSamples>
SumMap;
181 typedef std::map<HcalTrigTowerDetId, std::vector<bool>>
SatMap;
190 typedef std::map<HcalTrigTowerDetId, std::map<uint32_t, HFDetails>>
HFDetailMap;
200 typedef std::map<HcalTrigTowerDetId, std::map<uint32_t, std::array<HFUpgradeDetails, 4>>>
HFUpgradeDetailMap;
220 typedef std::map<HcalTrigTowerDetId, std::vector<bool>>
FGbitMap;
262 template <
typename... Digis>
270 const Digis&... digis) {
304 if (
detId.version() == 0) {
306 }
else if (
detId.version() == 1) {
bool validUpgradeFG(const HcalTrigTowerDetId &id, int depth) const
void addUpgradeTDCFG(const HcalTrigTowerDetId &id, const QIE11DataFrame &frame)
void analyze(IntegerCaloSamples &samples, HcalTriggerPrimitiveDigi &result)
adds the actual digis
void runFEFormatError(const FEDRawDataCollection *rawraw, const HcalElectronicsMap *emap, HcalTrigPrimDigiCollection &result)
T getParameter(std::string const &) const
std::map< uint32_t, std::vector< bool > > TowerMapVeto
std::vector< uint32_t > FG_HF_thresholds_
HFUpgradeDetailMap theHFUpgradeDetailMap
int getFGVersionHBHE() const
get FineGrain Algorithm Version for HBHE
void analyzeHF(IntegerCaloSamples &samples, HcalTriggerPrimitiveDigi &result, const int hf_lumi_shift)
bool useTDCInMinBiasBits_
std::map< HcalTrigTowerDetId, FGUpgradeTDCContainer > FGUpgradeTDCMap
static const int QIE10_MAX_LINEARIZATION_ET
void analyzeHF2016(const IntegerCaloSamples &SAMPLES, HcalTriggerPrimitiveDigi &result, const int HF_LUMI_SHIFT, const HcalFeatureBit *HCALFEM)
static const int QIE11_LUT_BITMASK
static const int FIRST_DEPTH7_TOWER
int peak_finder_algorithm_
bool exists(std::string const ¶meterName) const
checks if a parameter exists
void analyzeHFQIE10(const IntegerCaloSamples &SAMPLES, HcalTriggerPrimitiveDigi &result, const int HF_LUMI_SHIFT, const HcalFeatureBit *HCALFEM)
static const int LAST_FINEGRAIN_TOWER
bool needLegacyFG(const HcalTrigTowerDetId &id) const
static const int QIE10_LINEARIZATION_ET
const HcalTPGCompressor * outcoder_
static const int LAST_FINEGRAIN_DEPTH
std::map< HcalTrigTowerDetId, FGUpgradeContainer > FGUpgradeMap
void addFG(const HcalTrigTowerDetId &id, std::vector< bool > &msb)
static const int QIE8_LUT_BITMASK
void setCodedVetoThresholds(const edm::ParameterSet &codedVetoThresholds)
IntegerCaloSamples long_fiber
static const int QIE10_ZDC_MAX_LINEARIZATION_ET
static const int HBHE_OVERLAP_TOWER
std::array< std::array< int, 2 >, 29 > weightsQIE11_
int numberOfPresamplesZDC_
numberOfFilterPresamplesHEQIE11
TowerMapFGSum theTowerMapFGSum
std::vector< std::bitset< 2 > > fgbits
uint32_t minSignalThreshold_
int firstHFTower(int version) const
static const int FIRST_FINEGRAIN_TOWER
std::vector< IntegerCaloSamples > SumFGContainer
std::array< int, 29 > codedVetoThresholds_
std::map< HcalTrigTowerDetId, SumFGContainer > TowerMapFGSum
const HcalTrigTowerGeometry * theTrigTowerGeometry
const HcalDbService * conditions_
weightsQIE11
hardware algo
numberOfFilterPresamplesHBQIE11
static const int QIE11_LINEARIZATION_ET
void setWeightQIE11(int aieta, int weight)
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
bool needUpgradeID(const HcalTrigTowerDetId &id, int depth) const
void setNumFilterPresamplesHEQIE11(int presamples)
HcalTriggerPrimitiveAlgo(bool pf, const std::vector< double > &w, int latency, uint32_t FG_threshold, const std::vector< uint32_t > &FG_HF_thresholds, uint32_t ZS_threshold, int numberOfSamples, int numberOfPresamples, int numberOfFilterPresamplesHBQIE11, int numberOfFilterPresamplesHEQIE11, int numberOfSamplesHF, int numberOfPresamplesHF, int numberOfSamplesZDC, int numberOfPresamplesZDC, bool useTDCInMinBiasBits, uint32_t minSignalThreshold=0, uint32_t PMT_NoiseThreshold=0)
std::vector< double > weights_
int numberOfPresamplesHF_
const HcalTPParameters * getHcalTPParameters() const
IntegerCaloSamples short_fiber
void setCodedVetoThreshold(int aieta, int codedVetoThreshold)
void runZS(HcalTrigPrimDigiCollection &tp)
static const int QIE10_LUT_BITMASK
void analyzeQIE11(IntegerCaloSamples &samples, std::vector< bool > sample_saturation, HcalTriggerPrimitiveDigi &result, const HcalFinegrainBit &fg_algo)
std::map< HcalTrigTowerDetId, std::vector< bool > > SatMap
std::map< HcalTrigTowerDetId, std::vector< bool > > FGbitMap
std::vector< HcalFinegrainBit::TowerTDC > FGUpgradeTDCContainer
std::vector< HcalFinegrainBit::Tower > FGUpgradeContainer
void run(const HcalTPGCoder *incoder, const HcalTPGCompressor *outcoder, const HcalDbService *conditions, HcalTrigPrimDigiCollection &result, const HcalTrigTowerGeometry *trigTowerGeometry, float rctlsb, const HcalFeatureBit *LongvrsShortCut, const Digis &... digis)
void setNCTScaleShift(int)
void addDigis(const T &collection)
DecomposeProduct< arg, typename Div::arg > D
uint32_t override_adc_hf_value_
uint32_t PMT_NoiseThreshold_
unsigned long long override_tdc_hf_value_
static const int QIE11_MAX_LINEARIZATION_ET
std::map< HcalTrigTowerDetId, IntegerCaloSamples > SumMap
void addDigis(const T &collection, const Args &... digis)
void addUpgradeFG(const HcalTrigTowerDetId &id, int depth, const std::vector< std::bitset< 2 >> &bits)
HcalFeatureBit * LongvrsShortCut
FGUpgradeTDCMap fgUpgradeTDCMap_
std::map< HcalTrigTowerDetId, std::map< uint32_t, std::array< HFUpgradeDetails, 4 > > > HFUpgradeDetailMap
const HcaluLUTTPGCoder * incoder_
void setNumFilterPresamplesHBQIE11(int presamples)
static const int QIE8_LINEARIZATION_ET
HFDetailMap theHFDetailMap
IntegerCaloSamples samples
bool passTDC(const QIE10DataFrame &digi, int ts) const
codedVetoThresholds
threshold for setting TP zero suppression
bool validChannel(const QIE10DataFrame &digi, int ts) const
void setRCTScaleShift(int)
void analyzeZDC(IntegerCaloSamples &samples, HcalTriggerPrimitiveDigi &result)
int numberOfFilterPresamplesHEQIE11_
edm::ParameterSet override_parameters_
FGUpgradeMap fgUpgradeMap_
void addSignal(const HBHEDataFrame &frame)
adds the signal to the map
std::map< HcalTrigTowerDetId, std::map< uint32_t, HFDetails > > HFDetailMap
void setUpgradeFlags(bool hb, bool he, bool hf)
void addDigis(const HcalDataFrameContainer< D > &collection)
std::vector< bool > passTDC
void overrideParameters(const edm::ParameterSet &ps)
void setWeightsQIE11(const edm::ParameterSet &weightsQIE11)
~HcalTriggerPrimitiveAlgo()
void setPeakFinderAlgorithm(int algo)
void setFixSaturationFlag(bool fix_saturation)
int numberOfFilterPresamplesHBQIE11_
std::vector< bool > validity