Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
1481922
basic geometry and data format for new detector
pkurash Sep 2, 2024
07dc65a
Merge branch 'AliceO2Group:dev' into new-detector3
pkurash Sep 2, 2024
c417fcb
fixed geometry and json
pkurash Sep 3, 2024
58436cd
Merge branch 'new-detector3' of github.com:pkurash/AliceO2 into new-d…
pkurash Sep 3, 2024
44bef8c
fixed hits
pkurash Sep 3, 2024
deadde8
updated geometry and detector source code
pkurash Sep 3, 2024
e77714d
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 4, 2024
dd8656e
updated geometry and detector source code
pkurash Sep 3, 2024
ad83fef
Merge branch 'new-detector4' of github.com:pkurash/AliceO2 into new-d…
pkurash Sep 4, 2024
73d3a4a
minor fixes
pkurash Sep 6, 2024
9c4883c
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 7, 2024
605bf80
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 9, 2024
f500ae8
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 11, 2024
863ff24
sensitive volumes
pkurash Sep 7, 2024
69019f6
geometry update
pkurash Sep 12, 2024
84943c2
geometry update
pkurash Sep 12, 2024
d04a89c
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 14, 2024
7c92e44
enable hits
pkurash Sep 16, 2024
2b00551
enable hits
pkurash Sep 16, 2024
c070c3f
enable hits
pkurash Sep 16, 2024
1ea137b
fix channel ids
pkurash Sep 18, 2024
340cf47
More flexible confgurable parameters
pkurash Sep 18, 2024
f77b1c2
More flexible confgurable parameters
pkurash Sep 18, 2024
cddc156
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 18, 2024
63bff65
update parameters and geometry
pkurash Sep 23, 2024
9750bf6
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 28, 2024
7c9bb95
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 1, 2024
266c9a4
fixed ring sizes
pkurash Oct 6, 2024
5d36321
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 6, 2024
752d06a
Merge branch 'new-detector4' of github.com:pkurash/AliceO2 into new-d…
pkurash Oct 6, 2024
358535a
merge conflict
pkurash Oct 10, 2024
70ab460
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 10, 2024
f3c1995
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 10, 2024
4042468
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 11, 2024
0e41796
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 14, 2024
64aacfc
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 15, 2024
a4b7469
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 22, 2024
d0a2026
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 29, 2024
5f54923
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Nov 6, 2024
87ed532
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Nov 18, 2024
55e7b74
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Nov 27, 2024
17cab7b
GPU
pkurash Nov 6, 2024
6cbbc4c
fix conflicts
pkurash Nov 6, 2024
ca61de3
resolve conflicts
pkurash Nov 6, 2024
2955b51
head
pkurash Nov 27, 2024
39e68ad
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Dec 3, 2024
ddb07fe
GPU
pkurash Oct 15, 2024
74d9138
added Constants.h to store constants
pkurash Dec 3, 2024
8f06eeb
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Dec 13, 2024
2ead4be
Adding Constants.h and correcting formatting issues
pkurash Dec 13, 2024
0b61e19
Adding Constants.h and correcting formatting issues
pkurash Dec 13, 2024
0ab8a28
Adding Constants.h and correcting formatting issues
pkurash Dec 13, 2024
6920911
Adding Constants.h and correcting formatting issues
pkurash Dec 13, 2024
df6da1c
Adding Constants.h and correcting formatting issues
pkurash Dec 13, 2024
76eaa66
Adding Constants.h and correcting formatting issues
pkurash Dec 13, 2024
49b8490
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Dec 16, 2024
643e50a
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Dec 21, 2024
327a095
created new namespace
pkurash Dec 21, 2024
be15827
created new namespace
pkurash Dec 21, 2024
2b8a26e
created new namespace
pkurash Dec 21, 2024
d79cf33
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Dec 24, 2024
fe0e9e3
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jan 22, 2025
a38641e
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jan 27, 2025
fbf4595
change name of the detector
pkurash Jan 27, 2025
c7bf68d
change name of the detector
pkurash Jan 27, 2025
e4cee5d
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jan 29, 2025
e02c8b4
check errors
pkurash Jan 29, 2025
a37a782
check errors
pkurash Jan 29, 2025
75e5611
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jan 31, 2025
96ad811
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Feb 2, 2025
dcef291
Flexible ring radii, a new Boolean switch for module A, module covera…
pkurash Feb 2, 2025
f27e878
correct default number of ring of A side
pkurash Feb 3, 2025
c19814f
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Feb 4, 2025
afc6b39
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Feb 8, 2025
f52a170
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Feb 10, 2025
78555d8
Modified default parameters
pkurash Feb 10, 2025
ca2c0fb
Hits from charged tracks only
pkurash Feb 10, 2025
bf7b954
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Feb 11, 2025
e2b6b28
Fixed hit merging
pkurash Feb 11, 2025
8911e66
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Feb 14, 2025
a12df3e
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Feb 19, 2025
96c6826
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Feb 27, 2025
d80e3e7
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Mar 5, 2025
f2b04d4
return to the previous choice
pkurash Mar 6, 2025
0912aa3
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Mar 7, 2025
35eb86e
updated eta min/max definitions
pkurash Mar 9, 2025
83f19a6
Merge branch 'new-detector4' of github.com:pkurash/AliceO2 into new-d…
pkurash Mar 9, 2025
4ead620
updated eta definitions
pkurash Mar 10, 2025
a8e4a0d
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Mar 13, 2025
aeebdb8
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Mar 18, 2025
f264f9a
remove spurious files
pkurash Mar 19, 2025
e0fa607
Update CMake
pkurash Mar 20, 2025
3976bb1
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Mar 25, 2025
e451741
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Mar 26, 2025
6321735
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Mar 27, 2025
acd685b
removed GPU file
pkurash Mar 30, 2025
f674c9b
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Mar 30, 2025
7eeb149
Add FD detector
pkurash Mar 30, 2025
dca0079
Merge branch 'new-detector4' of github.com:pkurash/AliceO2 into new-d…
pkurash Mar 30, 2025
52d750a
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Apr 3, 2025
67a233c
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Apr 15, 2025
b148f09
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Apr 23, 2025
9158354
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Apr 30, 2025
b4a13e0
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash May 20, 2025
65af1c8
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash May 21, 2025
9662815
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash May 24, 2025
730ed68
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jun 24, 2025
95b58db
including aluminium containers
pkurash Jun 24, 2025
3d995f4
including aluminium containers
pkurash Jun 24, 2025
7ed8c70
including aluminium containers
pkurash Jun 24, 2025
81b173b
including aluminium containers
pkurash Jun 24, 2025
33f113c
including aluminium containers
pkurash Jun 26, 2025
779051b
Please consider the following formatting changes
alibuild Jun 26, 2025
f03d62c
Merge pull request #6 from alibuild/alibot-cleanup-13476
pkurash Jun 26, 2025
ba1a865
Updated Readme
pkurash Jul 3, 2025
648bb6a
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jul 3, 2025
180fecc
Merge branch 'new-detector4' of github.com:pkurash/AliceO2 into new-d…
pkurash Jul 3, 2025
914e929
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jul 10, 2025
0b61e9a
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jul 12, 2025
2d1bd3b
introduced FD hit data format
pkurash Jul 19, 2025
a8598f2
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jul 19, 2025
e1b320e
introduced FD hit data format
pkurash Jul 19, 2025
af5699b
corrected copyright notice
pkurash Jul 19, 2025
691b39f
corrected copyright notice
pkurash Jul 19, 2025
0638cac
corrected copyright notice
pkurash Jul 19, 2025
a22c25a
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Jul 26, 2025
fae2d5f
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Aug 2, 2025
4d834d7
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Aug 6, 2025
c130e76
Finding detId from fMC
pkurash Aug 11, 2025
27410da
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Aug 11, 2025
847793b
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Aug 23, 2025
b1ca536
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Aug 28, 2025
b84fdbd
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 7, 2025
21545f8
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 12, 2025
dc31a81
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 21, 2025
1d17389
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 22, 2025
5162f29
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Sep 26, 2025
e300281
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 3, 2025
303c84f
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 7, 2025
c3553cb
colors
pkurash Oct 3, 2025
ee96e8d
change detector name
pkurash Oct 9, 2025
5959ee9
change detector name
pkurash Oct 9, 2025
c942507
change detector name
pkurash Oct 9, 2025
9fe5eff
change detector name
pkurash Oct 9, 2025
a2c79e7
Merge branch 'AliceO2Group:dev' into new-detector4
pkurash Oct 16, 2025
d893b69
Fix formatting in CMakeLists.txt for FD3Simulation
pkurash Oct 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions Common/SimConfig/src/SimConfig.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,8 @@ void SimConfig::determineActiveModules(std::vector<std::string> const& inputargs
activeModules[i] != "TF3" &&
activeModules[i] != "RCH" &&
activeModules[i] != "MI3" &&
activeModules[i] != "ECL") {
activeModules[i] != "ECL" &&
activeModules[i] != "FD3") {
LOGP(fatal, "List of active modules contains {}, which is not a module from the upgrades.", activeModules[i]);
}
}
Expand All @@ -112,7 +113,8 @@ void SimConfig::determineActiveModules(std::vector<std::string> const& inputargs
activeModules[i] == "TF3" ||
activeModules[i] == "RCH" ||
activeModules[i] == "MI3" ||
activeModules[i] == "ECL") {
activeModules[i] == "ECL" ||
activeModules[i] == "FD3") {
LOGP(fatal, "List of active modules contains {}, which is not a run 3 module", activeModules[i]);
}
}
Expand All @@ -130,6 +132,7 @@ void SimConfig::determineActiveModules(std::vector<std::string> const& inputargs
d == DetID::TF3 ||
d == DetID::RCH ||
d == DetID::ECL ||
d == DetID::FD3 ||
d == DetID::MI3) {
activeModules.emplace_back(DetID::getName(d));
}
Expand All @@ -149,7 +152,7 @@ void SimConfig::determineActiveModules(std::vector<std::string> const& inputargs
activeModules.emplace_back("SHIL");
for (int d = DetID::First; d <= DetID::Last; ++d) {
#ifdef ENABLE_UPGRADES
if (d != DetID::IT3 && d != DetID::TRK && d != DetID::FT3 && d != DetID::FCT && d != DetID::TF3 && d != DetID::RCH && d != DetID::ECL && d != DetID::MI3) {
if (d != DetID::IT3 && d != DetID::TRK && d != DetID::FT3 && d != DetID::FCT && d != DetID::TF3 && d != DetID::RCH && d != DetID::ECL && d != DetID::FD3 && d != DetID::MI3) {
activeModules.emplace_back(DetID::getName(d));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ class DetID
static constexpr ID RCH = 23;
static constexpr ID MI3 = 24;
static constexpr ID ECL = 25;
static constexpr ID Last = ECL;
static constexpr ID FD3 = 26;
static constexpr ID Last = FD3;
#else
static constexpr ID Last = FOC; ///< if extra detectors added, update this !!!
#endif
Expand Down Expand Up @@ -181,7 +182,7 @@ class DetID
// detector names, will be defined in DataSources
static constexpr const char* sDetNames[nDetectors + 1] = ///< defined detector names
#ifdef ENABLE_UPGRADES
{"ITS", "TPC", "TRD", "TOF", "PHS", "CPV", "EMC", "HMP", "MFT", "MCH", "MID", "ZDC", "FT0", "FV0", "FDD", "TST", "CTP", "FOC", "IT3", "TRK", "FT3", "FCT", "TF3", "RCH", "MI3", "ECL", nullptr};
{"ITS", "TPC", "TRD", "TOF", "PHS", "CPV", "EMC", "HMP", "MFT", "MCH", "MID", "ZDC", "FT0", "FV0", "FDD", "TST", "CTP", "FOC", "IT3", "TRK", "FT3", "FCT", "TF3", "RCH", "MI3", "ECL", "FD3", nullptr};
#else
{"ITS", "TPC", "TRD", "TOF", "PHS", "CPV", "EMC", "HMP", "MFT", "MCH", "MID", "ZDC", "FT0", "FV0", "FDD", "TST", "CTP", "FOC", nullptr};
#endif
Expand All @@ -195,7 +196,7 @@ class DetID
#ifdef ENABLE_UPGRADES
,
o2h::gDataOriginIT3, o2h::gDataOriginTRK, o2h::gDataOriginFT3, o2h::gDataOriginFCT, o2h::gDataOriginTF3,
o2h::gDataOriginRCH, o2h::gDataOriginMI3, o2h::gDataOriginECL
o2h::gDataOriginRCH, o2h::gDataOriginMI3, o2h::gDataOriginECL, o2h::gDataOriginFD3
#endif
};
#endif // GPUCA_GPUCODE_DEVICE
Expand All @@ -211,10 +212,11 @@ GPUconstexpr() DetID::mask_t sMasks[DetID::nDetectors] = ///< detectot masks
DetID::mask_t(math_utils::bit2Mask(DetID::CPV)), DetID::mask_t(math_utils::bit2Mask(DetID::EMC)), DetID::mask_t(math_utils::bit2Mask(DetID::HMP)), DetID::mask_t(math_utils::bit2Mask(DetID::MFT)), DetID::mask_t(math_utils::bit2Mask(DetID::MCH)),
DetID::mask_t(math_utils::bit2Mask(DetID::MID)), DetID::mask_t(math_utils::bit2Mask(DetID::ZDC)), DetID::mask_t(math_utils::bit2Mask(DetID::FT0)), DetID::mask_t(math_utils::bit2Mask(DetID::FV0)), DetID::mask_t(math_utils::bit2Mask(DetID::FDD)),
DetID::mask_t(math_utils::bit2Mask(DetID::TST)), DetID::mask_t(math_utils::bit2Mask(DetID::CTP)), DetID::mask_t(math_utils::bit2Mask(DetID::FOC))

#ifdef ENABLE_UPGRADES
,
DetID::mask_t(math_utils::bit2Mask(DetID::IT3)), DetID::mask_t(math_utils::bit2Mask(DetID::TRK)), DetID::mask_t(math_utils::bit2Mask(DetID::FT3)), DetID::mask_t(math_utils::bit2Mask(DetID::FCT)), DetID::mask_t(math_utils::bit2Mask(DetID::TF3)),
DetID::mask_t(math_utils::bit2Mask(DetID::RCH)), DetID::mask_t(math_utils::bit2Mask(DetID::MI3)), DetID::mask_t(math_utils::bit2Mask(DetID::ECL))
DetID::mask_t(math_utils::bit2Mask(DetID::RCH)), DetID::mask_t(math_utils::bit2Mask(DetID::MI3)), DetID::mask_t(math_utils::bit2Mask(DetID::ECL)), DetID::mask_t(math_utils::bit2Mask(DetID::FD3))
#endif
};
} // namespace detid_internal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@ class SimTraits
/*TF3*/ VS{ "TF3Hit" },
/*RCH*/ VS{ "RCHHit" },
/*MI3*/ VS{ "MI3Hit" },
/*ECL*/ VS{ "ECLHit" }
/*ECL*/ VS{ "ECLHit" },
/*FD */ VS{ "FDHit" }
#endif
};
// clang-format on
Expand Down
12 changes: 12 additions & 0 deletions DataFormats/Detectors/Upgrades/ALICE3/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Copyright 2019-2025 CERN and copyright holders of ALICE O2.
# See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
# All rights not expressly granted are reserved.
#
# This software is distributed under the terms of the GNU General Public
# License v3 (GPL Version 3), copied verbatim in the file "COPYING".
#
# In applying this license CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.

