12#ifndef ALICEO2_FOCAL_DETECTOR_H_
13#define ALICEO2_FOCAL_DETECTOR_H_
76 Detector(Bool_t isActive, std::string geofilename =
"default");
100 Hit*
AddHit(
int trackID,
int primary,
double initialEnergy,
int detID,
o2::focal::
Hit::Subsystem_t subsystem,
101 const math_utils::
Point3D<
float>&
pos,
double time,
double energyloss);
188 int mMedSensHCal = 0;
189 int mMedSensECalPad = 0;
190 int mMedSensECalPix = 0;
195 std::unordered_map<
Hit::HitID,
unsigned int,
Hit::HitIDHasher> mHitIndexMapping;
197 std::unordered_map<
int,
int> mSuperParentsIndices;
198 std::unordered_map<
int,
Parent> mSuperParents;
199 Parent* mCurrentSuperparent;
203 Int_t mCurrentPrimaryID;
204 Int_t mCurrentParentID;
206 std::vector<
std::
string> mSensitive;
207 int mVolumeIDScintillator = -1;
209 template <typename Det>
222 static constexpr bool value =
true;
Definition of the Detector class.
FOCAL detector simulation.
bool ProcessHitsEPad(FairVolume *v=nullptr)
Processing hit creation in the ECAL Pad sensitive volume.
void addAlignableVolumesHCAL() const
~Detector() override
Destructor.
void InitializeO2Detector() override
Initializing detector.
bool ProcessHitsHCAL(FairVolume *v=nullptr)
Processing hit creation in the HCAL sensitive volume.
std::vector< Hit > * getHits(Int_t iColl) const
Get access to the hits.
virtual void CreateHCALSandwich()
void Register() override
register container with hits
Hit * AddHit(int trackID, int primary, double initialEnergy, int detID, o2::focal::Hit::Subsystem_t subsystem, const math_utils::Point3D< float > &pos, double time, double energyloss)
Add FOCAL hit.
void FinishPrimary() override
Finish current primary.
virtual void CreateHCALSpaghetti()
void ConstructGeometry() override
Detector(Bool_t isActive, std::string geofilename="default")
Main constructor.
void addAlignableVolumesECAL() const
bool ProcessHitsEPix(FairVolume *v=nullptr)
Processing hit creation in the ECAL Pixel sensitive volume.
virtual void addAlignableVolumes() const override
declare alignable volumes of detector
void CreateMaterials()
Creating detector materials for the FOCAL detector.
Hit * FindHit(int parentID, int col, int row, int layer)
Try to find hit with same cell and parent track ID.
Bool_t ProcessHits(FairVolume *v=nullptr) final
Processing hit creation in the FOCAL sensitive volume.
void EndOfEvent() final
Steps to be carried out at the end of the event.
void BeginPrimary() override
Begin primaray.
void CreateECALGeometry()
Generate ECAL geometry.
Detector()=default
Dummy constructor.
Parent * AddSuperparent(int trackID, int pdg, double energy)
Add new superparent to the container.
void Reset() final
Clean point collection.
Geometry * getGeometry(std::string name="")
Get the FOCAL geometry desciption.
friend class o2::base::DetImpl
Common FOCAL hit class for the detector simulation.
GLuint const GLchar * name
GLsizei const GLfloat * value
GLenum GLuint GLint GLint layer
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Defining DataPointCompositeObject explicitly as copiable.
Information about superparent (particle entering any FOCAL volume)
double mEnergy
Total energy.
bool mHasTrackReference
Flag indicating whether parent has a track reference.