Skip to content

Commit b47822a

Browse files
committed
ITS tracking: Introduce configurable minimum pt per track length
The changes introduce a configurable minimum PT value per track length in the ITS tracking parameters. This allows for more fine-grained control over the minimum PT requirement, which can be useful for different tracking scenarios. The main changes are: - Modify the `TrackingParameters` struct to include an array of 4 minimum PT values, one for each track length (7, 6, 5, 4). - Update the track fitting logic in `TrackerTraits::findRoads()` to use the appropriate minimum PT value based on the track length. - Update the default minimum PT value in `TrackingInterface::initialise()` to use the new array-based approach. These changes provide more flexibility in tuning the ITS tracking parameters.
1 parent 1432c4b commit b47822a

File tree

4 files changed

+12
-5
lines changed

4 files changed

+12
-5
lines changed

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ void CheckTracksCA(bool doFakeClStud = false,
8787
TTree* mcTree = (TTree*)gFile->Get("o2sim");
8888
mcTree->SetBranchStatus("*", 0); // disable all branches
8989
mcTree->SetBranchStatus("MCTrack*", 1);
90+
mcTree->SetBranchStatus("MCEventHeader*", 1);
9091

9192
std::vector<o2::MCTrack>* mcArr = nullptr;
9293
mcTree->SetBranchAddress("MCTrack", &mcArr);
@@ -115,10 +116,13 @@ void CheckTracksCA(bool doFakeClStud = false,
115116
std::cout << "** Filling particle table ... " << std::flush;
116117
int lastEventIDcl = -1, cf = 0;
117118
int nev = mcTree->GetEntriesFast();
118-
std::vector<std::vector<ParticleInfo>> info(nev);
119+
std::vector<std::vector<ParticleInfo>> info;
120+
info.resize(nev);
121+
TH1D* hZvertex = new TH1D("hZvertex", "Z vertex", 100, -20, 20);
119122
for (int n = 0; n < nev; n++) { // loop over MC events
120123
mcTree->GetEvent(n);
121124
info[n].resize(mcArr->size());
125+
hZvertex->Fill(mcEvent->GetZ());
122126
for (unsigned int mcI{0}; mcI < mcArr->size(); ++mcI) {
123127
auto part = mcArr->at(mcI);
124128
info[n][mcI].event = n;
@@ -196,7 +200,6 @@ void CheckTracksCA(bool doFakeClStud = false,
196200
info[evID][trackID].track.getImpactParams(info[evID][trackID].pvx, info[evID][trackID].pvy, info[evID][trackID].pvz, bz, ip);
197201
info[evID][trackID].dcaxy = ip[0];
198202
info[evID][trackID].dcaz = ip[1];
199-
Info("", "dcaxy=%f dcaz=%f bz=%f", ip[0], ip[1], bz);
200203
}
201204

202205
fakes += fake;
@@ -286,6 +289,10 @@ void CheckTracksCA(bool doFakeClStud = false,
286289
clone->Divide(clone, den, 1, 1, "b");
287290
clone->SetLineColor(3);
288291
clone->Draw("histesame");
292+
TCanvas *c2 = new TCanvas;
293+
c2->SetGridx();
294+
c2->SetGridy();
295+
hZvertex->DrawClone();
289296

290297
std::cout << "** Streaming output TTree to file ... " << std::flush;
291298
TFile file("CheckTracksCA.root", "recreate");

Detectors/ITSMFT/ITS/tracking/include/ITStracking/Configuration.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ struct TrackingParameters {
9494
unsigned long MaxMemory = 12000000000UL;
9595
float MaxChi2ClusterAttachment = 60.f;
9696
float MaxChi2NDF = 30.f;
97-
float MinPt = 0.f;
97+
float MinPt[4] = {0.f};
9898
unsigned char StartLayerMask = 0x7F;
9999
bool FindShortTracks = false;
100100
bool PerPrimaryVertexProcessing = false;

Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ void TrackerTraits::findRoads(const int iteration)
618618
temporaryTrack.resetCovariance();
619619
temporaryTrack.setChi2(0);
620620
fitSuccess = fitTrack(temporaryTrack, mTrkParams[0].NLayers - 1, -1, -1, mTrkParams[0].MaxChi2ClusterAttachment, mTrkParams[0].MaxChi2NDF, 50.f);
621-
if (!fitSuccess || temporaryTrack.getPt() < mTrkParams[iteration].MinPt) {
621+
if (!fitSuccess || temporaryTrack.getPt() < mTrkParams[iteration].MinPt[7 - temporaryTrack.getNClusters()]) {
622622
continue;
623623
}
624624
tracks[trackIndex++] = temporaryTrack;

Detectors/ITSMFT/ITS/tracking/src/TrackingInterface.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ void ITSTrackingInterface::initialise()
4747
trackParams[2].TrackletMinPt = 0.1f;
4848
trackParams[2].CellDeltaTanLambdaSigma *= 4.;
4949
trackParams[2].MinTrackLength = 4;
50-
trackParams[2].MinPt = 0.2f;
50+
trackParams[2].MinPt[3] = 0.2f;
5151
trackParams[2].StartLayerMask = (1 << 6) + (1 << 3);
5252
if (o2::its::TrackerParamConfig::Instance().doUPCIteration) {
5353
trackParams[3].TrackletMinPt = 0.1f;

0 commit comments

Comments
 (0)