13 #ifndef L1TRIGGERTOWERTOOL_H
14 #define L1TRIGGERTOWERTOOL_H
19 #include "GaudiKernel/IIncidentListener.h"
20 #include "GaudiKernel/ToolHandle.h"
21 #include "GaudiKernel/ServiceHandle.h"
42 class IL1CaloMappingTool;
43 class IL1CaloTTIdTools;
44 class IL1DynamicPedestalProvider;
72 virtual void handle(
const Incident&);
77 virtual void process(
const std::vector<int> &digits,
79 std::vector<int> &
et, std::vector<int> &bcidResults,
80 std::vector<int> &bcidDecisions,
bool useJepLut =
true);
83 std::vector<int> &
et, std::vector<int> &bcidResults,
84 std::vector<int> &bcidDecisions,
bool useJepLut =
true);
86 virtual void simulateChannel(
const xAOD::TriggerTower&
tt, std::vector<int>& outCpLut, std::vector<int>& outJepLut, std::vector<int>& bcidResults, std::vector<int>& bcidDecisions);
88 virtual void pedestalCorrection(std::vector<int>& firInOut,
int firPed,
int iElement,
int layer,
89 int bcid,
float mu, std::vector<int_least16_t>& correctionOut);
91 virtual void fir(
const std::vector<int> &digits,
const std::vector<int> &firCoeffs, std::vector<int> &
output);
93 virtual void dropBits(
const std::vector<int> &fir,
unsigned int first, std::vector<int> &
output);
95 virtual void etRange(
const std::vector<int> &
et,
int energyLow,
int energyHigh, std::vector<int> &
output);
97 virtual void peakBcid(
const std::vector<int> &fir,
unsigned int strategy, std::vector<int> &
output);
99 virtual void satBcid(
const std::vector<int> &digits,
int satLow,
int satHigh,
int satLevel, std::vector<int> &
output);
101 virtual void bcid(
const std::vector<int> &fir,
const std::vector<int> &digits,
unsigned int strategy,
int satLow,
int satHigh,
int satLevel, std::vector<int> &
output);
102 virtual void bcid(
const std::vector<int> &fir,
const std::vector<int> &lutInput,
const std::vector<int> &digits,
int energyLow,
int energyHigh,
int decisionSource, std::vector<unsigned int> &decisionConditions,
103 unsigned int strategy,
int satLow,
int satHigh,
int satLevel, std::vector<int> &
result, std::vector<int> &decision);
106 virtual void bcidDecision(
const std::vector<int> &bcidResults,
const std::vector<int> &
range,
const std::vector<unsigned int> &
mask, std::vector<int> &
output);
111 virtual void nonLinearLut(
const std::vector<int> &fir,
int slope,
int offset,
int cut,
int scale,
short par1,
short par2,
short par3,
short par4,
bool disabled, std::vector<int> &
output);
114 virtual void bcidParams(
const L1CaloCoolChannelId&
channelId,
int &energyLow,
int &energyHigh,
int &decisionSource, std::vector<unsigned int> &decisionConditions,
115 unsigned int &peakFinderStrategy,
int &satLow,
int &satHigh,
int &satLevel);
128 virtual void setDebug(
bool debug);
136 template <
typename T>
137 void printVec(
const std::vector<T>&
vec);
142 bool m_debug =
false;
182 {
this,
"EventInfoKey",
"EventInfo",
"" };
187 static const int s_saturationValue = 255;
188 static const int s_maxTowers = 7168;
189 static const int m_nBcid = 350;