Skip to content

Commit 4ef1765

Browse files
authored
Merge branch 'master' into master
2 parents 70622f6 + 8cb945f commit 4ef1765

File tree

279 files changed

+31751
-11487
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

279 files changed

+31751
-11487
lines changed

.github/workflows/mega-linter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949

5050
# Upload MegaLinter artifacts
5151
- name: Archive production artifacts
52-
uses: actions/upload-artifact@v5
52+
uses: actions/upload-artifact@v6
5353
if: success() || failure()
5454
with:
5555
name: MegaLinter reports

.github/workflows/o2-linter.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Find issues in O2 code
33
name: O2 linter
44

5-
# "on": [pull_request_target, push]
5+
#"on": [pull_request_target, push]
66
permissions: {}
77
env:
88
BRANCH_MAIN: master
@@ -47,6 +47,8 @@ jobs:
4747
fi
4848
echo "linter_ran=1" >> "$GITHUB_OUTPUT"
4949
[[ "${{ github.event_name }}" == "pull_request_target" ]] && options="-g"
50+
# Checkout the script from the base branch to prevent execution of arbitrary code in the head branch.
51+
git checkout ${{ env.BRANCH_BASE }} -- Scripts/o2_linter.py
5052
# shellcheck disable=SC2086 # Ignore unquoted options.
5153
python3 Scripts/o2_linter.py $options "${files[@]}"
5254
echo "Tip: If you allow actions in your fork repository, O2 linter will run when you push commits."

ALICE3/Core/DelphesO2TrackSmearer.cxx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ bool TrackSmearer::loadTable(int pdg, const char* filename, bool forceReload)
6464
if (strncmp(filename, "ccdb:", 5) == 0) { // Check if filename starts with "ccdb:"
6565
LOG(info) << " --- LUT file source identified as CCDB.";
6666
std::string path = std::string(filename).substr(5); // Remove "ccdb:" prefix
67-
const std::string outPath = "/tmp/LUTs/";
68-
filename = Form("%s/%s/snapshot.root", outPath.c_str(), path.c_str());
67+
filename = Form("%s/%s/snapshot.root", mOutPath.c_str(), path.c_str());
6968
LOG(info) << " --- Local LUT filename will be: " << filename;
7069
std::ifstream checkFile(filename); // Check if file already exists
7170
if (!checkFile.is_open()) { // File does not exist, retrieve from CCDB
@@ -74,7 +73,7 @@ bool TrackSmearer::loadTable(int pdg, const char* filename, bool forceReload)
7473
LOG(fatal) << " --- CCDB manager not set. Please set it before loading LUT from CCDB.";
7574
}
7675
std::map<std::string, std::string> metadata;
77-
mCcdbManager->getCCDBAccessor().retrieveBlob(path, outPath, metadata, 1);
76+
mCcdbManager->getCCDBAccessor().retrieveBlob(path, mOutPath, metadata, 1);
7877
// Add CCDB handling logic here if needed
7978
LOG(info) << " --- Now retrieving LUT file from CCDB to: " << filename;
8079
if (mCleanupDownloadedFile) { // Clean up the downloaded file if needed
@@ -105,6 +104,7 @@ bool TrackSmearer::loadTable(int pdg, const char* filename, bool forceReload)
105104
lutFile.read(reinterpret_cast<char*>(mLUTHeader[ipdg]), sizeof(lutHeader_t));
106105
if (lutFile.gcount() != sizeof(lutHeader_t)) {
107106
LOG(info) << " --- troubles reading covariance matrix header for PDG " << pdg << ": " << filename << std::endl;
107+
LOG(info) << " --- expected/detected " << sizeof(lutHeader_t) << "/" << lutFile.gcount() << std::endl;
108108
delete mLUTHeader[ipdg];
109109
mLUTHeader[ipdg] = nullptr;
110110
return false;
@@ -148,6 +148,7 @@ bool TrackSmearer::loadTable(int pdg, const char* filename, bool forceReload)
148148
lutFile.read(reinterpret_cast<char*>(mLUTEntry[ipdg][inch][irad][ieta][ipt]), sizeof(lutEntry_t));
149149
if (lutFile.gcount() != sizeof(lutEntry_t)) {
150150
LOG(info) << " --- troubles reading covariance matrix entry for PDG " << pdg << ": " << filename << std::endl;
151+
LOG(info) << " --- expected/detected " << sizeof(lutHeader_t) << "/" << lutFile.gcount() << std::endl;
151152
return false;
152153
}
153154
}

ALICE3/Core/DelphesO2TrackSmearer.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <fstream>
3434
#include <iostream>
3535
#include <map>
36+
#include <string>
3637

3738
///////////////////////////////
3839
/// DelphesO2/src/lutCovm.hh //
@@ -251,6 +252,7 @@ class TrackSmearer
251252
void setdNdEta(float val) { mdNdEta = val; } //;
252253
void setCcdbManager(o2::ccdb::BasicCCDBManager* mgr) { mCcdbManager = mgr; } //;
253254
void setCleanupDownloadedFile(bool val) { mCleanupDownloadedFile = val; } //;
255+
void setDownloadPath(const std::string& path) { mOutPath = path; } //;
254256

255257
protected:
256258
static constexpr unsigned int nLUTs = 9; // Number of LUT available
@@ -264,7 +266,8 @@ class TrackSmearer
264266

265267
private:
266268
o2::ccdb::BasicCCDBManager* mCcdbManager = nullptr;
267-
bool mCleanupDownloadedFile = true;
269+
bool mCleanupDownloadedFile = true; // Flag to cleanup the LUT after it's used
270+
std::string mOutPath = "./.ALICE3/LUTs/"; // Path where to download LUTs from CCDB
268271
};
269272

270273
} // namespace delphes

