Skip to content

Commit dde23f5

Browse files
Mario SittaMario Sitta
authored andcommitted
Fixed number of half barrels
1 parent 5ae3344 commit dde23f5

3 files changed

Lines changed: 13 additions & 30 deletions

File tree

Detectors/ITSMFT/ITS/base/include/ITSBase/GeometryTGeo.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class GeometryTGeo : public o2::itsmft::GeometryTGeo
108108
int getNumberOfModules(int lay) const { return mNumberOfModules[lay]; }
109109
int getNumberOfHalfStaves(int lay) const { return mNumberOfHalfStaves[lay]; }
110110
int getNumberOfStaves(int lay) const { return mNumberOfStaves[lay]; }
111-
int getNumberOfHalfBarrels(int lay) const { return mNumberOfHalfBarrels[lay]; }
111+
int getNumberOfHalfBarrels() const { return mNumberOfHalfBarrels; }
112112
int getNumberOfLayers() const { return mNumberOfLayers; }
113113
int getChipIndex(int lay, int detInLay) const { return getFirstChipIndex(lay) + detInLay; }
114114
/// This routine computes the chip index number from the layer, stave, and chip number in stave
@@ -313,7 +313,7 @@ class GeometryTGeo : public o2::itsmft::GeometryTGeo
313313

314314
/// Determines the number of halfbarrels in the layer
315315
/// \param lay: layer number, starting from 0
316-
int extractNumberOfHalfBarrels(int lay) const;
316+
int extractNumberOfHalfBarrels() const;
317317

318318
/// Determines the number of layers in the Geometry
319319
/// \param lay: layer number, starting from 0
@@ -351,7 +351,7 @@ class GeometryTGeo : public o2::itsmft::GeometryTGeo
351351
static constexpr int MAXLAYERS = 15; ///< max number of active layers
352352

353353
Int_t mNumberOfLayers; ///< number of layers
354-
std::vector<int> mNumberOfHalfBarrels; ///< the number of halfbarrels/layer(layer)
354+
Int_t mNumberOfHalfBarrels; ///< number of halfbarrels
355355
std::vector<int> mNumberOfStaves; ///< number of staves/layer(layer)
356356
std::vector<int> mNumberOfHalfStaves; ///< the number of substaves/stave(layer)
357357
std::vector<int> mNumberOfModules; ///< number of modules/substave(layer)

