Skip to content

Commit 2f2a336

Browse files
authored
[ALICE3] Update fasttracker and mcharm histograms (#12675)
1 parent 1a165c9 commit 2f2a336

File tree

4 files changed

+54
-8
lines changed

4 files changed

+54
-8
lines changed

ALICE3/Core/FastTracker.cxx

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,34 @@ void FastTracker::AddSiliconALICE3v2(std::vector<float> pixelResolution)
144144
AddLayer("B10", 80., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
145145
}
146146

147+
void FastTracker::AddSiliconALICE3(std::vector<float> pixelResolution)
148+
{
149+
float x0IT = 0.001; // 0.1%
150+
float x0OT = 0.01; // 1.0%
151+
float xrhoIB = 2.3292e-02; // 100 mum Si
152+
float xrhoOT = 2.3292e-01; // 1000 mum Si
153+
float eff = 1.00;
154+
155+
float resRPhiIT = pixelResolution[0];
156+
float resZIT = pixelResolution[1];
157+
float resRPhiOT = pixelResolution[2];
158+
float resZOT = pixelResolution[3];
159+
160+
AddLayer("bpipe0", 0.48, 250, 0.00042, 2.772e-02, 0.0f, 0.0f, 0.0f, 0); // 150 mum Be
161+
AddLayer("B00", 0.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1);
162+
AddLayer("B01", 1.2, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1);
163+
AddLayer("B02", 2.5, 250, x0IT, xrhoIB, resRPhiIT, resZIT, eff, 1);
164+
AddLayer("bpipe1", 3.7, 250, 0.0014, 9.24e-02, 0.0f, 0.0f, 0.0f, 0); // 500 mum Be
165+
AddLayer("B03", 7., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
166+
AddLayer("B04", 9., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
167+
AddLayer("B05", 12., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
168+
AddLayer("B06", 20., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
169+
AddLayer("B07", 30., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
170+
AddLayer("B08", 45., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
171+
AddLayer("B09", 60., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
172+
AddLayer("B10", 80., 250, x0OT, xrhoOT, resRPhiOT, resZOT, eff, 1);
173+
}
174+
147175
void FastTracker::AddTPC(float phiResMean, float zResMean)
148176
{
149177
LOG(info) << " Adding standard time projection chamber";
@@ -307,7 +335,7 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
307335
break;
308336
}
309337
}
310-
if (firstActiveLayer <= 0) {
338+
if (firstActiveLayer < 0) {
311339
LOG(fatal) << "No active layers found in FastTracker, check layer setup";
312340
return -2; // no active layers
313341
}

ALICE3/Core/FastTracker.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,11 @@ class FastTracker
4242
// Layer and layer configuration
4343
void AddLayer(TString name, float r, float z, float x0, float xrho, float resRPhi = 0.0f, float resZ = 0.0f, float eff = 0.0f, int type = 0);
4444
DetLayer GetLayer(const int layer, bool ignoreBarrelLayers = true) const;
45+
std::vector<DetLayer> GetLayers() const { return layers; }
4546
int GetLayerIndex(const std::string& name) const;
4647
size_t GetNLayers() const { return layers.size(); }
4748
bool IsLayerInert(const int layer) const { return layers[layer].isInert(); }
49+
void ClearLayers() { layers.clear(); }
4850
void SetRadiationLength(const std::string layerName, float x0) { layers[GetLayerIndex(layerName)].setRadiationLength(x0); }
4951
void SetRadius(const std::string layerName, float r) { layers[GetLayerIndex(layerName)].setRadius(r); }
5052
void SetResolutionRPhi(const std::string layerName, float resRPhi) { layers[GetLayerIndex(layerName)].setResolutionRPhi(resRPhi); }
@@ -57,6 +59,7 @@ class FastTracker
5759

5860
void AddSiliconALICE3v4(std::vector<float> pixelResolution);
5961
void AddSiliconALICE3v2(std::vector<float> pixelResolution);
62+
void AddSiliconALICE3(std::vector<float> pixelResolution);
6063
void AddTPC(float phiResMean, float zResMean);
6164

6265
void Print();

ALICE3/TableProducer/alice3-multicharmTable.cxx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,8 @@ struct alice3multicharmTable {
162162
Partition<alice3tracks> tracksPiFromXiC =
163163
((aod::a3DecayMap::decayMap & trackSelectionPiFromXiC) == trackSelectionPiFromXiC) && aod::track::signed1Pt > 0.0f && 1.0f / nabs(aod::track::signed1Pt) > minPiCPt&& nabs(aod::track::dcaXY) > piFromXiC_dcaXYconstant + piFromXiC_dcaXYpTdep* nabs(aod::track::signed1Pt) && nabs(aod::track::dcaZ) > piFromXiC_dcaZconstant + piFromXiC_dcaZpTdep* nabs(aod::track::signed1Pt);
164164

165-
Partition<alice3tracks> tracksPiFromXiCC = ((aod::a3DecayMap::decayMap & trackSelectionPiFromXiCC) == trackSelectionPiFromXiCC) && aod::track::signed1Pt > 0.0f && 1.0f / nabs(aod::track::signed1Pt) > minPiCCPt&& nabs(aod::track::dcaXY) > piFromXiCC_dcaXYconstant + piFromXiCC_dcaXYpTdep* nabs(aod::track::signed1Pt);
165+
Partition<alice3tracks> tracksPiFromXiCC =
166+
((aod::a3DecayMap::decayMap & trackSelectionPiFromXiCC) == trackSelectionPiFromXiCC) && aod::track::signed1Pt > 0.0f && 1.0f / nabs(aod::track::signed1Pt) > minPiCCPt&& nabs(aod::track::dcaXY) > piFromXiCC_dcaXYconstant + piFromXiCC_dcaXYpTdep* nabs(aod::track::signed1Pt) && nabs(aod::track::dcaZ) > piFromXiCC_dcaZconstant + piFromXiCC_dcaZpTdep* nabs(aod::track::signed1Pt);
166167

167168
// Helper struct to pass candidate information
168169
struct {
@@ -446,6 +447,13 @@ struct alice3multicharmTable {
446447
histos.add("hPi2cPt", "hPi2cPt", kTH1D, {axisPt});
447448
histos.add("hPiccPt", "hPiccPt", kTH1D, {axisPt});
448449

450+
histos.add("hPi1cDCAxy", "hPi1cDCAxy", kTH1D, {axisDCA});
451+
histos.add("hPi1cDCAz", "hPi1cDCAz", kTH1D, {axisDCA});
452+
histos.add("hPi2cDCAxy", "hPi2cDCAxy", kTH1D, {axisDCA});
453+
histos.add("hPi2cDCAz", "hPi2cDCAz", kTH1D, {axisDCA});
454+
histos.add("hPiccDCAxy", "hPiccDCAxy", kTH1D, {axisDCA});
455+
histos.add("hPiccDCAz", "hPiccDCAz", kTH1D, {axisDCA});
456+
449457
histos.add("hMinXiDecayRadius", "hMinXiDecayRadius", kTH1D, {axisRadius2DXi});
450458
histos.add("hMinXiCDecayRadius", "hMinXiCDecayRadius", kTH1D, {axisRadius});
451459
histos.add("hMinXiCCDecayRadius", "hMinXiCCDecayRadius", kTH1D, {axisRadius});
@@ -780,6 +788,13 @@ struct alice3multicharmTable {
780788
piFromLa.pt(), piFromLa.eta(),
781789
piFromLa.dcaXY(), piFromLa.dcaZ(),
782790
pi1c.eta(), pi2c.eta(), picc.eta());
791+
792+
histos.fill(HIST("hPi1cDCAxy"), std::abs(pi1c.dcaXY() * 1e+4));
793+
histos.fill(HIST("hPi1cDCAz"), std::abs(pi1c.dcaZ() * 1e+4));
794+
histos.fill(HIST("hPi2cDCAxy"), std::abs(pi2c.dcaXY() * 1e+4));
795+
histos.fill(HIST("hPi2cDCAz"), std::abs(pi2c.dcaZ() * 1e+4));
796+
histos.fill(HIST("hPiccDCAxy"), std::abs(picc.dcaXY() * 1e+4));
797+
histos.fill(HIST("hPiccDCAz"), std::abs(picc.dcaZ() * 1e+4));
783798
}
784799
}
785800
histos.fill(HIST("hCombinationsXiCC"), nCombinationsCC);

ALICE3/Tasks/alice3-multicharm.cxx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ struct alice3multicharm {
255255
histos.add("hBDTScoreVsXiccPt", "hBDTScoreVsXiccPt", kTH2D, {axisPt, axisBDTScore});
256256
histos.add("h3dBDTScore", "h3dBDTScore", kTH3D, {axisPt, axisXiccMass, axisBDTScore});
257257
for (const auto& score : bdt.requiredScores.value) {
258-
histPath = std::format("MLQA/RequiredBDTScore_{}/", static_cast<int>(score * 100));
258+
histPath = std::format("MLQA/RequiredBDTScore_{}/", static_cast<int>(score * 10000));
259259
histPointers.insert({histPath + "hDCAXicDaughters", histos.add((histPath + "hDCAXicDaughters").c_str(), "hDCAXicDaughters", {kTH1D, {{axisDcaDaughters}}})});
260260
histPointers.insert({histPath + "hDCAXiccDaughters", histos.add((histPath + "hDCAXiccDaughters").c_str(), "hDCAXiccDaughters", {kTH1D, {{axisDcaDaughters}}})});
261261
histPointers.insert({histPath + "hDCAxyXi", histos.add((histPath + "hDCAxyXi").c_str(), "hDCAxyXi", {kTH1D, {{axisDCA}}})});
@@ -329,7 +329,7 @@ struct alice3multicharm {
329329

330330
for (const auto& requiredScore : bdt.requiredScores.value) {
331331
if (bdtScore > requiredScore) {
332-
histPath = std::format("MLQA/RequiredBDTScore_{}/", static_cast<int>(requiredScore * 100));
332+
histPath = std::format("MLQA/RequiredBDTScore_{}/", static_cast<int>(requiredScore * 10000));
333333
getHist(TH1, histPath + "hDCAXicDaughters")->Fill(xiccCand.xicDauDCA() * 1e+4);
334334
getHist(TH1, histPath + "hDCAXiccDaughters")->Fill(xiccCand.xiccDauDCA() * 1e+4);
335335
getHist(TH1, histPath + "hDCAxyXi")->Fill(std::fabs(xiccCand.xiDCAxy() * 1e+4));
@@ -349,13 +349,13 @@ struct alice3multicharm {
349349
getHist(TH1, histPath + "hPi2cDCAz")->Fill(xiccCand.pi2cDCAz() * 1e+4);
350350
getHist(TH1, histPath + "hPiccDCAxy")->Fill(xiccCand.piccDCAxy() * 1e+4);
351351
getHist(TH1, histPath + "hPiccDCAz")->Fill(xiccCand.piccDCAz() * 1e+4);
352-
getHist(TH1, histPath + "hPi1cDCAz")->Fill(xiccCand.pi1cPt());
353-
getHist(TH1, histPath + "hPi2cDCAz")->Fill(xiccCand.pi2cPt());
354-
getHist(TH1, histPath + "hPiccDCAz")->Fill(xiccCand.piccPt());
352+
getHist(TH1, histPath + "hPi1cPt")->Fill(xiccCand.pi1cPt());
353+
getHist(TH1, histPath + "hPi2cPt")->Fill(xiccCand.pi2cPt());
354+
getHist(TH1, histPath + "hPiccPt")->Fill(xiccCand.piccPt());
355355
getHist(TH1, histPath + "hXiccMass")->Fill(xiccCand.xiccMass());
356356
getHist(TH1, histPath + "hXicMass")->Fill(xiccCand.xicMass());
357-
getHist(TH1, histPath + "hXiccPt")->Fill(xiccCand.xiccPt());
358357
getHist(TH1, histPath + "hXicPt")->Fill(xiccCand.xicPt());
358+
getHist(TH1, histPath + "hXiccPt")->Fill(xiccCand.xiccPt());
359359
getHist(TH3, histPath + "h3dXicc")->Fill(xiccCand.xiccPt(), xiccCand.xiccEta(), xiccCand.xiccMass());
360360
}
361361
}

0 commit comments

Comments
 (0)