12#ifndef ALICEO2_TOF_DIGITIZER_H_
13#define ALICEO2_TOF_DIGITIZER_H_
19#include "TOFSimulation/Detector.h"
39 int process(
const std::vector<HitType>* hits, std::vector<Digit>*
digits);
45 mMCTruthOutputContainer = truthcontainer;
48 std::vector<o2::dataformats::MCTruthContainer<o2::MCCompLabel>>*
getMCTruthPerTimeFrame() {
return &mMCTruthOutputContainerPerTimeFrame; }
66 Int_t
getXshift(Int_t idigit)
const {
return mXLastShift[idigit]; }
67 Int_t
getZshift(Int_t idigit)
const {
return mZLastShift[idigit]; }
72 void test(
const char* geo =
"");
73 void testFromHits(
const char* geo =
"",
const char* hits =
"AliceO2_TGeant3.tof.mc_10_event.root");
121 std::vector<o2::dataformats::MCTruthContainer<o2::MCCompLabel>> mMCTruthOutputContainerPerTimeFrame;
130 std::vector<int> mFutureIevent;
131 std::vector<int> mFutureIsource;
132 std::vector<int> mFutureItrackID;
136 CalibApi* mCalibApi =
nullptr;
138 void fillDigitsInStrip(std::vector<Strip>* strips,
o2::dataformats::MCTruthContainer<o2::tof::MCLabel>* mcTruthContainer,
int channel,
int tdc,
int tot, uint64_t nbc, UInt_t istrip, Int_t trackID, Int_t eventID, Int_t sourceID,
float geanttime = 0,
double t0 = 0.0);
140 Int_t processHit(
const HitType& hit, Double_t event_time);
142 Int_t trackID,
float geanttime = 0,
double t0 = 0.0);
144 void checkIfReuseFutureDigits();
147 float mTimeLastHit[10];
148 float mTotLastHit[10];
149 Int_t mXLastShift[10];
150 Int_t mZLastShift[10];
Class to use TOF calibration (decalibration, calibration)
Definition of a container to keep Monte Carlo truth external to simulation objects.
void setResolution(float val)
Float_t getEffX(Float_t x)
void setEffCenter(float val)
void flushOutputContainer(std::vector< Digit > &digits)
Double_t getShowerTimeSmeared(Double_t time, Float_t charge)
Int_t getXshift(Int_t idigit) const
void fillOutputContainer(std::vector< Digit > &digits)
Float_t getEffZ(Float_t z)
void setEffBoundary2(float val)
void runFullTestExample(const char *geo="")
void setMCTruthContainer(o2::dataformats::MCTruthContainer< o2::MCCompLabel > *truthcontainer)
void testFromHits(const char *geo="", const char *hits="AliceO2_TGeant3.tof.mc_10_event.root")
void setEffBoundary3(float val)
void setEffBoundary1(float val)
std::vector< o2::dataformats::MCTruthContainer< o2::MCCompLabel > > * getMCTruthPerTimeFrame()
Bool_t isFired(Float_t x, Float_t z, Float_t charge)
Double_t getDigitTimeSmeared(Double_t time, Float_t x, Float_t z, Float_t charge)
uint64_t getReadoutWindow(double timeNS) const
Float_t getTotLastHit(Int_t idigit) const
Float_t getCharge(Float_t eDep)
Float_t getTimeLastHit(Int_t idigit) const
Int_t getZshift(Int_t idigit) const
void setCalibApi(CalibApi *calibApi)
void setEventID(Int_t id)
Float_t getFractionOfCharge(Float_t x, Float_t z)
static constexpr Double_t READOUTWINDOW_INV
static constexpr Double_t BC_TIME
static constexpr Int_t OVERLAP_IN_BC
static const int MAXWINDOWS
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t0
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
FIXME: do not use data model tables.
std::vector< Digit > digits