5 #ifndef ZDCANALYSIS_ZDCANALYSISTOOL_H
6 #define ZDCANALYSIS_ZDCANALYSISTOOL_H
37 void initializeDecorations();
41 void initialize80MHz();
42 void initialize40MHz();
43 void initializeTriggerEffs(
unsigned int runNumber);
49 static bool sigprocMaxFinder(
const std::vector<unsigned short>&
adc,
float deltaT,
float& amp,
float&
time,
float&
qual);
50 bool sigprocSincInterp(
const std::vector<unsigned short>&
adc,
float deltaT,
float& amp,
float&
time,
float&
qual);
52 void setEnergyCalibrations(
unsigned int runNumber);
53 void setTimeCalibrations(
unsigned int runNumber);
54 void setFADCCorrections(
unsigned int runNumber = 0);
56 float getModuleSum(
int side);
58 float getCalibModuleSum(
int side);
59 float getCalibModuleSumErr(
int side);
61 float getNLCalibModuleSum(
int side);
62 float getNLCalibModuleSumErr(
int side);
64 float getUncalibModuleSum(
int side);
65 float getUncalibModuleSumErr(
int side);
67 float getAverageTime(
int side);
68 bool sideFailed(
int side);
69 unsigned int getModuleMask();
71 double getTriggerEfficiency(
int side);
72 double getTriggerEfficiencyUncertainty(
int side);
83 std::function<
bool(
int, std::string)> msgFunction = [
this](
int messageZdcLevel,
const std::string&
message)->
bool
86 bool passesStreamOutputLevel = messageAthenaLevel >= this->
msg().level();
87 if (passesStreamOutputLevel) {
90 return passesStreamOutputLevel;
97 ATH_MSG_INFO(
"========================================================================================================================");
98 for (
int i = 0;
i < 2;
i++) {
99 for (
int j = 0; j < 4; j++) {
100 ATH_MSG_INFO(
"-------------------------------------------------------------------------------------------------------------------");
102 m_zdcDataAnalyzer->GetPulseAnalyzer(
i, j)->dumpConfiguration();
105 ATH_MSG_INFO(
"========================================================================================================================");
111 std::unique_ptr<ZDCDataAnalyzer> initializeDefault();
112 std::unique_ptr<ZDCDataAnalyzer> initializePbPb2015G4();
113 std::unique_ptr<ZDCDataAnalyzer> initializepPb2016();
114 std::unique_ptr<ZDCDataAnalyzer> initializePbPb2018();
115 std::unique_ptr<ZDCDataAnalyzer> initializeLHCf2022();
116 std::unique_ptr<ZDCDataAnalyzer> initializepp2023();
117 std::unique_ptr<ZDCDataAnalyzer> initializePbPb2023();
118 std::unique_ptr<ZDCDataAnalyzer> initializepp2024();
119 std::unique_ptr<ZDCDataAnalyzer> initializePbPb2024();
120 std::unique_ptr<ZDCDataAnalyzer> initializeOONeNe2025();
121 std::unique_ptr<ZDCDataAnalyzer> initializepO2025();
122 std::unique_ptr<ZDCDataAnalyzer> initializepO2025B();
123 std::unique_ptr<ZDCDataAnalyzer> initializeInjectorpp2024();
124 std::unique_ptr<ZDCDataAnalyzer> initializeInjectorPbPb2024();
125 std::unique_ptr<ZDCDataAnalyzer> initializeInjectorpOOONeNe2025();
126 std::unique_ptr<ZDCDataAnalyzer> initializeMonteCarloPbPb2023();
127 std::unique_ptr<ZDCDataAnalyzer> initializeFromJSON();
153 this,
"EventInfoKey",
"EventInfo",
154 "Location of the event info."};
162 bool m_combineDelay{
false};
163 bool m_doCalib{
false};
164 bool m_doTrigEff{
false};
165 bool m_doTimeCalib{
false};
166 bool m_doFADCCorr{
false};
167 bool m_doNonLinCorr{
false};
168 bool m_doFADCCorrPerSample{
false};