Skip to content

Commit dc4af26

Browse files
authored
ITS3: update matLUT macro (#14779)
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
1 parent df3b3bd commit dc4af26

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

Detectors/Upgrades/ITS3/macros/test/buildMatBudLUT.C

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ o2::base::MatLayerCylSet mbLUT;
3131

3232
bool testMBLUT(const std::string& lutFile = "matbud.root");
3333

34-
bool buildMatBudLUT(int nTst = 60, int maxLr = -1, const std::string& outFile = "matbud.root", const std::string& geomName = "");
35-
3634
struct LrData {
3735
float rMin = 0.f;
3836
float rMax = 0.f;
@@ -46,14 +44,17 @@ struct LrData {
4644
std::vector<LrData> lrData;
4745
void configLayers();
4846

49-
bool buildMatBudLUT(int nTst, int maxLr, const std::string& outFile, const std::string& geomNameInput)
47+
bool buildMatBudLUT(int nTst = 30, int maxLr = -1, const std::string& outFile = "matbud.root", const std::string& geomNamePrefix = "o2sim", const std::string& opts = "")
5048
{
51-
auto geomName = o2::base::NameConf::getGeomFileName(geomNameInput);
49+
auto geomName = o2::base::NameConf::getGeomFileName(geomNamePrefix);
5250
if (gSystem->AccessPathName(geomName.c_str())) { // if needed, create geometry
53-
std::cout << geomName << " does not exist. Will create it\n";
54-
gSystem->Exec("$O2_ROOT/bin/o2-sim -n 0 --detectorList ALICE2.1");
51+
std::cout << geomName << " does not exist. Will create it on the fly\n";
52+
std::stringstream str;
53+
// constructing an **unaligned** geom (Geant3 used since faster initialization) --> can be avoided by passing an existing geometry
54+
str << "${O2_ROOT}/bin/o2-sim-serial -n 0 -e TGeant3 --detectorList ALICE2.1 --configKeyValues \"" << opts << "\" --field 0 -o " << geomNamePrefix;
55+
gSystem->Exec(str.str().c_str());
5556
}
56-
o2::base::GeometryManager::loadGeometry(geomNameInput);
57+
o2::base::GeometryManager::loadGeometry(geomNamePrefix);
5758
configLayers();
5859

5960
if (maxLr < 1) {
@@ -257,7 +258,9 @@ void configLayers()
257258

258259
// air space between Middle and Outer Barrels
259260
zSpanH = 80.f;
260-
lrData.emplace_back(lrData.back().rMax, 33.5, zSpanH);
261+
zBin = 10.;
262+
rphiBin = lrData.back().rMax * TMath::Pi() * 2 / 18;
263+
lrData.emplace_back(lrData.back().rMax, 33.5, zSpanH, zBin, rphiBin);
261264

262265
//===================================================================================
263266
// ITS Outer barrel
@@ -267,29 +270,29 @@ void configLayers()
267270
zBin = 1.;
268271
do {
269272
auto rmean = lrData.back().rMax + drStep / 2;
270-
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 10);
273+
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 15);
271274
lrData.emplace_back(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin);
272275
} while (lrData.back().rMax < 36. - kToler);
273276

274277
drStep = 1.;
275278
do {
276279
auto rmean = lrData.back().rMax + drStep / 2;
277-
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 10);
280+
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 15);
278281
lrData.emplace_back(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin);
279282
} while (lrData.back().rMax < 38.5 - kToler);
280283

281284
nStave = mp.getNStavesOnLr(6); // Lr 6
282285
drStep = 0.25;
283286
do {
284287
auto rmean = lrData.back().rMax + drStep / 2;
285-
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 10);
288+
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 15);
286289
lrData.emplace_back(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin);
287290
} while (lrData.back().rMax < 41. - kToler);
288291

289292
drStep = 1.;
290293
do {
291294
auto rmean = lrData.back().rMax + drStep / 2;
292-
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 10);
295+
rphiBin = rmean * TMath::Pi() * 2 / (nStave * 15);
293296
lrData.emplace_back(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin);
294297
} while (lrData.back().rMax < 44. - kToler);
295298

@@ -309,15 +312,20 @@ void configLayers()
309312
} while (lrData.back().rMax < 55. - kToler);
310313

311314
zSpanH = 120.f;
312-
lrData.emplace_back(lrData.back().rMax, 56.5, zSpanH);
313-
lrData.emplace_back(lrData.back().rMax, 60.5, zSpanH);
314-
lrData.emplace_back(lrData.back().rMax, 61.5, zSpanH);
315+
zBin = 10.;
316+
rphiBin = lrData.back().rMax * TMath::Pi() * 2 / 18;
317+
lrData.emplace_back(lrData.back().rMax, 56.5, zSpanH, zBin, rphiBin);
318+
rphiBin = lrData.back().rMax * TMath::Pi() * 2 / 18;
319+
lrData.emplace_back(lrData.back().rMax, 60.5, zSpanH, zBin, rphiBin);
320+
rphiBin = lrData.back().rMax * TMath::Pi() * 2 / 18;
321+
lrData.emplace_back(lrData.back().rMax, 61.5, zSpanH, zBin, rphiBin);
315322

316323
zSpanH = 150.f;
317324
drStep = 3.5;
318325
zBin = 15.;
319-
rphiBin = 10;
320326
do {
327+
auto rmean = lrData.back().rMax + drStep / 2;
328+
rphiBin = rmean * TMath::Pi() * 2 / (NSect * 2);
321329
lrData.emplace_back(lrData.back().rMax, lrData.back().rMax + drStep, zSpanH, zBin, rphiBin);
322330
} while (lrData.back().rMax < 68.5 - kToler);
323331

@@ -343,7 +351,7 @@ void configLayers()
343351
zBin = 2;
344352
{
345353
auto rmean = (lrData.back().rMax + 78.5) / 2;
346-
rphiBin = rmean * TMath::Pi() * 2 / (NSect * 12);
354+
rphiBin = rmean * TMath::Pi() * 2 / (NSect * 24);
347355
lrData.emplace_back(lrData.back().rMax, 84.5, zSpanH, zBin, rphiBin);
348356
}
349357

0 commit comments

Comments
 (0)