Skip to content

Commit bbf7739

Browse files
committed
Preparing to remove mZ member from TRKLayer + getter in GeometryTGeo
1 parent 5efdfee commit bbf7739

File tree

3 files changed

+58
-32
lines changed

3 files changed

+58
-32
lines changed

Detectors/Upgrades/ALICE3/TRK/base/include/TRKBase/GeometryTGeo.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,13 @@ class GeometryTGeo : public o2::detectors::DetMatrixCache
7878
void Print(Option_t* opt = "") const;
7979
void PrintChipID(int index, int subDetID, int petalcase, int disk, int lay, int stave, int halfstave) const;
8080

81+
int getSubDetID(int index) const;
82+
int getPetalCase(int index) const;
8183
int getLayer(int index) const;
8284
int getStave(int index) const;
8385
int getHalfStave(int index) const;
84-
int getSubDetID(int index) const;
85-
int getPetalCase(int index) const;
8686
int getDisk(int index) const;
87+
int getModule(int index) const;
8788

8889
/// This routine computes the chip index number from the subDetID, petal, disk, layer, stave /// TODO: retrieve also from chip when chips will be available
8990
/// \param int subDetID The subdetector ID, 0 for VD, 1 for MLOT
@@ -130,13 +131,11 @@ class GeometryTGeo : public o2::detectors::DetMatrixCache
130131

131132
TString getMatrixPath(int index) const;
132133

133-
static const char* composeSymNameTRK(int d)
134-
{
135-
return Form("%s_%d", o2::detectors::DetID(o2::detectors::DetID::TRK).getName(), d);
136-
}
134+
static const char* composeSymNameTRK(int d);
137135
static const char* composeSymNameLayer(int d, int layer);
138136
static const char* composeSymNameStave(int d, int layer);
139-
static const char* composeSymNameChip(int d, int lr);
137+
static const char* composeSymNameModule(int d, int layer);
138+
static const char* composeSymNameChip(int d, int layer);
140139
static const char* composeSymNameSensor(int d, int layer);
141140

142141
protected:

Detectors/Upgrades/ALICE3/TRK/base/src/GeometryTGeo.cxx

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,7 @@ int GeometryTGeo::getPetalCase(int index) const
133133
int subDetID = getSubDetID(index);
134134
if (subDetID == 1) {
135135
return -1;
136-
}
137-
138-
else if (index <= mLastChipIndexVD[mNumberOfPetalsVD - 1]) {
136+
} else if (index <= mLastChipIndexVD[mNumberOfPetalsVD - 1]) {
139137
while (index > mLastChipIndexVD[petalcase]) {
140138
petalcase++;
141139
}
@@ -159,7 +157,7 @@ int GeometryTGeo::getLayer(int index) const
159157
while (index > mLastChipIndex[lay]) {
160158
lay++;
161159
}
162-
return lay - mNumberOfPetalsVD; /// numeration of MLOT layesrs starting from 0
160+
return lay - mNumberOfPetalsVD; /// numeration of MLOT layers starting from 0
163161
}
164162
return -1; /// -1 if not found
165163
}
@@ -214,6 +212,12 @@ int GeometryTGeo::getDisk(int index) const
214212
return -1; /// not found or ML/OT
215213
}
216214

