15#ifndef ALICEO2_FD3_DETECTOR_H_
16#define ALICEO2_FD3_DETECTOR_H_
24#include "TGeoManager.h"
25#include "TLorentzVector.h"
61 double endTime,
double eLoss,
int particlePdg);
65 std::vector<o2::fd3::Hit>*
getHits(Int_t iColl)
82 void Reset()
override;
96 std::vector<o2::fd3::Hit>* mHits =
nullptr;
99 TGeoVolumeAssembly* buildModuleA();
100 TGeoVolumeAssembly* buildModuleC();
102 float ringSize(
float zmod,
float eta);
104 unsigned int mNumberOfRingsA, mNumberOfRingsC, mNumberOfSectors;
105 float mDzScint, mDzPlate;
107 std::vector<float> mRingSizesA = {}, mRingSizesC = {};
109 float mEtaMaxA, mEtaMaxC, mEtaMinA, mEtaMinC;
112 bool mPlateBehindA, mFullContainer;
114 void defineSensitiveVolumes();
115 void definePassiveVolumes();
120 unsigned char mTrkStatusStart;
121 TLorentzVector mPositionStart;
122 TLorentzVector mMomentumStart;
126 template <
typename Det>
144struct UseShm<
o2::fd3::Detector> {
145 static constexpr bool value =
true;
Definition of the Detector class.
o2::fd3::Hit * addHit(int trackId, unsigned int detId, const math_utils::Point3D< float > &startPos, const math_utils::Point3D< float > &endPos, const math_utils::Vector3D< float > &startMom, double startE, double endTime, double eLoss, int particlePdg)
This method is an example of how to add your own point of type Hit to the clones array.
void InitializeO2Detector() override
void BeginPrimary() override
void FinishPrimary() override
std::vector< o2::fd3::Hit > * getHits(Int_t iColl)
void EndOfEvent() override
void ConstructGeometry() override
bool ProcessHits(FairVolume *v=nullptr) override
void PostTrack() override
GLsizei GLsizei GLchar * source
GLsizei const GLfloat * value
std::istream & operator>>(std::istream &os, Detector &source)
std::ostream & operator<<(std::ostream &os, Detector &source)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...