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};