Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FD detector #13476

Open
wants to merge 73 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 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
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] != "FD") {
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] == "FD") {
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::FD ||
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::FD && 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 FD = 26;
static constexpr ID Last = FD;
#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", "FD", 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::gDataOriginFD
#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::FD))
#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
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 gDataOriginFD{"FD"}; // 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(FD)
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/FD/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# 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.

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

# ALICE 3 FORVARD DETECTOR

This is top page for the FD detector documentation.

<!-- doxy
/doxy -->
20 changes: 20 additions & 0 deletions Detectors/Upgrades/ALICE3/FD/base/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# 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(FDBase
SOURCES src/GeometryTGeo.cxx
src/FDBaseParam.cxx
PUBLIC_LINK_LIBRARIES O2::DetectorsBase)

o2_target_root_dictionary(FDBase
HEADERS include/FDBase/GeometryTGeo.h
include/FDBase/Constants.h
include/FDBase/FDBaseParam.h)
17 changes: 17 additions & 0 deletions Detectors/Upgrades/ALICE3/FD/base/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!-- doxy
\page refFITFV0base FV0 Base
/doxy -->

# FV0 Base

## Geometry

The `o2::fv0::Geometry` class represents the geometry of the FV0 detector as used in simulation. It also provides utility methods for retrieving the center locations of the detector cells. See the below example for how to use the `Geometry` class to query the FV0 cell locations. Note that these are the ideal locations, and that any misalignment is not considered.

```cpp
o2::fv0::Geometry* fv0Geometry = o2::fv0::Geometry::instance(o2::fv0::Geometry::eUninitialized);
o2::fv0::Point3Dsimple cellPosition = fv0Geometry->getReadoutCenter(chId);
float x = cellPosition.x;
float y = cellPosition.y;
float z = cellPosition.z;
```
38 changes: 38 additions & 0 deletions Detectors/Upgrades/ALICE3/FD/base/include/FDBase/Constants.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// 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 Constants.h
/// \brief General constants in FV0
///
/// \author Maciej Slupecki, University of Jyvaskyla, Finland

#ifndef ALICEO2_FD_CONSTANTS_
#define ALICEO2_FD_CONSTANTS_

namespace o2
{
namespace fd
{
struct Constants {
static constexpr int nsect = 8;
static constexpr int nringsA = 5;
static constexpr int nringsC = 6;

static constexpr float etaMax = 7.0f;
static constexpr float etaMin = 4.0f;

static constexpr int nringsA_withFCT = 3;
static constexpr float etaMinA_withFCT = 5.0f;
};

} // namespace fd
} // namespace o2
#endif
37 changes: 37 additions & 0 deletions Detectors/Upgrades/ALICE3/FD/base/include/FDBase/FDBaseParam.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// 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.

#ifndef ALICEO2_FD_FDBASEPARAM_
#define ALICEO2_FD_FDBASEPARAM_

#include "FDBase/GeometryTGeo.h"
#include "FDBase/Constants.h"
#include "CommonUtils/ConfigurableParamHelper.h"

namespace o2
{
namespace fd
{
struct FDBaseParam : public o2::conf::ConfigurableParamHelper<FDBaseParam> {

float zmodA = 1700.0f;
float zmodC = -1950.0f;
float dzscint = 4.0f;

bool withFCT = true;

O2ParamDef(FDBaseParam, "FDBase");
};

} // namespace fd
} // namespace o2

#endif
54 changes: 54 additions & 0 deletions Detectors/Upgrades/ALICE3/FD/base/include/FDBase/GeometryTGeo.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// 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.
#ifndef ALICEO2_FD_GEOMETRYTGEO_H_
#define ALICEO2_FD_GEOMETRYTGEO_H_

#include <DetectorsCommonDataFormats/DetMatrixCache.h>

#include "DetectorsBase/GeometryManager.h"
#include "DetectorsCommonDataFormats/DetID.h"
#include <Rtypes.h>
#include <TGeoPhysicalNode.h>
#include <vector>
#include <array>
#include <TGeoMatrix.h>
#include <TGeoVolume.h>
#include <TVirtualMC.h>

namespace o2
{
namespace fd
{

/// FD Geometry type
class GeometryTGeo : public o2::detectors::DetMatrixCache
{
public:
GeometryTGeo(bool build = false, int loadTrans = 0);

void Build(int loadTrans);
void fillMatrixCache(int mask);
virtual ~GeometryTGeo();

static GeometryTGeo* Instance();

void getGlobalPosition(float& x, float& y, float& z);

static constexpr o2::detectors::DetID::ID getDetID() { return o2::detectors::DetID::FD; }

private:
static std::unique_ptr<o2::fd::GeometryTGeo> sInstance;

ClassDefNV(GeometryTGeo, 1);
};
} // namespace fd
} // namespace o2
#endif
23 changes: 23 additions & 0 deletions Detectors/Upgrades/ALICE3/FD/base/src/FDBaseLinkDef.h
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.

#ifdef __CLING__

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

#pragma link C++ class o2::fd::Constants + ;
#pragma link C++ class o2::fd::GeometryTGeo + ;
#pragma link C++ class o2::fd::FDBaseParam + ;
#pragma link C++ class o2::conf::ConfigurableParamHelper < o2::fd::FDBaseParam> + ;

#endif
14 changes: 14 additions & 0 deletions Detectors/Upgrades/ALICE3/FD/base/src/FDBaseParam.cxx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// 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.

#include "FDBase/FDBaseParam.h"

O2ParamImpl(o2::fd::FDBaseParam);
Loading