Detectors/ITSMFT/ITS/base/src/GeometryTGeo.cxx

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ bool GeometryTGeo::getChipId(int index, int& lay, int& hba, int& sta, int& hsta,
260260
{
261261
lay = getLayer(index);
262262
index -= getFirstChipIndex(lay);
263-
hba = mNumberOfHalfBarrels[lay] > 0 ? index / mNumberOfChipsPerHalfBarrel[lay] : -1;
263+
hba = mNumberOfHalfBarrels > 0 ? index / mNumberOfChipsPerHalfBarrel[lay] : -1;
264264
index %= mNumberOfChipsPerHalfBarrel[lay];
265265
sta = index / mNumberOfChipsPerStave[lay];
266266
index %= mNumberOfChipsPerStave[lay];
@@ -335,7 +335,7 @@ TGeoHMatrix* GeometryTGeo::extractMatrixSensor(int index) const
335335
path +=
336336
Form("%s%d_1/", GeometryTGeo::getITSLayerPattern(), lay);
337337

338-
if (mNumberOfHalfBarrels[lay] > 0) {
338+
if (mNumberOfHalfBarrels > 0) {
339339
path += Form("%s%d_%d/", GeometryTGeo::getITSHalfBarrelPattern(), lay, hba);
340340
}
341341
path +=
@@ -393,7 +393,6 @@ void GeometryTGeo::Build(int loadTrans)
393393
}
394394

395395
mNumberOfStaves.resize(mNumberOfLayers);
396-
mNumberOfHalfBarrels.resize(mNumberOfLayers);
397396
mNumberOfHalfStaves.resize(mNumberOfLayers);
398397
mNumberOfModules.resize(mNumberOfLayers);
399398
mNumberOfChipsPerModule.resize(mNumberOfLayers);
@@ -405,16 +404,16 @@ void GeometryTGeo::Build(int loadTrans)
405404
mLastChipIndex.resize(mNumberOfLayers);
406405
int numberOfChips = 0;
407406

407+
mNumberOfHalfBarrels = extractNumberOfHalfBarrels();
408408
for (int i = 0; i < mNumberOfLayers; i++) {
409-
mNumberOfHalfBarrels[i] = extractNumberOfHalfBarrels(i);
410409
mNumberOfStaves[i] = extractNumberOfStaves(i);
411410
mNumberOfHalfStaves[i] = extractNumberOfHalfStaves(i);
412411
mNumberOfModules[i] = extractNumberOfModules(i);
413412
mNumberOfChipsPerModule[i] = extractNumberOfChipsPerModule(i, mNumberOfChipRowsPerModule[i]);
414413
mNumberOfChipsPerHalfStave[i] = mNumberOfChipsPerModule[i] * Max(1, mNumberOfModules[i]);
415414
mNumberOfChipsPerStave[i] = mNumberOfChipsPerHalfStave[i] * Max(1, mNumberOfHalfStaves[i]);
416415
mNumberOfChipsPerLayer[i] = mNumberOfChipsPerStave[i] * mNumberOfStaves[i];
417-
mNumberOfChipsPerHalfBarrel[i] = mNumberOfChipsPerLayer[i] / Max(1, mNumberOfHalfBarrels[i]);
416+
mNumberOfChipsPerHalfBarrel[i] = mNumberOfChipsPerLayer[i] / Max(1, mNumberOfHalfBarrels);
418417
numberOfChips += mNumberOfChipsPerLayer[i];
419418
mLastChipIndex[i] = numberOfChips - 1;
420419
}
@@ -553,27 +552,11 @@ int GeometryTGeo::extractNumberOfLayers()
553552
}
554553

555554
//__________________________________________________________________________
556-
int GeometryTGeo::extractNumberOfHalfBarrels(int lay) const
555+
int GeometryTGeo::extractNumberOfHalfBarrels() const
557556
{
558-
int numberOfHalfBarrels = 0;
559-
char laynam[30];
560-
snprintf(laynam, 30, "%s%d", getITSLayerPattern(), lay);
561-
TGeoVolume* volLr = gGeoManager->GetVolume(laynam);
562-
if (!volLr) {
563-
LOG(FATAL) << "can't find " << laynam << " volume";
564-
return -1;
565-
}
557+
// We take in account that we always have 2 and only 2 half barrels
558+
int numberOfHalfBarrels = 2;
566559

567-
// Loop on all layer nodes, count HalfBarrel volumes by checking names
568-
int nNodes = volLr->GetNodes()->GetEntries();
569-
for (int j = 0; j < nNodes; j++) {
570-
// LOG(INFO) << "L" << lay << " " << j << " of " << nNodes << " "
571-
// << volLr->GetNodes()->At(j)->GetName() << " "
572-
// << getITSHalfBarrelPattern() << " -> " << numberOfHalfBarrels;
573-
if (strstr(volLr->GetNodes()->At(j)->GetName(), getITSHalfBarrelPattern())) {
574-
numberOfHalfBarrels++;
575-
}
576-
}
577560
return numberOfHalfBarrels;
578561
}
579562

@@ -582,7 +565,7 @@ int GeometryTGeo::extractNumberOfStaves(int lay) const
582565
{
583566
int numberOfStaves = 0;
584567
char hbarnam[30];
585-
if (mNumberOfHalfBarrels[lay] == 0) {
568+
if (mNumberOfHalfBarrels == 0) {
586569
snprintf(hbarnam, 30, "%s%d", getITSLayerPattern(), lay);
587570
} else {
588571
snprintf(hbarnam, 30, "%s%d", getITSHalfBarrelPattern(), lay);
@@ -603,7 +586,7 @@ int GeometryTGeo::extractNumberOfStaves(int lay) const
603586
numberOfStaves++;
604587
}
605588
}
606-
return mNumberOfHalfBarrels[lay] > 0 ? (numberOfStaves * mNumberOfHalfBarrels[lay]) : numberOfStaves;
589+
return mNumberOfHalfBarrels > 0 ? (numberOfStaves * mNumberOfHalfBarrels) : numberOfStaves;
607590
}
608591

609592
//__________________________________________________________________________

Detectors/ITSMFT/ITS/macros/test/ITSMisaligner.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ void ITSMisaligner(const std::string& ccdbHost = "http://ccdb-test.cern.ch:8080"
4545
pars = generateMisalignment(xLay, yLay, zLay, psiLay, thetaLay, phiLay);
4646
params.emplace_back(symname.c_str(), -1, pars[0], pars[1], pars[2], pars[3], pars[4], pars[5], glo);
4747

48-
for (int ihb = 0; ihb < geom->getNumberOfHalfBarrels(ilr); ihb++) {
48+
for (int ihb = 0; ihb < geom->getNumberOfHalfBarrels(); ihb++) {
4949
symname = geom->composeSymNameHalfBarrel(ilr, ihb);
5050
pars = generateMisalignment(xSta, ySta, zSta, psiSta, thetaSta, phiSta);
5151
params.emplace_back(symname.c_str(), -1, pars[0], pars[1], pars[2], pars[3], pars[4], pars[5], glo);

0 commit comments

Comments
 (0)