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.
virtual InitStatus Init()
Method for task initialization.
Int_t fTrigger
Trigger value.
TClonesArray * fMappedHit
Array with raw items - input data.
Int_t fNEvents
Event counter.
TClonesArray * fPmt
Array with time items - output data.
R3BTCalPar * fTcalPar
TCAL parameter container.
virtual void FinishEvent()
A method for finish of processing of an event.
R3BNeulandTcal()
Default constructor.
Double_t fClockFreq
Clock cycle in [ns].
virtual ~R3BNeulandTcal()
Destructor.
virtual void SetParContainers()
Method for initialization of the parameter containers.
virtual void FinishTask()
Method for finish of the task execution.
virtual InitStatus ReInit()
Method for re-initialization of parameter containers in case the Run ID has changed.
virtual void Exec(Option_t *option)
Method for event loop implementation.
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