add_subdirectory(FD3)
23 changes: 23 additions & 0 deletions DataFormats/Detectors/Upgrades/ALICE3/FD3/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright 2019-2020 CERN and copyright holders of ALICE O2.
# See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
# All rights not expressly granted are reserved.
#
# This software is distributed under the terms of the GNU General Public
# License v3 (GPL Version 3), copied verbatim in the file "COPYING".
#
# In applying this license CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.

o2_add_library(DataFormatsFD3
SOURCES src/Hit.cxx
PUBLIC_LINK_LIBRARIES O2::FD3Base
O2::SimulationDataFormat
O2::CommonDataFormat
Microsoft.GSL::GSL
O2::DetectorsCommonDataFormats
)

o2_target_root_dictionary(DataFormatsFD3
HEADERS include/DataFormatsFD3/Hit.h
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.

/// \file Hit.h
/// \brief Definition of the FD3 Hit class (based on ITSMFT and FV0)

#ifndef ALICEO2_FVD_HIT_H_
#define ALICEO2_FVD_HIT_H_

#include <iosfwd>
#include "SimulationDataFormat/BaseHits.h" // for BasicXYZEHit
#include "Rtypes.h" // for Bool_t, Double_t, int, Double32_t, etc
#include "TVector3.h" // for TVector3
#include "CommonUtils/ShmAllocator.h"

namespace o2
{
namespace fd3
{

class Hit : public o2::BasicXYZEHit<float, float>
{
public:
/// Default constructor
Hit() = default;

/// Class Constructor
/// \param trackID Index of MCTrack
/// \param cellID Cell ID
/// \param startPos Coordinates at entrance to active volume [cm]
/// \param endPos Coordinates to active volume [cm]
/// \param startMom Momentum of track at entrance [GeV]
/// \param startE Energy of track at entrance [GeV]
/// \param endTime Final time [ns]
/// \param eLoss Energy deposit [GeV]
/// \param particlePdg PDG code of the partcile associated with the track
inline Hit(int trackID,
int cellID,
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);

// Entrance position getters
math_utils::Point3D<float> const& GetPosStart() const { return mPositionStart; }
float GetStartX() const { return mPositionStart.X(); }
float GetStartY() const { return mPositionStart.Y(); }
float GetStartZ() const { return mPositionStart.Z(); }
template <typename F>
void GetStartPosition(F& x, F& y, F& z) const
{
x = GetStartX();
y = GetStartY();
z = GetStartZ();
}

// Momentum getters
math_utils::Vector3D<float> const& GetMomentum() const { return mMomentumStart; }
math_utils::Vector3D<float>& GetMomentum() { return mMomentumStart; }
float GetPx() const { return mMomentumStart.X(); }
float GetPy() const { return mMomentumStart.Y(); }
float GetPz() const { return mMomentumStart.Z(); }
float GetE() const { return mEnergyStart; }
float GetTotalEnergyAtEntrance() const { return GetE(); }
int GetParticlePdg() const { return mParticlePdg; }

void Print(const Option_t* opt) const;

private:
math_utils::Vector3D<float> mMomentumStart; ///< momentum at entrance
math_utils::Point3D<float> mPositionStart; ///< position at entrance (base mPos give position on exit)
float mEnergyStart; ///< total energy at entrance
int mParticlePdg; ///< PDG code of the particle associated with this track

ClassDefNV(Hit, 1);
};

Hit::Hit(int trackID,
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)
: BasicXYZEHit(endPos.X(),
endPos.Y(),
endPos.Z(),
endTime,
eLoss,
trackID,
detID),
mMomentumStart(startMom.X(), startMom.Y(), startMom.Z()),
mPositionStart(startPos.X(), startPos.Y(), startPos.Z()),
mEnergyStart(startE),
mParticlePdg(particlePdg)
{
}

} // namespace fd3
} // namespace o2

#ifdef USESHM
namespace std
{
template <>
class allocator<o2::fd3::Hit> : public o2::utils::ShmAllocator<o2::fd3::Hit>
{
};

} // namespace std
#endif /* USESHM */
#endif /* ALICEO2_FD3_HIT_H_ */
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.

#ifdef __CLING__

#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ class o2::fd3::Hit + ;
#pragma link C++ class vector < o2::fd3::Hit> + ;

#endif
35 changes: 35 additions & 0 deletions DataFormats/Detectors/Upgrades/ALICE3/FD3/src/Hit.cxx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
// This software is distributed under the terms of the GNU General Public
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
//
// In applying this license CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.

/// \file Hit.cxx
/// \brief Implementation of the Hit class

#include "DataFormatsFD3/Hit.h"
#include <iostream>

ClassImp(o2::fd3::Hit);

namespace o2
{
namespace fd3
{

void Hit::Print(const Option_t* opt) const
{
printf(
"Det: %5d Track: %6d E.loss: %.3e P: %+.3e %+.3e %+.3e\n"
"PosIn: %+.3e %+.3e %+.3e PosOut: %+.3e %+.3e %+.3e\n",
GetDetectorID(), GetTrackID(), GetEnergyLoss(), GetPx(), GetPy(), GetPz(),
GetStartX(), GetStartY(), GetStartZ(), GetX(), GetY(), GetZ());
}

} // namespace fd3
} // namespace o2
3 changes: 2 additions & 1 deletion DataFormats/Detectors/Upgrades/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2019-2020 CERN and copyright holders of ALICE O2.
# Copyright 2019-2025 CERN and copyright holders of ALICE O2.
# See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
# All rights not expressly granted are reserved.
#
Expand All @@ -10,3 +10,4 @@
# or submit itself to any jurisdiction.

message(STATUS "Building dataformats for upgrades")
add_subdirectory(ALICE3)
1 change: 1 addition & 0 deletions DataFormats/Headers/include/Headers/DataHeader.h
Original file line number Diff line number Diff line change
Expand Up @@ -588,6 +588,7 @@ constexpr o2::header::DataOrigin gDataOriginTF3{"TF3"};
constexpr o2::header::DataOrigin gDataOriginRCH{"RCH"};
constexpr o2::header::DataOrigin gDataOriginMI3{"MI3"};
constexpr o2::header::DataOrigin gDataOriginECL{"ECL"}; // upgrades
constexpr o2::header::DataOrigin gDataOriginFD3{"FD3"}; // upgrades

constexpr o2::header::DataOrigin gDataOriginGPU{"GPU"};

Expand Down
3 changes: 2 additions & 1 deletion Detectors/Upgrades/ALICE3/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@
add_subdirectory(Passive)
add_subdirectory(TRK)
add_subdirectory(ECal)
add_subdirectory(FD3)
add_subdirectory(FT3)
add_subdirectory(FCT)
add_subdirectory(AOD)
add_subdirectory(IOTOF)
add_subdirectory(RICH)
add_subdirectory(MID)
add_subdirectory(macros)
add_subdirectory(macros)
13 changes: 13 additions & 0 deletions Detectors/Upgrades/ALICE3/FD3/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright 2019-2025 CERN and copyright holders of ALICE O2.
# See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
# All rights not expressly granted are reserved.
#
# This software is distributed under the terms of the GNU General Public
# License v3 (GPL Version 3), copied verbatim in the file "COPYING".
#
# In applying this license CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.

add_subdirectory(base)
add_subdirectory(simulation)
10 changes: 10 additions & 0 deletions Detectors/Upgrades/ALICE3/FD3/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!-- doxy
\page refDetectorsUpgradesALICE3TRK Tracker
/doxy -->

# ALICE 3 FORWARD DETECTOR

This is top page for the FD3 detector documentation.

<!-- doxy
/doxy -->
20 changes: 20 additions & 0 deletions Detectors/Upgrades/ALICE3/FD3/base/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2019-2025 CERN and copyright holders of ALICE O2.
# See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
# All rights not expressly granted are reserved.
#
# This software is distributed under the terms of the GNU General Public
# License v3 (GPL Version 3), copied verbatim in the file "COPYING".
#
# In applying this license CERN does not waive the privileges and immunities
# granted to it by virtue of its status as an Intergovernmental Organization
# or submit itself to any jurisdiction.

o2_add_library(FD3Base
SOURCES src/GeometryTGeo.cxx
src/FD3BaseParam.cxx
PUBLIC_LINK_LIBRARIES O2::DetectorsBase)

o2_target_root_dictionary(FD3Base
HEADERS include/FD3Base/GeometryTGeo.h
include/FD3Base/Constants.h
include/FD3Base/FD3BaseParam.h)
Loading