Skip to content

Commit c707b0a

Browse files
committed
ITS3: move pixelarray to start at zero phi
Signed-off-by: Felix Schlepper <[email protected]>
1 parent ef4cb87 commit c707b0a

File tree

12 files changed

+88
-87
lines changed

12 files changed

+88
-87
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ void CheckDigitsDensity(int nEvents = 10000, std::string digitFileName = "it3dig
6464
{
6565
gROOT->SetBatch(batch);
6666
LOGP(debug, "Checking Digit ITS3 Density");
67-
// Vars
67+
std::array<SSAlpide, 3> mSuperSegmentations{0, 1, 2};
6868

6969
// Geometry
7070
o2::base::GeometryManager::loadGeometry(geomFileName);
@@ -103,8 +103,8 @@ void CheckDigitsDensity(int nEvents = 10000, std::string digitFileName = "it3dig
103103
// goto curved coordinates
104104
float x{0.f}, y{0.f}, z{0.f};
105105
float xFlat{0.f}, yFlat{0.f};
106-
its3::SuperSegmentations[layer].detectorToLocal(row, col, xFlat, z);
107-
its3::SuperSegmentations[layer].flatToCurved(xFlat, 0., x, y);
106+
mSuperSegmentations[layer].detectorToLocal(row, col, xFlat, z);
107+
mSuperSegmentations[layer].flatToCurved(xFlat, 0., x, y);
108108
const o2::math_utils::Point3D<double> locD(x, y, z);
109109
const auto gloD = gman->getMatrixL2G(id)(locD); // convert to global
110110
const auto R = std::hypot(gloD.X(), gloD.Y());

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ void CheckDigitsITS3(std::string digifile = "it3digits.root", std::string hitfil
5151
using o2::itsmft::Hit;
5252

5353
using o2::itsmft::SegmentationAlpide;
54+
std::array<its3::SegmentationSuperAlpide, 3> mSuperSegmentations{0, 1, 2};
5455

5556
TFile* f = TFile::Open("CheckDigits.root", "recreate");
5657
TNtuple* nt = new TNtuple("ntd", "digit ntuple", "id:x:y:z:rowD:colD:rowH:colH:xlH:zlH:xlcH:zlcH:dx:dz");
@@ -165,8 +166,8 @@ void CheckDigitsITS3(std::string digifile = "it3digits.root", std::string hitfil
165166
if (isIB) {
166167
// ITS3 IB
167168
float xFlat{0.f}, yFlat{0.f};
168-
its3::SuperSegmentations[layer].detectorToLocal(ix, iz, xFlat, z);
169-
its3::SuperSegmentations[layer].flatToCurved(xFlat, 0., x, y);
169+
mSuperSegmentations[layer].detectorToLocal(ix, iz, xFlat, z);
170+
mSuperSegmentations[layer].flatToCurved(xFlat, 0., x, y);
170171
} else {
171172
// ITS2 OB
172173
SegmentationAlpide::detectorToLocal(ix, iz, x, z);
@@ -202,12 +203,12 @@ void CheckDigitsITS3(std::string digifile = "it3digits.root", std::string hitfil
202203

203204
if (isIB) {
204205
float xFlat{0.}, yFlat{0.};
205-
its3::SuperSegmentations[layer].curvedToFlat(xyzLocM.X(), xyzLocM.Y(), xFlat, yFlat);
206+
mSuperSegmentations[layer].curvedToFlat(xyzLocM.X(), xyzLocM.Y(), xFlat, yFlat);
206207
xyzLocM.SetCoordinates(xFlat, yFlat, xyzLocM.Z());
207-
its3::SuperSegmentations[layer].curvedToFlat(locD.X(), locD.Y(), xFlat, yFlat);
208+
mSuperSegmentations[layer].curvedToFlat(locD.X(), locD.Y(), xFlat, yFlat);
208209
locD.SetCoordinates(xFlat, yFlat, locD.Z());
209-
if (auto v1 = !its3::SuperSegmentations[layer].localToDetector(xyzLocM.X(), xyzLocM.Z(), row, col),
210-
v2 = !its3::SuperSegmentations[layer].detectorToLocal(row, col, xlc, zlc);
210+
if (auto v1 = !mSuperSegmentations[layer].localToDetector(xyzLocM.X(), xyzLocM.Z(), row, col),
211+
v2 = !mSuperSegmentations[layer].detectorToLocal(row, col, xlc, zlc);
211212
v1 || v2) {
212213
continue;
213214
}
@@ -223,7 +224,7 @@ void CheckDigitsITS3(std::string digifile = "it3digits.root", std::string hitfil
223224

224225
(isIB) ? ++nDigitFilledIB : ++nDigitFilledOB;
225226
} // end loop on digits array
226-
} // end loop on ROFRecords array
227+
} // end loop on ROFRecords array
227228

228229
auto canvXY = new TCanvas("canvXY", "", 1600, 1600);
229230
canvXY->Divide(2, 2);

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

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,6 @@
2424
#include "TGLViewer.h"
2525
#include "TMath.h"
2626

27-
#include "TEveGeoNode.h"
28-
#include "TEveManager.h"
29-
#include "TEveViewer.h"
30-
#include "TEvePointSet.h"
31-
#include "TEveTrackPropagator.h"
32-
#include "TEveTrack.h"
33-
#include "TEveVSDStructs.h"
34-
3527
#include "TFile.h"
3628
#include "TGraph.h"
3729
#include "TH1D.h"
@@ -64,21 +56,22 @@ void CheckSuperAlpideSegment(bool isTestDetectorToLocal = false,
6456
static constexpr unsigned int mNCols{SegmentationSuperAlpide::mNCols};
6557
static constexpr unsigned int mNRows{SegmentationSuperAlpide::mNRows};
6658
static constexpr unsigned int nPixels{mNCols * mNRows};
59+
std::array<SegmentationSuperAlpide, 3> mSuperSegmentations{0, 1, 2};
6760

6861
if (isTestDetectorToLocal || isTestFlatToCurved) {
6962
namespace cp = constants::pixelarray;
70-
TH2I* h_raw_col = new TH2I("h_raw_col", "raws and cols sown;raw;col", mNRows, 0, mNRows, mNCols, 0, mNCols);
71-
TH2D* h_xLocal_zLocal = new TH2D("h_xLocal_zLocal", "x and z from raws and cols;xLocal;zLocal", mNRows, -cp::length / 2, cp::length / 2, mNCols, -cp::width / 2, cp::width / 2);
72-
TH2I* h_raw_col_translate = new TH2I("h_raw_col_translate", "raws and cols from x and z;raw;col", mNRows, 0, mNRows, mNCols, 0, mNCols);
73-
TGraph* g_raw_xLocal = new TGraph();
74-
g_raw_xLocal->SetMarkerStyle(20);
75-
g_raw_xLocal->SetMarkerSize(0.2);
63+
TH2I* h_row_col = new TH2I("h_row_col", "rows and cols sown;row;col", mNRows, 0, mNRows, mNCols, 0, mNCols);
64+
TH2D* h_xLocal_zLocal = new TH2D("h_xLocal_zLocal", "x and z from rows and cols;xLocal;zLocal", mNRows, -cp::length / 2, cp::length / 2, mNCols, -cp::width / 2, cp::width / 2);
65+
TH2I* h_row_col_translate = new TH2I("h_row_col_translate", "rows and cols from x and z;row;col", mNRows, 0, mNRows, mNCols, 0, mNCols);
66+
TGraph* g_row_xLocal = new TGraph();
67+
g_row_xLocal->SetMarkerStyle(20);
68+
g_row_xLocal->SetMarkerSize(0.2);
7669
TGraph* g_col_zLocal = new TGraph();
7770
g_col_zLocal->SetMarkerStyle(20);
7871
g_col_zLocal->SetMarkerSize(0.2);
79-
TGraph* g_raw_xLocal_translate = new TGraph();
80-
g_raw_xLocal_translate->SetMarkerStyle(20);
81-
g_raw_xLocal_translate->SetMarkerSize(0.2);
72+
TGraph* g_row_xLocal_translate = new TGraph();
73+
g_row_xLocal_translate->SetMarkerStyle(20);
74+
g_row_xLocal_translate->SetMarkerSize(0.2);
8275
TGraph* g_col_zLocal_translate = new TGraph();
8376
g_col_zLocal_translate->SetMarkerStyle(20);
8477

@@ -92,16 +85,16 @@ void CheckSuperAlpideSegment(bool isTestDetectorToLocal = false,
9285
int col_trans = -1;
9386
seg.detectorToLocal(i, j, xLocal, zLocal);
9487
seg.localToDetector(xLocal, zLocal, row_trans, col_trans);
95-
g_raw_xLocal->SetPoint(nPoint, i, xLocal);
88+
g_row_xLocal->SetPoint(nPoint, i, xLocal);
9689
g_col_zLocal->SetPoint(nPoint, j, zLocal);
97-
g_raw_xLocal_translate->SetPoint(nPoint, xLocal, row_trans);
90+
g_row_xLocal_translate->SetPoint(nPoint, xLocal, row_trans);
9891
g_col_zLocal_translate->SetPoint(nPoint++, zLocal, col_trans);
9992

10093
bool pattern = ((i >= 50 && i <= 100) || (i >= 250 && i <= 350)) && ((j >= 30 && j <= 70) || (j >= 100 && j <= 120));
10194
if (pattern) {
102-
h_raw_col->Fill(i, j);
95+
h_row_col->Fill(i, j);
10396
h_xLocal_zLocal->Fill(xLocal, zLocal);
104-
h_raw_col_translate->Fill(row_trans, col_trans);
97+
h_row_col_translate->Fill(row_trans, col_trans);
10598
}
10699
}
107100
}
@@ -110,29 +103,30 @@ void CheckSuperAlpideSegment(bool isTestDetectorToLocal = false,
110103
// gStyle->SetPalette(kCMYK);
111104
c1->Divide(3, 1);
112105
c1->cd(1);
113-
h_raw_col->Draw("colz");
106+
h_row_col->Draw("colz");
114107
c1->cd(2);
115108
h_xLocal_zLocal->Draw("colz");
116109
c1->cd(3);
117-
h_raw_col_translate->Draw("colz");
110+
h_row_col_translate->Draw("colz");
118111

119112
TCanvas* c2 = new TCanvas("c2", "c2", 1600, 400);
120113
c2->Divide(4, 1);
121114
c2->cd(1);
122-
g_raw_xLocal->SetTitle("xLocal vs raw;raw;xLocal");
123-
g_raw_xLocal->Draw("same ap");
115+
g_row_xLocal->SetTitle("xLocal vs row;row;xLocal");
116+
g_row_xLocal->Draw("same ap");
124117
c2->cd(2);
125118
g_col_zLocal->SetTitle("zLocal vs col;col;zLocal");
126119
g_col_zLocal->Draw("same ap");
127120
c2->cd(3);
128-
g_raw_xLocal_translate->SetTitle("raw_translate vs xLocal;xLocal;raw_translate");
129-
g_raw_xLocal_translate->Draw("same ap");
121+
g_row_xLocal_translate->SetTitle("row_translate vs xLocal;xLocal;row_translate");
122+
g_row_xLocal_translate->Draw("same ap");
130123
c2->cd(4);
131124
g_col_zLocal_translate->SetTitle("col_translate vs zLocal;zLocal;col_translate");
132125
g_col_zLocal_translate->Draw("same ap");
133126
}
134127

135128
if (isTestLocalToGlobal) {
129+
o2::base::GeometryManager::loadGeometry();
136130
namespace cp = constants::pixelarray;
137131
TH2D* h_xCurved_yCurved = new TH2D("h_xCurved_yCurved", "from flat to curved;x;y", 200, -1, 4, 200, -2, 3);
138132
TH2D* h_xFlat_yFlat = new TH2D("h_xFlat_yFlat", "from curved to flat ;x;y", 200, -1, 4, 200, -2, 3);
@@ -170,11 +164,11 @@ void CheckSuperAlpideSegment(bool isTestDetectorToLocal = false,
170164
float xLocal_translate = 0;
171165
float yLocal_translate = 0;
172166

173-
SuperSegmentations[iLayer].detectorToLocal(row, col, xLocal, zLocal);
174-
SuperSegmentations[iLayer].flatToCurved(xLocal, 0., xCurved, yCurved);
167+
mSuperSegmentations[iLayer].detectorToLocal(row, col, xLocal, zLocal);
168+
mSuperSegmentations[iLayer].flatToCurved(xLocal, 0., xCurved, yCurved);
175169
double posLocal[3] = {xCurved, yCurved, zLocal};
176170
double posGlobal[3] = {0, 0, 0};
177-
SuperSegmentations[iLayer].curvedToFlat(xCurved, yCurved, xLocal_translate, yLocal_translate);
171+
mSuperSegmentations[iLayer].curvedToFlat(xCurved, yCurved, xLocal_translate, yLocal_translate);
178172
matrix->LocalToMaster(posLocal, posGlobal);
179173

180174
h_xCurved_yCurved->Fill(xLocal, 0);

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ constexpr auto nRows{SegmentationSuperAlpide::mNRows};
4141
constexpr auto nCols{SegmentationSuperAlpide::mNCols};
4242
constexpr auto fLength{SegmentationSuperAlpide::mLength};
4343
constexpr auto fWidth{SegmentationSuperAlpide::mWidth};
44+
std::array<SegmentationSuperAlpide, 3> mSuperSegmentations{0, 1, 2};
4445

4546
TH2* DrawReverseBins(TH2* h)
4647
{
@@ -140,10 +141,10 @@ void CheckSuperAlpideSegmentTrans()
140141
g_arc_inner->AddPoint(x_inner, y_inner);
141142
g_arc_outer->AddPoint(x_outer, y_outer);
142143
// Test Segmentation
143-
SuperSegmentations[iLayer].curvedToFlat(x_inner, y_inner, x_inner_flat, y_inner_flat);
144-
SuperSegmentations[iLayer].flatToCurved(x_inner_flat, y_inner_flat, x_inner_curved, y_inner_curved);
145-
SuperSegmentations[iLayer].curvedToFlat(x_outer, y_outer, x_outer_flat, y_outer_flat);
146-
SuperSegmentations[iLayer].flatToCurved(x_outer_flat, y_outer_flat, x_outer_curved, y_outer_curved);
144+
mSuperSegmentations[iLayer].curvedToFlat(x_inner, y_inner, x_inner_flat, y_inner_flat);
145+
mSuperSegmentations[iLayer].flatToCurved(x_inner_flat, y_inner_flat, x_inner_curved, y_inner_curved);
146+
mSuperSegmentations[iLayer].curvedToFlat(x_outer, y_outer, x_outer_flat, y_outer_flat);
147+
mSuperSegmentations[iLayer].flatToCurved(x_outer_flat, y_outer_flat, x_outer_curved, y_outer_curved);
147148
g_arc_inner_flat->AddPoint(x_inner_flat, y_inner_flat);
148149
g_arc_outer_flat->AddPoint(x_outer_flat, y_outer_flat);
149150
h_f2c_res->Fill(x_inner - x_inner_curved, y_inner - y_inner_curved);
@@ -201,10 +202,9 @@ void CheckSuperAlpideSegmentTrans()
201202
for (int iCol{0}; iCol < nCols; ++iCol) {
202203
float xRow{0}, zCol{0};
203204
int iiRow{0}, iiCol{0};
204-
auto v1 =
205-
SuperSegmentations[iLayer].detectorToLocal(iRow, iCol, xRow, zCol);
206-
auto v2 = SuperSegmentations[iLayer].localToDetector(xRow, zCol, iiRow,
207-
iiCol);
205+
auto v1 = mSuperSegmentations[iLayer].detectorToLocal(iRow, iCol, xRow, zCol);
206+
auto v2 = mSuperSegmentations[iLayer].localToDetector(xRow, zCol, iiRow,
207+
iiCol);
208208
// Info("L2D",
209209
// "iRow=%d, iCol=%d --d2l(%s)--> xRow=%f, zCol=%f --l2d(%s)--> "
210210
// "iiRow=%d, iiCol=%d",

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ void CheckTileNumbering(const std::string& inputGeom = "", const std::string& de
102102
Int_t colors[NRGBs] = {kWhite, kRed, kGray};
103103
TColor::SetPalette(NRGBs, colors, 1.0);
104104

105+
std::array<o2::its3::SegmentationSuperAlpide, 3> mSuperSegmentations{0, 1, 2};
106+
105107
const float phiOffsetL0 = std::asin(o2::its3::constants::equatorialGap / 2.f / o2::its3::constants::radii[0]);
106108
const float phiOffsetL1 = std::asin(o2::its3::constants::equatorialGap / 2.f / o2::its3::constants::radii[1]);
107109
const float phiOffsetL2 = std::asin(o2::its3::constants::equatorialGap / 2.f / o2::its3::constants::radii[2]);
@@ -142,7 +144,7 @@ void CheckTileNumbering(const std::string& inputGeom = "", const std::string& de
142144
for (unsigned int iDet{0}; iDet <= o2::its3::constants::detID::l2IDEnd; ++iDet) {
143145
int sensorID = o2::its3::constants::detID::getSensorID(iDet);
144146
int layerID = o2::its3::constants::detID::getDetID2Layer(iDet);
145-
o2::its3::SuperSegmentations[layerID].flatToCurved(xFlat, 0., x, y);
147+
mSuperSegmentations[layerID].flatToCurved(xFlat, 0., x, y);
146148
o2::math_utils::Point3D<float> locC{x, y, z};
147149
auto gloC = gman->getMatrixL2G(iDet)(locC);
148150
float phi = o2::math_utils::to02Pi(std::atan2(gloC.Y(), gloC.X()));

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

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ void CompareClustersAndDigits(std::string clusfile = "o2clus_it3.root",
9797
std::vector<HitVec*> hitVecPool;
9898
std::vector<MC2HITS_map> mc2hitVec;
9999

100+
std::array<o2::its3::SegmentationSuperAlpide, 3> mSuperSegmentations{0, 1, 2};
101+
100102
// Geometry
101103
o2::base::GeometryManager::loadGeometry(inputGeom);
102104
auto gman = o2::its::GeometryTGeo::Instance();
@@ -282,20 +284,20 @@ void CompareClustersAndDigits(std::string clusfile = "o2clus_it3.root",
282284
o2::math_utils::Point3D<float> locHMiddle;
283285
if (isIB) {
284286
float xFlat{0.}, yFlat{0.};
285-
o2::its3::SuperSegmentations[layer].curvedToFlat(locHEnd.X(), locHEnd.Y(), xFlat, yFlat);
287+
mSuperSegmentations[layer].curvedToFlat(locHEnd.X(), locHEnd.Y(), xFlat, yFlat);
286288
locHEnd.SetXYZ(xFlat, yFlat, locHEnd.Z());
287-
o2::its3::SuperSegmentations[layer].curvedToFlat(locHStart.X(), locHStart.Y(), xFlat, yFlat);
289+
mSuperSegmentations[layer].curvedToFlat(locHStart.X(), locHStart.Y(), xFlat, yFlat);
288290
locHStart.SetXYZ(xFlat, yFlat, locHStart.Z());
289291
}
290292
locHMiddle.SetXYZ(0.5f * (locHEnd.X() + locHStart.X()), 0.5f * (locHEnd.Y() + locHStart.Y()), 0.5f * (locHEnd.Z() + locHStart.Z()));
291293

292294
int rowHS, colHS, rowHM, colHM, rowHE, colHE, colC, rowC;
293295
bool v1, v2, v3, v4;
294296
if (isIB) {
295-
v1 = o2::its3::SuperSegmentations[layer].localToDetector(locHStart.X(), locHStart.Z(), rowHS, colHS);
296-
v2 = o2::its3::SuperSegmentations[layer].localToDetector(locHMiddle.X(), locHMiddle.Z(), rowHM, colHM);
297-
v3 = o2::its3::SuperSegmentations[layer].localToDetector(locHEnd.X(), locHEnd.Z(), rowHE, colHE);
298-
v4 = o2::its3::SuperSegmentations[layer].localToDetector(locC.X(), locC.Z(), rowC, colC);
297+
v1 = mSuperSegmentations[layer].localToDetector(locHStart.X(), locHStart.Z(), rowHS, colHS);
298+
v2 = mSuperSegmentations[layer].localToDetector(locHMiddle.X(), locHMiddle.Z(), rowHM, colHM);
299+
v3 = mSuperSegmentations[layer].localToDetector(locHEnd.X(), locHEnd.Z(), rowHE, colHE);
300+
v4 = mSuperSegmentations[layer].localToDetector(locC.X(), locC.Z(), rowC, colC);
299301
} else {
300302
v1 = o2::itsmft::SegmentationAlpide::localToDetector(locHStart.X(), locHStart.Z(), rowHS, colHS);
301303
v2 = o2::itsmft::SegmentationAlpide::localToDetector(locHMiddle.X(), locHMiddle.Z(), rowHM, colHM);

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ void CreateDictionariesITS3(bool saveDeltas = false,
8282
std::vector<HitVec*> hitVecPool;
8383
std::vector<MC2HITS_map> mc2hitVec;
8484
o2::its3::TopologyDictionary clusDictOld;
85+
std::array<o2::its3::SegmentationSuperAlpide, 3> mSuperSegmentations{0, 1, 2};
8586
if (!clusDictFile.empty()) {
8687
clusDictOld.readFromFile(clusDictFile);
8788
LOGP(info, "Loaded external cluster dictionary with {} entries from {}", clusDictOld.getSize(), clusDictFile);
@@ -274,9 +275,9 @@ void CreateDictionariesITS3(bool saveDeltas = false,
274275
int layer = gman->getLayer(chipID);
275276
if (isIB) {
276277
float xFlat{0.}, yFlat{0.};
277-
o2::its3::SuperSegmentations[layer].curvedToFlat(xyzLocM.X(), xyzLocM.Y(), xFlat, yFlat);
278+
mSuperSegmentations[layer].curvedToFlat(xyzLocM.X(), xyzLocM.Y(), xFlat, yFlat);
278279
xyzLocM.SetCoordinates(xFlat, yFlat, xyzLocM.Z());
279-
o2::its3::SuperSegmentations[layer].curvedToFlat(locC.X(), locC.Y(), xFlat, yFlat);
280+
mSuperSegmentations[layer].curvedToFlat(locC.X(), locC.Y(), xFlat, yFlat);
280281
locC.SetCoordinates(xFlat, yFlat, locC.Z());
281282
}
282283
dX = xyzLocM.X() - locC.X();

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include "TList.h"
2222
#endif
2323

24-
void TestSensorGeometry(bool checkFull = false)
24+
void TestSensorGeometry(bool draw = false, bool checkFull = false)
2525
{
2626
gGeoManager = new TGeoManager("simple", "Simple geometry");
2727
TGeoMaterial* matVacuum = new TGeoMaterial("Vacuum", 0, 0, 0);
@@ -30,8 +30,7 @@ void TestSensorGeometry(bool checkFull = false)
3030
auto top = gGeoManager->MakeBox("TOP", Vacuum, 270., 270., 120.);
3131
gGeoManager->SetTopVolume(top);
3232

33-
o2::its3::ITS3Layer layer0{0, top, nullptr,
34-
o2::its3::ITS3Layer::BuildLevel::kLayer, true};
33+
o2::its3::ITS3Layer layer0{2, top, nullptr, o2::its3::ITS3Layer::BuildLevel::kLayer, true};
3534

3635
// Print available medias
3736
TIter next{gGeoManager->GetListOfMedia()};
@@ -42,13 +41,17 @@ void TestSensorGeometry(bool checkFull = false)
4241

4342
gGeoManager->CloseGeometry();
4443
gGeoManager->SetVisLevel(99);
44+
if (draw) {
45+
gGeoManager->Draw("ogl");
46+
}
47+
4548
if (checkFull) {
4649
gGeoManager->CheckGeometryFull();
47-
}
48-
gGeoManager->CheckOverlaps(0.00001);
49-
TIter nextOverlap{gGeoManager->GetListOfOverlaps()};
50-
while ((obj = (TObject*)nextOverlap())) {
51-
LOGP(info, "Overlap in {}", obj->GetName());
50+
gGeoManager->CheckOverlaps(0.00001);
51+
TIter nextOverlap{gGeoManager->GetListOfOverlaps()};
52+
while ((obj = (TObject*)nextOverlap())) {
53+
LOGP(info, "Overlap in {}", obj->GetName());
54+
}
5255
}
5356

5457
std::unique_ptr<TFile> f{TFile::Open("geo.root", "RECREATE")};

Detectors/Upgrades/ITS3/reconstruction/include/ITS3Reconstruction/TopologyDictionary.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class TopologyDictionary
126126

127127
/// Returns the local position of a compact cluster
128128
template <typename T = float>
129-
math_utils::Point3D<T> getClusterCoordinates(const itsmft::CompClusterExt& cl, const itsmft::ClusterPattern& patt, bool isGroup = true) const;
129+
static math_utils::Point3D<T> getClusterCoordinates(const itsmft::CompClusterExt& cl, const itsmft::ClusterPattern& patt, bool isGroup = true);
130130

131131
static TopologyDictionary* loadFrom(const std::string& fileName = "", const std::string& objName = "ccdb_object");
132132

@@ -135,11 +135,10 @@ class TopologyDictionary
135135

136136
private:
137137
static constexpr int STopoSize{8 * 255 + 1};
138-
std::unordered_map<unsigned long, int> mCommonMap{}; ///< Map of pair <hash, position in mVectorOfIDs>
139-
std::unordered_map<int, int> mGroupMap{}; ///< Map of pair <groudID, position in mVectorOfIDs>
140-
int mSmallTopologiesLUT[STopoSize]{}; ///< Look-Up Table for the topologies with 1-byte linearised matrix
141-
std::vector<itsmft::GroupStruct> mVectorOfIDs{}; ///< Vector of topologies and groups
142-
std::array<o2::its3::SegmentationSuperAlpide, 3> mSuperSegmentations{0, 1, 2}; ///< Segmentations for IB layers
138+
std::unordered_map<unsigned long, int> mCommonMap{}; ///< Map of pair <hash, position in mVectorOfIDs>
139+
std::unordered_map<int, int> mGroupMap{}; ///< Map of pair <groudID, position in mVectorOfIDs>
140+
int mSmallTopologiesLUT[STopoSize]{}; ///< Look-Up Table for the topologies with 1-byte linearised matrix
141+
std::vector<itsmft::GroupStruct> mVectorOfIDs{}; ///< Vector of topologies and groups
143142

144143
ClassDefNV(TopologyDictionary, 3);
145144
};

0 commit comments

Comments
 (0)