ALICE3/Core/FastTracker.cxx

Lines changed: 57 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,23 @@
2424
#include <TRandom.h>
2525
#include <TSystem.h>
2626

27+
#include <chrono>
2728
#include <fstream>
2829
#include <map>
2930
#include <string>
31+
#include <thread>
3032
#include <vector>
3133

3234
namespace o2
3335
{
3436
namespace fastsim
3537
{
3638

37-
std::map<std::string, std::map<std::string, std::string>> GeometryContainer::parseTEnvConfiguration(std::string filename, std::vector<std::string>& layers)
39+
std::map<std::string, std::map<std::string, std::string>> GeometryContainer::parseTEnvConfiguration(std::string& filename, std::vector<std::string>& layers)
3840
{
3941
std::map<std::string, std::map<std::string, std::string>> configMap;
4042
filename = gSystem->ExpandPathName(filename.c_str());
43+
LOG(info) << "Parsing TEnv configuration file: " << filename;
4144
TEnv env(filename.c_str());
4245
THashList* table = env.GetTable();
4346
layers.clear();
@@ -72,15 +75,47 @@ std::map<std::string, std::map<std::string, std::string>> GeometryContainer::par
7275
void GeometryContainer::init(o2::framework::InitContext& initContext)
7376
{
7477
std::vector<std::string> detectorConfiguration;
75-
const bool found = common::core::getTaskOptionValue(initContext, "on-the-fly-detector-geometry-provider", "detectorConfiguration", detectorConfiguration, false);
76-
if (!found) {
78+
const bool foundDetectorConfiguration = common::core::getTaskOptionValue(initContext, "on-the-fly-detector-geometry-provider", "detectorConfiguration", detectorConfiguration, false);
79+
if (!foundDetectorConfiguration) {
7780
LOG(fatal) << "Could not retrieve detector configuration from OnTheFlyDetectorGeometryProvider task.";
7881
return;
7982
}
8083
LOG(info) << "Size of detector configuration: " << detectorConfiguration.size();
81-
for (const auto& configFile : detectorConfiguration) {
84+
85+
bool cleanLutWhenLoaded;
86+
const bool foundCleanLutWhenLoaded = common::core::getTaskOptionValue(initContext, "on-the-fly-detector-geometry-provider", "cleanLutWhenLoaded", cleanLutWhenLoaded, false);
87+
if (!foundCleanLutWhenLoaded) {
88+
LOG(fatal) << "Could not retrieve foundCleanLutWhenLoaded option from OnTheFlyDetectorGeometryProvider task.";
89+
return;
90+
}
91+
92+
for (std::string& configFile : detectorConfiguration) {
93+
if (configFile.rfind("ccdb:", 0) == 0) {
94+
LOG(info) << "ccdb source detected from on-the-fly-detector-geometry-provider";
95+
const std::string ccdbPath = configFile.substr(5); // remove "ccdb:" prefix
96+
const std::string outPath = "./.ALICE3/Configuration/";
97+
configFile = Form("%s/%s/snapshot.root", outPath.c_str(), ccdbPath.c_str());
98+
99+
int timeout = 600; // Wait max 10 minutes
100+
while (--timeout > 0) {
101+
std::ifstream file(configFile);
102+
if (file.good()) {
103+
break;
104+
}
105+
106+
std::this_thread::sleep_for(std::chrono::seconds(1));
107+
}
108+
109+
std::ifstream checkFile(configFile);
110+
if (!checkFile.good()) {
111+
LOG(fatal) << "Timed out waiting for geometry snapshot: " << configFile;
112+
return;
113+
}
114+
}
115+
82116
LOG(info) << "Detector geometry configuration file used: " << configFile;
83117
addEntry(configFile);
118+
setLutCleanupSetting(cleanLutWhenLoaded);
84119
}
85120
}
86121

@@ -95,6 +130,16 @@ std::map<std::string, std::string> GeometryContainer::GeometryEntry::getConfigur
95130
}
96131
}
97132

133+
bool GeometryContainer::GeometryEntry::hasValue(const std::string& layerName, const std::string& key) const
134+
{
135+
auto layerIt = mConfigurations.find(layerName);
136+
if (layerIt != mConfigurations.end()) {
137+
auto keyIt = layerIt->second.find(key);
138+
return keyIt != layerIt->second.end();
139+
}
140+
return false;
141+
}
142+
98143
std::string GeometryContainer::GeometryEntry::getValue(const std::string& layerName, const std::string& key, bool require) const
99144
{
100145
auto layer = getConfiguration(layerName);
@@ -109,6 +154,14 @@ std::string GeometryContainer::GeometryEntry::getValue(const std::string& layerN
109154
}
110155
}
111156

157+
void GeometryContainer::GeometryEntry::replaceValue(const std::string& layerName, const std::string& key, const std::string& value)
158+
{
159+
if (!hasValue(layerName, key)) { // check that the key exists
160+
LOG(fatal) << "Key " << key << " does not exist in layer " << layerName << ". Cannot replace value.";
161+
}
162+
setValue(layerName, key, value);
163+
}
164+
112165
// +-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+
113166

114167
DetLayer* FastTracker::AddLayer(TString name, float r, float z, float x0, float xrho, float resRPhi, float resZ, float eff, int type)
@@ -169,106 +222,6 @@ void FastTracker::Print()
169222
LOG(info) << "+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+";
170223
}
171224

172-
void FastTracker::AddSiliconALICE3v4(std::vector<float> pixelResolution)
173-
{
174-
LOG(info) << " ALICE 3: Adding v4 tracking layers";
175-
float x0IT = 0.001; // 0.1%
176-
float x0OT = 0.005; // 0.5%
177-
float xrhoIB = 1.1646e-02; // 50 mum Si
178-
float xrhoOT = 1.1646e-01; // 500 mum Si
179-
float eff = 1.00;
180-
181-
float resRPhiIT = pixelResolution[0];
182-
float resZIT = pixelResolution[1];
183-
float resRPhiOT = pixelResolution[2];
184-
float resZOT = pixelResolution[3];
185-
186-
AddLayer("bpipe0", 0.48, 250, 0.00042, 2.772e-02, 0.0f, 0.0f, 0.0f, 0); // 150 mum Be
187-
AddLayer("ddd0", 0.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1);
188-
AddLayer("ddd1", 1.2, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1);
189-
AddLayer("ddd2", 2.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1);
190-
AddLayer("bpipe1", 5.7, 250, 0.0014, 9.24e-02, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be
191-
AddLayer("ddd3", 7., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
192-
AddLayer("ddd4", 10., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
193-
AddLayer("ddd5", 13., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
194-
AddLayer("ddd6", 16., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
195-
AddLayer("ddd7", 25., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
196-
AddLayer("ddd8", 40., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
197-
AddLayer("ddd9", 45., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
198-
}
199-
200-
void FastTracker::AddSiliconALICE3v2(std::vector<float> pixelResolution)
201-
{
202-
LOG(info) << "ALICE 3: Adding v2 tracking layers;";
203-
float x0IT = 0.001; // 0.1%
204-
float x0OT = 0.01; // 1.0%
205-
float xrhoIB = 2.3292e-02; // 100 mum Si
206-
float xrhoOT = 2.3292e-01; // 1000 mum Si
207-
float eff = 1.00;
208-
209-
float resRPhiIT = pixelResolution[0];
210-
float resZIT = pixelResolution[1];
211-
float resRPhiOT = pixelResolution[2];
212-
float resZOT = pixelResolution[3];
213-
214-
AddLayer("bpipe0", 0.48, 250, 0.00042, 2.772e-02, 0.0f, 0.0f, 0.0f, 0); // 150 mum Be
215-
AddLayer("B00", 0.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1);
216-
AddLayer("B01", 1.2, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1);
217-
AddLayer("B02", 2.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1);
218-
AddLayer("bpipe1", 3.7, 250, 0.0014, 9.24e-02, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be
219-
AddLayer("B03", 3.75, 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
220-
AddLayer("B04", 7., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
221-
AddLayer("B05", 12., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
222-
AddLayer("B06", 20., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
223-
AddLayer("B07", 30., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
224-
AddLayer("B08", 45., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
225-
AddLayer("B09", 60., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
226-
AddLayer("B10", 80., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
227-
}
228-
229-
void FastTracker::AddSiliconALICE3(float scaleX0VD, std::vector<float> pixelResolution)
230-
{
231-
float x0Pipe0 = 0.001592; // 200 um AlBe
232-
float x0VDL0 = 0.00076; // 30 um Si + 50 um glue + carbon foam 0.03%
233-
float x0VDL1 = 0.00096; // 30 um Si + 50 um glue + carbon foam 0.05%
234-
float x0VDL2 = 0.00167; // 30 um Si + 50 um glue + carbon foam 0.05% + 0.07% Be case
235-
float x0Coldplate = 0.02f; // (1.5 mm Al2O3 2%)
236-
float x0Pipe1 = 0.0023f; // 800 um Be
237-
float x0OT = 0.01; // 1.0%
238-
float x0iTOF = x0OT * 3.;
239-
240-
float resRPhiVD = pixelResolution[0];
241-
float resZVD = pixelResolution[1];
242-
float resRPhiOT = pixelResolution[2];
243-
float resZOT = pixelResolution[3];
244-
245-
float xrhoPipe0 = 0;
246-
float xrhoVDL0 = 0;
247-
float xrhoVDL1 = 0;
248-
float xrhoVDL2 = 0;
249-
float xrhoColdplate = 0;
250-
float xrhoPipe1 = 0;
251-
float xrhoOT = 2.3292e-01;
252-
float xrhoiTOF = 0.03;
253-
float eff = 1.00;
254-
255-
AddLayer("bpipe0", 0.48, 250, x0Pipe0, xrhoPipe0, 0.0f, 0.0f, 0.0f, 0);
256-
AddLayer("B00", 0.5, 250, x0VDL0 * scaleX0VD, xrhoVDL0, resRPhiVD, resZVD, eff, 1);
257-
AddLayer("B01", 1.2, 250, x0VDL1 * scaleX0VD, xrhoVDL1, resRPhiVD, resZVD, eff, 1);
258-
AddLayer("B02", 2.5, 250, x0VDL2 * scaleX0VD, xrhoVDL2, resRPhiVD, resZVD, eff, 1);
259-
AddLayer("coldplate", 2.6, 250, x0Coldplate, xrhoColdplate, 0.0f, 0.0f, 0.0f, 0);
260-
AddLayer("bpipe1", 5.7, 250, x0Pipe1, xrhoPipe1, 0.0f, 0.0f, 0.0f, 0);
261-
AddLayer("B03", 7., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
262-
AddLayer("B04", 9., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
263-
AddLayer("B05", 12., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
264-
AddLayer("iTOF", 19, 250, x0iTOF, xrhoiTOF, resRPhiOT, resZOT, eff, 0);
265-
AddLayer("B06", 20., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
266-
AddLayer("B07", 30., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
267-
AddLayer("B08", 45., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
268-
AddLayer("B09", 60., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
269-
AddLayer("B10", 80., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
270-
}
271-
272225
void FastTracker::AddTPC(float phiResMean, float zResMean)
273226
{
274227
LOG(info) << " Adding standard time projection chamber";

ALICE3/Core/FastTracker.h

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,47 +42,59 @@ class GeometryContainer
4242
* @param layers Vector to store the order of the layers as they appear in the file
4343
* @return A map where each key is a layer name and the value is another map of key-value pairs for that layer
4444
*/
45-
static std::map<std::string, std::map<std::string, std::string>> parseTEnvConfiguration(std::string filename, std::vector<std::string>& layers);
45+
static std::map<std::string, std::map<std::string, std::string>> parseTEnvConfiguration(std::string& filename, std::vector<std::string>& layers);
4646

4747
// A container for the geometry info
4848
struct GeometryEntry {
4949
// Default constructor
5050
GeometryEntry() = default;
51-
explicit GeometryEntry(std::string filename) : name(filename)
51+
explicit GeometryEntry(std::string filename)
5252
{
53-
mConfigurations = GeometryContainer::parseTEnvConfiguration(filename, layerNames);
53+
mFileName = filename;
54+
mConfigurations = GeometryContainer::parseTEnvConfiguration(mFileName, mLayerNames);
55+
LOG(info) << "Loaded geometry configuration from file: " << filename << " with " << mLayerNames.size() << " layers.";
56+
if (mLayerNames.empty()) {
57+
LOG(warning) << "No layers found in geometry configuration file: " << filename;
58+
}
5459
}
5560
std::map<std::string, std::map<std::string, std::string>> getConfigurations() const { return mConfigurations; }
5661
std::map<std::string, std::string> getConfiguration(const std::string& layerName) const;
57-
std::vector<std::string> getLayerNames() const { return layerNames; }
62+
std::vector<std::string> getLayerNames() const { return mLayerNames; }
63+
bool hasValue(const std::string& layerName, const std::string& key) const;
5864
std::string getValue(const std::string& layerName, const std::string& key, bool require = true) const;
65+
void setValue(const std::string& layerName, const std::string& key, const std::string& value) { mConfigurations[layerName][key] = value; }
66+
void replaceValue(const std::string& layerName, const std::string& key, const std::string& value);
5967
float getFloatValue(const std::string& layerName, const std::string& key) const { return std::stof(getValue(layerName, key)); }
6068
int getIntValue(const std::string& layerName, const std::string& key) const { return std::stoi(getValue(layerName, key)); }
6169

6270
private:
63-
std::string name; // Filename of the geometry
64-
std::map<std::string, std::map<std::string, std::string>> mConfigurations;
65-
std::vector<std::string> layerNames; // Ordered names of the layers
71+
std::string mFileName; // Filename of the geometry
72+
std::map<std::string, std::map<std::string, std::string>> mConfigurations; // Layer configurations
73+
std::vector<std::string> mLayerNames; // Ordered names of the layers
6674
};
6775

6876
// Add a geometry entry from a configuration file
6977
void addEntry(const std::string& filename) { entries.emplace_back(filename); }
78+
void setLutCleanupSetting(const bool cleanLutWhenLoaded) { mCleanLutWhenLoaded = cleanLutWhenLoaded; }
7079

7180
// Getters
7281
int getNumberOfConfigurations() const { return entries.size(); }
7382
const std::vector<GeometryEntry>& getEntries() const { return entries; }
7483
const GeometryEntry& getEntry(const int id) const { return entries.at(id); }
7584
GeometryEntry getGeometryEntry(const int id) const { return entries.at(id); }
85+
bool cleanLutWhenLoaded() const { return mCleanLutWhenLoaded; }
7686

7787
// Get configuration maps
7888
std::map<std::string, std::map<std::string, std::string>> getConfigurations(const int id) const { return entries.at(id).getConfigurations(); }
7989
std::map<std::string, std::string> getConfiguration(const int id, const std::string& layerName) const { return entries.at(id).getConfiguration(layerName); }
8090

8191
// Get specific values
92+
std::string getValue(const int id, const std::string& layerName, const std::string& key, bool require = true) const { return entries.at(id).getValue(layerName, key, require); }
8293
float getFloatValue(const int id, const std::string& layerName, const std::string& key) const { return entries.at(id).getFloatValue(layerName, key); }
8394

8495
private:
8596
std::vector<GeometryEntry> entries;
97+
bool mCleanLutWhenLoaded = true;
8698
};
8799

88100
// +-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+-~-<*>-~-+
@@ -122,9 +134,6 @@ class FastTracker
122134
SetResolutionZ(layerName, resZ);
123135
}
124136

125-
void AddSiliconALICE3v4(std::vector<float> pixelResolution);
126-
void AddSiliconALICE3v2(std::vector<float> pixelResolution);
127-
void AddSiliconALICE3(float scaleX0VD, std::vector<float> pixelResolution);
128137
void AddTPC(float phiResMean, float zResMean);
129138

130139
/**

ALICE3/Core/TrackUtilities.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ struct OTFParticle {
5454

5555
// Getters
5656
int pdgCode() const { return mPdgCode; }
57-
int isAlive() const { return mIsAlive; }
57+
bool isAlive() const { return mIsAlive; }
5858
float vx() const { return mVx; }
5959
float vy() const { return mVy; }
6060
float vz() const { return mVz; }

ALICE3/Macros/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ install(FILES Configuration/a3geo.ini
1313
Configuration/a3geometry_v2_10kG.ini
1414
Configuration/a3geometry_v2_20kG_dipole.ini
1515
Configuration/a3geometry_v2_20kG.ini
16+
Configuration/a3geometry_v3_extra_ml.ini
1617
Configuration/a3geometry_v3.ini
1718
Configuration/a3geometry_v4.ini
1819
PERMISSIONS GROUP_READ GROUP_EXECUTE OWNER_EXECUTE OWNER_WRITE OWNER_READ WORLD_EXECUTE WORLD_READ

0 commit comments

Comments
 (0)