Skip to content

Commit 1d545ff

Browse files
authored
Merge 92cff03 into sapling-pr-archive-ktf
2 parents e7bcb40 + 92cff03 commit 1d545ff

4 files changed

Lines changed: 43 additions & 20 deletions

File tree

Detectors/Upgrades/ALICE3/RICH/simulation/src/RICHRing.cxx

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -67,22 +67,26 @@ Ring::Ring(int rPosId,
6767
int radTileCount{0}, photTileCount{0}, argSectorsCount{0};
6868
// Radiator tiles
6969
for (auto& radiatorTile : radiatorTiles) {
70-
radiatorTile = new TGeoArb8(radZ / 2);
71-
radiatorTile->SetVertex(0, -radThick / 2, -radYmin / 2);
72-
radiatorTile->SetVertex(1, -radThick / 2, radYmin / 2);
73-
radiatorTile->SetVertex(2, radThick / 2, radYmin / 2);
74-
radiatorTile->SetVertex(3, radThick / 2, -radYmin / 2);
75-
radiatorTile->SetVertex(4, -radThick / 2, -radYmax / 2);
76-
radiatorTile->SetVertex(5, -radThick / 2, radYmax / 2);
77-
radiatorTile->SetVertex(6, radThick / 2, radYmax / 2);
78-
radiatorTile->SetVertex(7, radThick / 2, -radYmax / 2);
70+
// Local Z is the thin (radial) dimension, looking outward from the IP
71+
// (previously this was local X, while for running with ACTS we need local Z).
72+
// The placement rotation below is adjusted by +90 deg about Y
73+
// to keep the tile in the same physical position.
74+
radiatorTile = new TGeoArb8(radThick / 2);
75+
radiatorTile->SetVertex(0, radZ / 2, -radYmin / 2);
76+
radiatorTile->SetVertex(1, -radZ / 2, -radYmax / 2);
77+
radiatorTile->SetVertex(2, -radZ / 2, radYmax / 2);
78+
radiatorTile->SetVertex(3, radZ / 2, radYmin / 2);
79+
radiatorTile->SetVertex(4, radZ / 2, -radYmin / 2);
80+
radiatorTile->SetVertex(5, -radZ / 2, -radYmax / 2);
81+
radiatorTile->SetVertex(6, -radZ / 2, radYmax / 2);
82+
radiatorTile->SetVertex(7, radZ / 2, radYmin / 2);
7983

8084
TGeoVolume* radiatorTileVol = new TGeoVolume(Form("radTile_%d_%d", rPosId, radTileCount), radiatorTile, medAerogel);
8185
radiatorTileVol->SetLineColor(kOrange - 8);
8286
radiatorTileVol->SetLineWidth(1);
8387

8488
auto* rotRadiator = new TGeoRotation(Form("radTileRotation_%d_%d", radTileCount, rPosId));
85-
rotRadiator->RotateY(-thetaBDeg);
89+
rotRadiator->RotateY(90.0 - thetaBDeg); // +90 compensates the X->Z swap of the tile's local axes
8690
rotRadiator->RotateZ(radTileCount * deltaPhiDeg);
8791

8892
auto* rotTransRadiator = new TGeoCombiTrans(radRad0 * TMath::Cos(radTileCount * TMath::Pi() / (nTilesPhi / 2)),
@@ -96,22 +100,23 @@ Ring::Ring(int rPosId,
96100

97101
// Photosensor tiles
98102
for (auto& photoTile : photoTiles) {
99-
photoTile = new TGeoArb8(photZ / 2);
100-
photoTile->SetVertex(0, -photThick / 2, -photYmin / 2);
101-
photoTile->SetVertex(1, -photThick / 2, photYmin / 2);
102-
photoTile->SetVertex(2, photThick / 2, photYmin / 2);
103-
photoTile->SetVertex(3, photThick / 2, -photYmin / 2);
104-
photoTile->SetVertex(4, -photThick / 2, -photYmax / 2);
105-
photoTile->SetVertex(5, -photThick / 2, photYmax / 2);
106-
photoTile->SetVertex(6, photThick / 2, photYmax / 2);
107-
photoTile->SetVertex(7, photThick / 2, -photYmax / 2);
103+
// Local Z is the thin (radial) dimension, looking outward from the IP
104+
photoTile = new TGeoArb8(photThick / 2);
105+
photoTile->SetVertex(0, photZ / 2, -photYmin / 2);
106+
photoTile->SetVertex(1, -photZ / 2, -photYmax / 2);
107+
photoTile->SetVertex(2, -photZ / 2, photYmax / 2);
108+
photoTile->SetVertex(3, photZ / 2, photYmin / 2);
109+
photoTile->SetVertex(4, photZ / 2, -photYmin / 2);
110+
photoTile->SetVertex(5, -photZ / 2, -photYmax / 2);
111+
photoTile->SetVertex(6, -photZ / 2, photYmax / 2);
112+
photoTile->SetVertex(7, photZ / 2, photYmin / 2);
108113

109114
TGeoVolume* photoTileVol = new TGeoVolume(Form("%s_%d_%d", GeometryTGeo::getRICHSensorPattern(), rPosId, photTileCount), photoTile, medSi);
110115
photoTileVol->SetLineColor(kOrange - 8);
111116
photoTileVol->SetLineWidth(1);
112117

113118
auto* rotPhoto = new TGeoRotation(Form("photoTileRotation_%d_%d", photTileCount, rPosId));
114-
rotPhoto->RotateY(-thetaBDeg);
119+
rotPhoto->RotateY(90.0 - thetaBDeg); // +90 compensates the X->Z swap of the tile's local axes
115120
rotPhoto->RotateZ(photTileCount * deltaPhiDeg);
116121
auto* rotTransPhoto = new TGeoCombiTrans(photR0 * TMath::Cos(photTileCount * TMath::Pi() / (nTilesPhi / 2)),
117122
photR0 * TMath::Sin(photTileCount * TMath::Pi() / (nTilesPhi / 2)),

Framework/Core/src/runDataProcessing.cxx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,6 +1030,10 @@ int doChild(int argc, char** argv, ServiceRegistry& serviceRegistry,
10301030
{
10311031
fair::Logger::SetConsoleColor(false);
10321032
fair::Logger::OnFatal([]() { throw runtime_error("Fatal error"); });
1033+
fair::Logger::DefineVerbosity(fair::Verbosity::user1,
1034+
fair::VerbositySpec::Make(fair::VerbositySpec::Info::timestamp_us,
1035+
fair::VerbositySpec::Info::severity));
1036+
fair::Logger::SetVerbosity(fair::Verbosity::user1);
10331037
DeviceSpec const& spec = runningWorkflow.devices[ref.index];
10341038
LOG(info) << "Spawning new device " << spec.id << " in process with pid " << getpid();
10351039

@@ -1114,6 +1118,10 @@ int doChild(int argc, char** argv, ServiceRegistry& serviceRegistry,
11141118
serviceRef.get<RawDeviceService>().setDevice(device.get());
11151119
r.fDevice = std::move(device);
11161120
fair::Logger::SetConsoleColor(false);
1121+
fair::Logger::DefineVerbosity(fair::Verbosity::user1,
1122+
fair::VerbositySpec::Make(fair::VerbositySpec::Info::timestamp_us,
1123+
fair::VerbositySpec::Info::severity));
1124+
fair::Logger::SetVerbosity(fair::Verbosity::user1);
11171125

11181126
/// Create all the requested services and initialise them
11191127
for (auto& service : spec.services) {
@@ -3156,6 +3164,11 @@ int doMain(int argc, char** argv, o2::framework::WorkflowSpec const& workflow,
31563164
}
31573165
}
31583166

3167+
fair::Logger::DefineVerbosity(fair::Verbosity::user1,
3168+
fair::VerbositySpec::Make(fair::VerbositySpec::Info::timestamp_us,
3169+
fair::VerbositySpec::Info::severity));
3170+
fair::Logger::SetVerbosity(fair::Verbosity::user1);
3171+
31593172
enableSignposts(varmap["signposts"].as<std::string>());
31603173

31613174
auto evaluateBatchOption = [&varmap]() -> bool {

GPU/GPUTracking/Definitions/GPUSettingsList.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ AddOptionRTC(maxTimeBinAboveThresholdIn1000Bin, uint16_t, 500, "", 0, "Except pa
113113
AddOptionRTC(maxConsecTimeBinAboveThreshold, uint16_t, 200, "", 0, "Except pad from cluster finding if number of consecutive charges in a fragment is above this baseline (disable = 0)")
114114
AddOptionRTC(noisyPadSaturationThreshold, uint16_t, 700, "", 0, "Threshold where a timebin is considered saturated, disabling the noisy pad check for that pad")
115115
AddOptionRTC(hipTailFilter, uint8_t, 0, "", 0, "Enable Highly Ionising Particle tail filter in CheckPadBaseline (0 = disable, 1 = filter tails)")
116+
AddOptionRTC(hipTailFilterMinimum, uint16_t, 1024, "", 0, "Thread signal above this minimum as saturated")
116117
AddOptionRTC(hipTailFilterThreshold, uint16_t, 100, "", 0, "Threshold that must be exceeded for a timebin to be counted towards Highly Ionising Particle tail")
117118
AddOptionRTC(hipTailFilterAlpha, float, 0.5f, "", 0, "Smoothing factor for the exponential Highly Ionising Particle tail filter")
118119
AddOptionRTC(occupancyMapTimeBins, uint16_t, 16, "", 0, "Number of timebins per histogram bin of occupancy map (0 = disable occupancy map)")

GPU/GPUTracking/TPCClusterFinder/GPUTPCCFDecodeZS.cxx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,10 @@ GPUd() void GPUTPCCFDecodeZSLinkBase::WriteCharge(processorType& clusterer, floa
477477
CfChargePos pos(padAndRow.getRow(), padAndRow.getPad(), localTime);
478478
positions[positionOffset] = pos;
479479

480+
if (charge >= clusterer.Param().rec.tpc.hipTailFilterMinimum) {
481+
charge = 1023.f;
482+
}
483+
480484
// Only apply gain correction if ADC not fully saturated
481485
// and ensure gain correction doesn't accidentally saturate the ADC
482486
if (charge < 1023.f) [[likely]] {

0 commit comments

Comments
 (0)