Skip to content

Commit d2a1b53

Browse files
committed
Update
1 parent 9746b97 commit d2a1b53

File tree

3 files changed

+22
-9
lines changed

3 files changed

+22
-9
lines changed

ALICE3/TableProducer/OTF/onTheFlyDetectorGeometryProvider.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ struct OnTheFlyDetectorGeometryProvider {
4444
return;
4545
}
4646
int idx = 0;
47-
for (auto& configFile : detectorConfiguration.value) {
47+
for (std::string& configFile : detectorConfiguration.value) {
4848
LOG(info) << "Loading detector geometry from configuration file: " << configFile;
4949
histos.add<TH1>(Form("GeometryConfigFile_%d", idx), configFile.c_str(), o2::framework::HistType::kTH1D, {{1, 0, 1}})->Fill(0.5);
5050
// If the filename starts with ccdb: then take the file from the ccdb

ALICE3/TableProducer/OTF/onTheFlyTracker.cxx

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
#include <DetectorsBase/Propagator.h>
4343
#include <DetectorsVertexing/PVertexer.h>
4444
#include <DetectorsVertexing/PVertexerHelpers.h>
45+
#include <DetectorsVertexing/PVertexerParams.h>
4546
#include <Field/MagneticField.h>
4647
#include <Framework/AnalysisDataModel.h>
4748
#include <Framework/AnalysisTask.h>
@@ -117,6 +118,7 @@ struct OnTheFlyTracker {
117118
Configurable<bool> doExtraQA{"doExtraQA", false, "do extra 2D QA plots"};
118119
Configurable<bool> extraQAwithoutDecayDaughters{"extraQAwithoutDecayDaughters", false, "remove decay daughters from qa plots (yes/no)"};
119120
Configurable<bool> cleanLutWhenLoaded{"cleanLutWhenLoaded", true, "clean LUTs after being loaded to save disk space"};
121+
Configurable<std::string> primaryVertexOption{"primaryVertexOption", "pvertexer.maxChi2TZDebris=10;pvertexer.acceptableScale2=9;pvertexer.minScale2=2;pvertexer.timeMarginVertexTime=1.3;;pvertexer.maxChi2TZDebris=40;pvertexer.maxChi2Mean=12;pvertexer.maxMultRatDebris=1.;pvertexer.addTimeSigma2Debris=1e-2;pvertexer.meanVertexExtraErrSelection=0.03;", "Option for the primary vertexer"};
120122

121123
struct : ConfigurableGroup {
122124
ConfigurableAxis axisMomentum{"axisMomentum", {VARIABLE_WIDTH, 0.0f, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, 1.8f, 1.9f, 2.0f, 2.2f, 2.4f, 2.6f, 2.8f, 3.0f, 3.2f, 3.4f, 3.6f, 3.8f, 4.0f, 4.4f, 4.8f, 5.2f, 5.6f, 6.0f, 6.5f, 7.0f, 7.5f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 17.0f, 19.0f, 21.0f, 23.0f, 25.0f, 30.0f, 35.0f, 40.0f, 50.0f}, "#it{p} (GeV/#it{c})"};
@@ -147,9 +149,6 @@ struct OnTheFlyTracker {
147149
Configurable<bool> applyZacceptance{"applyZacceptance", false, "apply z limits to detector layers or not"};
148150
Configurable<bool> applyMSCorrection{"applyMSCorrection", true, "apply ms corrections for secondaries or not"};
149151
Configurable<bool> applyElossCorrection{"applyElossCorrection", true, "apply eloss corrections for secondaries or not"};
150-
Configurable<bool> applyEffCorrection{"applyEffCorrection", true, "apply efficiency correction or not"};
151-
Configurable<int> scaleVD{"scaleVD", 1, "scale x0 and xrho in VD layers"};
152-
Configurable<std::vector<float>> pixelRes{"pixelRes", {0.00025, 0.00025, 0.001, 0.001}, "RPhiIT, ZIT, RPhiOT, ZOT"};
153152
} fastTrackerSettings; // allows for gap between peak and bg in case someone wants to
154153

155154
struct : ConfigurableGroup {
@@ -159,7 +158,6 @@ struct OnTheFlyTracker {
159158
Configurable<bool> applyZacceptance{"applyZacceptance", false, "apply z limits to detector layers or not"};
160159
Configurable<bool> applyMSCorrection{"applyMSCorrection", true, "apply ms corrections for secondaries or not"};
161160
Configurable<bool> applyElossCorrection{"applyElossCorrection", true, "apply eloss corrections for secondaries or not"};
162-
Configurable<bool> applyEffCorrection{"applyEffCorrection", true, "apply efficiency correction or not"};
163161
} fastPrimaryTrackerSettings;
164162

165163
struct : ConfigurableGroup {
@@ -474,6 +472,7 @@ struct OnTheFlyTracker {
474472

475473
if (doExtraQA) {
476474
histos.add("h2dVerticesVsContributors", "h2dVerticesVsContributors", kTH2F, {axes.axisMultiplicity, axes.axisNVertices});
475+
histos.add("h1dVerticesNotReco", "h1dVerticesNotReco", kTH1F, {axes.axisMultiplicity});
477476
histos.add("hRecoVsSimMultiplicity", "hRecoVsSimMultiplicity", kTH2F, {axes.axisMultiplicity, axes.axisMultiplicity});
478477

479478
histos.add("hSimTrackX", "hSimTrackX", kTH1F, {axes.axisX});
@@ -554,9 +553,14 @@ struct OnTheFlyTracker {
554553
irSampler.init();
555554

556555
vertexer.setValidateWithIR(kFALSE);
556+
vertexer.setTrackSources(o2::dataformats::GlobalTrackID::ITS);
557557
vertexer.setBunchFilling(irSampler.getBunchFilling());
558+
vertexer.setBz(mMagneticField);
559+
o2::conf::ConfigurableParam::updateFromString("pvertexer.doBCValidation=false;" + primaryVertexOption.value);
558560
vertexer.init();
559561

562+
o2::vertexing::PVertexerParams::Instance().printKeyValues();
563+
560564
// initialize O2 2-prong fitter
561565
fitter.setPropagateToPCA(true);
562566
fitter.setMaxR(200.);
@@ -680,11 +684,13 @@ struct OnTheFlyTracker {
680684
decayDaughters.push_back(*v0Decay.GetDecay(1));
681685
}
682686

683-
float dNdEta = 0.f; // Charged particle multiplicity to use in the efficiency evaluation
687+
float dNdEta = 0.f; // Charged particle multiplicity to use in the efficiency evaluation
688+
std::pair<float, float> vertexReconstructionEfficiencyCounters = {0, 0}; // {nVerticesWithMoreThan2Contributors, nVerticesReconstructed}
684689
void processWithLUTs(aod::McCollision const& mcCollision, aod::McParticles const& mcParticles, int const& icfg)
685690
{
686691
LOG(debug) << "Processing event " << mcCollision.globalIndex() << " with LUTs for configuration " << icfg;
687-
int lastTrackIndex = tableStoredTracksCov.lastIndex() + 1; // bookkeep the last added track
692+
vertexReconstructionEfficiencyCounters.first += 1;
693+
const int lastTrackIndex = tableStoredTracksCov.lastIndex() + 1; // bookkeep the last added track
688694
const std::string histPath = "Configuration_" + std::to_string(icfg) + "/";
689695

690696
tracksAlice3.clear();
@@ -1386,9 +1392,16 @@ struct OnTheFlyTracker {
13861392
gsl::span<const o2::MCCompLabel>{lblTracks},
13871393
lblVtx);
13881394

1395+
LOG(info) << "Vertex reconstruction efficiency " << vertexReconstructionEfficiencyCounters.second << "/" << vertexReconstructionEfficiencyCounters.first << "=" << vertexReconstructionEfficiencyCounters.second / vertexReconstructionEfficiencyCounters.first;
13891396
if (n_vertices < 1) {
1397+
LOG(info) << "Vertexing completed, no vtx found.";
1398+
if (doExtraQA) {
1399+
histos.fill(HIST("h1dVerticesNotReco"), tracksAlice3.size());
1400+
}
13901401
return; // primary vertex not reconstructed
13911402
}
1403+
vertexReconstructionEfficiencyCounters.second += 1;
1404+
LOG(debug) << "Vertexing completed with " << n_vertices << " vertices found.";
13921405

13931406
// Find largest vertex
13941407
int largestVertex = 0;

ALICE3/TableProducer/alice3TrackingTranslator.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ struct Alice3TrackingTranslator {
7070
o2::framework::Produces<o2::aod::McCollisions> tableMcCollisions;
7171
o2::framework::Produces<o2::aod::OTFLUTConfigId> tableOTFLUTConfigId;
7272

73-
o2::framework::Configurable<int> maxCollisions{"maxCollisions", 1000, "Nsigma for TOF PID (if enabled)"};
73+
o2::framework::Configurable<int> maxCollisions{"maxCollisions", -1000, "Maximum number of collisions translated"};
7474

7575
void init(o2::framework::InitContext&)
7676
{
@@ -257,7 +257,7 @@ struct Alice3TrackingTranslator {
257257

258258
const Long64_t kEvents = fileParticles.getEntries();
259259
for (Long64_t iEvent = 0; iEvent < kEvents; ++iEvent) {
260-
if (iEvent > 0 && iEvent % maxCollisions) {
260+
if (iEvent > 0 && maxCollisions.value > 0 && (iEvent % maxCollisions) == 0) {
261261
LOG(info) << "Processing event " << iEvent << "/" << kEvents;
262262
break;
263263
}

0 commit comments

Comments
 (0)