5#ifndef TILECALIBALG_TILELASERTIMINGTOOL_H
6#define TILECALIBALG_TILELASERTIMINGTOOL_H
34#include "GaudiKernel/ToolHandle.h"
59#define NDIODES_LASER1 4
75#define TileLaserTimingMon
88 virtual StatusCode
execute()
override;
91 virtual StatusCode
finalize()
override;
100 PMTData(
const std::string &
id);
106#ifdef TileLaserTimingMon
112#ifdef TileLaserTimingPMT0Mon
114 TH1F TimeDiffHistoHigh;
116 TH1F TimeDiffHistoLow;
119#ifdef TileLaserTimingMonPulse
120 TProfile pulseShapeHigh;
121 TProfile pulseShapeLow;
130#ifdef TileLaserTimingPMT0
132 double dtimeNoCFCorr;
142 void Add(
float time);
165#ifdef TileLaserTimingMon
206#ifdef TileLaserTimingPMT0Mon
222#ifdef TileLaserTimingMon
241 std::ostringstream sout;
242 sout << ros <<
'_' << drawer;
250 "EventInfo",
"EventInfo",
"EventInfo key"};
252 "TileRawChannelContainer",
"TileRawChannelFit",
"Tile raw channel container"};
254 "TileDigitsContainer",
"TileDigitsCnt",
"Tile digits container"};
260 "TileCondToolTiming",
"TileCondToolTiming",
"Tile timing tool"};
288#ifdef TileLaserTimingMonPulse
290 TH1F* m_h1_time_check;
291 TH2F* m_h2_time_check;
293 TProfile* m_PulseShapeHigh;
294 TProfile* m_PulseShapeLow;
304 if (
m_cabling->channel2hole(ros, chan) < 0)
return false;
312 return (abs(
m_cabling->channel2hole(ros, chan)) - 1);
316 return ros == 1 || ros == 2;
320 return ros == 3 || ros == 4;
346 void fitGauss(TH1F &hi,
float &p1,
float &p2,
float &p1_err);
352 void fitGauss2(TH1F &hi,
float &p1,
float &p2,
float &
chi2,
float &p1_err,
float w1,
float w2);
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
Helper class for TileCal online (hardware) identifiers.
double chi2(TH1 *h0, TH1 *h1)
static std::vector< std::string > rootfile