21#include "FairRootManager.h"
22#include "FairRunAna.h"
23#include "FairRuntimeDb.h"
27#include "R3BTCalEngine.h"
28#include "R3BTCalPar.h"
31#include "RtypesCore.h"
32#include "TClonesArray.h"
34#include <fairlogger/Logger.h>
37 : FairTask(
"LandTcal", 1)
40 ,
fPmt(new TClonesArray(
"R3BNeulandPmt"))
52 : FairTask(name, iVerbose)
55 ,
fPmt(new TClonesArray(
"R3BNeulandPmt"))
78 LOG(info) <<
"R3BNeulandTcal::Init : read " <<
fTcalPar->GetNumModulePar() <<
" calibrated modules";
81 FairRootManager* mgr = FairRootManager::Instance();
84 LOG(fatal) <<
"FairRootManager not found";
93 fMappedHit =
dynamic_cast<TClonesArray*
>(mgr->GetObject(
"NeulandMappedData"));
96 LOG(fatal) <<
"Branch NeulandMappedData not found";
99 mgr->Register(
"NeulandPmt",
"Land",
fPmt, kTRUE);
106 FairRunAna* ana = FairRunAna::Instance();
107 FairRuntimeDb* rtdb = ana->GetRuntimeDb();
108 fTcalPar =
dynamic_cast<R3BTCalPar*
>(rtdb->getContainer(
"LandTCalPar"));
138 const auto channel = 0;
140 R3BTCalModulePar* par;
144 for (Int_t ihit = 0; ihit < nHits; ihit++)
159 for (Int_t iSide = 0; iSide < 2; iSide++)
164 if (!(par =
fTcalPar->GetModuleParAt(iPlane, iBar, iSide)))
166 LOG(debug) <<
"R3BNeulandTcal::Exec : Tcal par not found, barId: " << iBar <<
", side: " << iSide;
171 timeLE = par->GetTimeVFTX(tdc);
173 if (!(par =
fTcalPar->GetModuleParAt(iPlane, iBar, iSide + 2)))
175 LOG(debug) <<
"R3BNeulandTcal::Exec : Tcal par not found, barId: " << iBar <<
", side: " << iSide;
180 timeTE = par->GetTimeVFTX(tdc);
190 LOG(error) <<
"R3BNeulandTcal::Exec : error in time calibration: ch= " << channel <<
", tdc= " << tdc
191 <<
", time leading edge = " << timeLE <<
", time trailing edge = " << timeTE;
206 if (fVerbose && 0 == (
fNEvents % 1))
208 LOG(info) <<
"R3BNeulandTcal::Exec : event=" <<
fNEvents <<
" nPMTs=" <<
fNPmt;
ClassImp(R3B::Neuland::Cal2HitPar)
An analysis task to apply TCAL calibration for NeuLAND.
Int_t fNPmt
Number of produced time items per event.
Int_t fTrigger
Trigger value.
auto ReInit() -> InitStatus override
Method for re-initialization of parameter containers in case the Run ID has changed.
TClonesArray * fMappedHit
Array with raw items - input data.
Int_t fNEvents
Event counter.
TClonesArray * fPmt
Array with time items - output data.
~R3BNeulandTcal() override
Destructor.
R3BTCalPar * fTcalPar
TCAL parameter container.
void FinishEvent() override
A method for finish of processing of an event.
void SetParContainers() override
Method for initialization of the parameter containers.
R3BNeulandTcal()
Default constructor.
void FinishTask() override
Method for finish of the task execution.
Double_t fClockFreq
Clock cycle in [ns].
void Exec(Option_t *option) override
Method for event loop implementation.
auto Init() -> InitStatus override
Method for task initialization.
const Int_t & GetPlaneId() const
const Int_t & GetFineTime(int t, int e) const
const Int_t & GetBarId() const
const Int_t & GetCoarseTime(int t, int e) const