1 #ifndef HcalSimAlgos_HcalTriggerPrimitiveAlgo_h
2 #define HcalSimAlgos_HcalTriggerPrimitiveAlgo_h
30 const std::vector<double>&
w,
33 const std::vector<uint32_t>& FG_HF_thresholds,
36 int numberOfPresamples,
37 int numberOfFilterPresamplesHBQIE11,
38 int numberOfFilterPresamplesHEQIE11,
41 bool useTDCInMinBiasBits,
42 uint32_t minSignalThreshold = 0,
43 uint32_t PMT_NoiseThreshold = 0);
46 template <
typename... Digis>
54 const Digis&... digis);
56 template <
typename T,
typename... Args>
64 for (
const auto& digi : collection) {
71 for (
auto i = collection.
begin();
i != collection.
end(); ++
i) {
116 std::vector<bool> sample_saturation,
124 const int HF_LUMI_SHIFT,
129 const int HF_LUMI_SHIFT,
168 typedef std::map<HcalTrigTowerDetId, IntegerCaloSamples>
SumMap;
171 typedef std::map<HcalTrigTowerDetId, std::vector<bool>>
SatMap;
180 typedef std::map<HcalTrigTowerDetId, std::map<uint32_t, HFDetails>>
HFDetailMap;
190 typedef std::map<HcalTrigTowerDetId, std::map<uint32_t, std::array<HFUpgradeDetails, 4>>>
HFUpgradeDetailMap;
210 typedef std::map<HcalTrigTowerDetId, std::vector<bool>>
FGbitMap;
251 template <
typename... Digis>
259 const Digis&... digis) {
293 if (detId.version() == 0) {
295 }
else if (detId.version() == 1) {
312 SatMap::iterator item_sat =
theSatMap.find(detId);
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)
std::map< uint32_t, std::vector< bool > > TowerMapVeto
std::vector< uint32_t > FG_HF_thresholds_
HFUpgradeDetailMap theHFUpgradeDetailMap
bool passTDC(const QIE10DataFrame &digi, int ts) const
void analyzeHF(IntegerCaloSamples &samples, HcalTriggerPrimitiveDigi &result, const int hf_lumi_shift)
bool useTDCInMinBiasBits_
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::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
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_
void analyzeHFQIE10(const IntegerCaloSamples &SAMPLES, HcalTriggerPrimitiveDigi &result, const int HF_LUMI_SHIFT, const HcalFeatureBit *HCALFEM)
static const int LAST_FINEGRAIN_TOWER
bool exists(std::string const ¶meterName) const
checks if a parameter exists
static const int QIE10_LINEARIZATION_ET
void push_back(T const &t)
const HcalTPGCompressor * outcoder_
static const int LAST_FINEGRAIN_DEPTH
std::map< HcalTrigTowerDetId, FGUpgradeContainer > FGUpgradeMap
void addFG(const HcalTrigTowerDetId &id, std::vector< bool > &msb)
const_iterator begin() const
The iterator returned can not safely be used across threads.
static const int QIE8_LUT_BITMASK
bool needLegacyFG(const HcalTrigTowerDetId &id) const
IntegerCaloSamples long_fiber
static const int HBHE_OVERLAP_TOWER
TowerMapFGSum theTowerMapFGSum
std::vector< std::bitset< 2 > > fgbits
bool validChannel(const QIE10DataFrame &digi, int ts) const
uint32_t minSignalThreshold_
static const int FIRST_FINEGRAIN_TOWER
std::vector< IntegerCaloSamples > SumFGContainer
std::map< HcalTrigTowerDetId, SumFGContainer > TowerMapFGSum
const HcalTrigTowerGeometry * theTrigTowerGeometry
const HcalDbService * conditions_
static const int QIE11_LINEARIZATION_ET
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 setNumFilterPresamplesHEQIE11(int presamples)
int getFGVersionHBHE() const
get FineGrain Algorithm Version for HBHE
std::vector< double > weights_
int numberOfPresamplesHF_
IntegerCaloSamples short_fiber
void runZS(HcalTrigPrimDigiCollection &tp)
static const int QIE10_LUT_BITMASK
bool needUpgradeID(const HcalTrigTowerDetId &id, int depth) const
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
std::array< std::array< double, 2 >, 29 > weightsQIE11_
void setNCTScaleShift(int)
void addDigis(const T &collection, const Args &...digis)
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_
bool validUpgradeFG(const HcalTrigTowerDetId &id, int depth) const
static const int QIE11_MAX_LINEARIZATION_ET
T getParameter(std::string const &) const
std::map< HcalTrigTowerDetId, IntegerCaloSamples > SumMap
const HcalTPParameters * getHcalTPParameters() const
tuple numberOfPresamplesHF
void addUpgradeFG(const HcalTrigTowerDetId &id, int depth, const std::vector< std::bitset< 2 >> &bits)
const_iterator end() const
HcalFeatureBit * LongvrsShortCut
FGUpgradeTDCMap fgUpgradeTDCMap_
std::map< HcalTrigTowerDetId, std::map< uint32_t, std::array< HFUpgradeDetails, 4 > > > HFUpgradeDetailMap
const HcaluLUTTPGCoder * incoder_
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, bool useTDCInMinBiasBits, uint32_t minSignalThreshold=0, uint32_t PMT_NoiseThreshold=0)
void setNumFilterPresamplesHBQIE11(int presamples)
static const int QIE8_LINEARIZATION_ET
HFDetailMap theHFDetailMap
IntegerCaloSamples samples
void setWeightQIE11(int aieta, double weight)
void setRCTScaleShift(int)
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)
const_reference back() const
void setFixSaturationFlag(bool fix_saturation)
int numberOfFilterPresamplesHBQIE11_
std::vector< bool > validity
int firstHFTower(int version) const