215+
//__________________________________________________________________________
216+
int GeometryTGeo::getModule(int index) const
217+
{
218+
int subDetID = getSubDetID(index);
219+
}
220+
217221
//__________________________________________________________________________
218222
int GeometryTGeo::getChipIndex(int subDetID, int petalcase, int disk, int lay, int stave, int halfstave) const
219223
{
@@ -370,24 +374,34 @@ void GeometryTGeo::fillMatrixCache(int mask)
370374

371375
//__________________________________________________________________________
372376

373-
const char* GeometryTGeo::composeSymNameLayer(int d, int lr)
377+
const char* GeometryTGeo::composeSymNameTRK(int d)
378+
{
379+
return Form("%s_%d", o2::detectors::DetID(o2::detectors::DetID::TRK).getName(), d);
380+
}
381+
382+
const char* GeometryTGeo::composeSymNameLayer(int d, int layer)
383+
{
384+
return Form("%s/%s%d", composeSymNameTRK(d), getTRKLayerPattern(), layer);
385+
}
386+
387+
const char* GeometryTGeo::composeSymNameStave(int d, int layer)
374388
{
375-
return Form("%s/%s%d", composeSymNameTRK(d), getTRKLayerPattern(), lr);
389+
return Form("%s/%s%d", composeSymNameLayer(d, layer), getTRKStavePattern(), layer);
376390
}
377391

378-
const char* GeometryTGeo::composeSymNameStave(int d, int lr)
392+
const char* GeometryTGeo::composeSymNameModule(int d, int layer)
379393
{
380-
return Form("%s/%s%d", composeSymNameLayer(d, lr), getTRKStavePattern(), lr);
394+
return Form("%s/%s%d", composeSymNameStave(d, layer), getTRKModulePattern(), layer);
381395
}
382396

383-
const char* GeometryTGeo::composeSymNameChip(int d, int lr)
397+
const char* GeometryTGeo::composeSymNameChip(int d, int layer)
384398
{
385-
return Form("%s/%s%d", composeSymNameStave(d, lr), getTRKChipPattern(), lr);
399+
return Form("%s/%s%d", composeSymNameStave(d, layer), getTRKChipPattern(), layer);
386400
}
387401

388-
const char* GeometryTGeo::composeSymNameSensor(int d, int lr)
402+
const char* GeometryTGeo::composeSymNameSensor(int d, int layer)
389403
{
390-
return Form("%s/%s%d", composeSymNameChip(d, lr), getTRKSensorPattern(), lr);
404+
return Form("%s/%s%d", composeSymNameChip(d, layer), getTRKSensorPattern(), layer);
391405
}
392406

393407
//__________________________________________________________________________

Detectors/Upgrades/ALICE3/TRK/simulation/src/TRKLayer.cxx

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,9 @@ TGeoVolume* TRKLayer::createStave(std::string type)
201201
} else if (type == "flat") {
202202
double moduleLength = constants::ML::length;
203203
double staveWidth = constants::ML::width;
204+
double staveLength = constants::ML::length;
204205

205-
stave = new TGeoBBox(staveWidth / 2, mChipThickness / 2, mZ / 2);
206+
stave = new TGeoBBox(staveWidth / 2, mChipThickness / 2, staveLength / 2);
206207
staveVol = new TGeoVolume(staveName.c_str(), stave, medAir);
207208

208209
int nModules = 10;
@@ -220,11 +221,12 @@ TGeoVolume* TRKLayer::createStave(std::string type)
220221
staveVol->AddNode(moduleVol, iModule, trans);
221222
}
222223
} else if (type == "staggered") {
223-
double moduleWidth = constants::ML::width;
224-
double moduleLength = constants::ML::length;
224+
double moduleWidth = constants::moduleMLOT::width;
225+
double moduleLength = constants::moduleMLOT::length;
225226
double staveWidth = constants::OT::width; // Each stave has two modules (based on the LOI design)
227+
double staveLength = constants::OT::length;
226228

227-
stave = new TGeoBBox(staveWidth / 2, mLogicalVolumeThickness / 2, mZ / 2);
229+
stave = new TGeoBBox(staveWidth / 2, mLogicalVolumeThickness / 2, staveLength / 2);
228230
staveVol = new TGeoVolume(staveName.c_str(), stave, medAir);
229231

230232
int nModules = 20;
@@ -259,32 +261,36 @@ TGeoVolume* TRKLayer::createStave(std::string type)
259261

260262
void TRKLayer::createLayer(TGeoVolume* motherVolume)
261263
{
262-
TGeoMedium* medSi = gGeoManager->GetMedium("TRK_SILICON$");
263264
TGeoMedium* medAir = gGeoManager->GetMedium("TRK_AIR$");
264265

265-
std::string staveName = GeometryTGeo::getTRKStavePattern() + std::to_string(mLayerNumber),
266-
chipName = GeometryTGeo::getTRKChipPattern() + std::to_string(mLayerNumber),
267-
sensName = GeometryTGeo::getTRKSensorPattern() + std::to_string(mLayerNumber);
268-
269266
double layerThickness = mChipThickness;
270267
if (mLayout != eLayout::kCylinder) {
271268
layerThickness = mLogicalVolumeThickness;
272269
}
273-
TGeoTube* layer = new TGeoTube(mInnerRadius - 0.333 * layerThickness, mInnerRadius + 0.667 * layerThickness, mZ / 2);
274270

275-
TGeoVolume* layerVol = new TGeoVolume(mLayerName.c_str(), layer, medAir);
276-
layerVol->SetLineColor(kYellow);
271+
TGeoTube* layer;
272+
TGeoVolume* layerVol;
277273

278274
if (mLayout == eLayout::kCylinder) {
275+
layer = new TGeoTube(mInnerRadius - 0.333 * layerThickness, mInnerRadius + 0.667 * layerThickness, mZ / 2);
276+
layerVol = new TGeoVolume(mLayerName.c_str(), layer, medAir);
277+
279278
TGeoVolume* staveVol = createStave("cylinder");
280279
LOGP(info, "Inserting {} in {} ", staveVol->GetName(), layerVol->GetName());
281280
layerVol->AddNode(staveVol, 1, nullptr);
282281
} else if (mLayout == eLayout::kTurboStaves) {
283-
// Compute the number of staves
282+
double layerLength = constants::ML::length;
284283
double staveWidth = constants::ML::width; // Each stave has two modules (based on the LOI design)
284+
285285
if (mInnerRadius > 25) {
286+
layerLength = constants::OT::length;
286287
staveWidth = constants::OT::width; // Outer layers have two modules per stave
287288
}
289+
290+
layer = new TGeoTube(mInnerRadius - 0.333 * layerThickness, mInnerRadius + 0.667 * layerThickness, layerLength / 2);
291+
layerVol = new TGeoVolume(mLayerName.c_str(), layer, medAir);
292+
293+
// Compute the number of staves
288294
int nStaves = (int)std::ceil(mInnerRadius * 2 * TMath::Pi() / staveWidth);
289295
nStaves += nStaves % 2; // Require an even number of staves
290296

@@ -311,6 +317,11 @@ void TRKLayer::createLayer(TGeoVolume* motherVolume)
311317
layerVol->AddNode(staveVol, iStave, trans);
312318
}
313319
} else if (mLayout == kStaggered) {
320+
double layerLength = constants::OT::length;
321+
322+
layer = new TGeoTube(mInnerRadius - 0.333 * layerThickness, mInnerRadius + 0.667 * layerThickness, layerLength / 2);
323+
layerVol = new TGeoVolume(mLayerName.c_str(), layer, medAir);
324+
314325
// Compute the number of staves
315326
double staveWidth = constants::OT::width; // Each stave has two modules (based on the LOI design)
316327
int nStaves = (int)std::ceil(mInnerRadius * 2 * TMath::Pi() / staveWidth);
@@ -341,6 +352,8 @@ void TRKLayer::createLayer(TGeoVolume* motherVolume)
341352
} else {
342353
LOGP(fatal, "Layout not implemented");
343354
}
355+
layerVol->SetLineColor(kYellow);
356+
344357
LOGP(info, "Inserting {} in {} ", layerVol->GetName(), motherVolume->GetName());
345358
motherVolume->AddNode(layerVol, 1, nullptr);
346359
}

0 commit comments

Comments
 (0)