Skip to content

Commit 03badd4

Browse files
Dmitri PeresunkoDmitri Peresunko
authored andcommitted
Fix track propagation
1 parent 7d392c6 commit 03badd4

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

PWGEM/Tasks/phosAlign.cxx

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "Common/DataModel/CaloClusters.h"
2020
#include "Common/DataModel/EventSelection.h"
2121
#include "Common/DataModel/Centrality.h"
22+
#include "Common/DataModel/EventSelection.h"
2223
#include "Common/DataModel/PIDResponse.h"
2324
#include "Common/DataModel/TrackSelectionTables.h"
2425

@@ -91,7 +92,8 @@ struct phosAlign {
9192
axisPi0m{500, 0., 1., "m_{#gamma#gamma} (GeV/c^{2})", "m_{#gamma#gamma} (GeV/c^{2})"},
9293
axisModComb{10, 0., 10.},
9394
axisEpEclu{400, 0., 4., "E_{clu} (GeV)", "E_{clu} (GeV)"},
94-
axisEpP{400, 0., 4., "p_{tr} (GeV/c)", "p_{tr} (GeV/c)"},
95+
axisEp{400, 0., 4., "E/p", "E_{clu}/p_{tr}"},
96+
axisP{400, 0., 4., "p_{tr} (GeV/c)", "p_{tr} (GeV/c)"},
9597
axisModes{4, 1., 5., "module", "module"},
9698
axisX{150, -75., 75., "x (cm)", "x (cm)"},
9799
axisdX{100, -20., 20., "x_{tr}-x_{clu} (cm)", "x_{tr}-x_{clu} (cm)"},
@@ -103,10 +105,10 @@ struct phosAlign {
103105
// mHistManager.add("mggReDisp", "inv mass", HistType::kTH3F, {axisPi0m, axisPi0Pt, axisModComb});
104106
// mHistManager.add("mggMiDisp", "inv mass", HistType::kTH3F, {axisPi0m, axisPi0Pt, axisModComb});
105107

106-
mHistManager.add("hEpAll", "E/p ratio, all tracks", HistType::kTH3F, {axisEpEclu, axisEpP, axisModes});
107-
mHistManager.add("hEpEl", "E/p ratio, electrons", HistType::kTH3F, {axisEpEclu, axisEpP, axisModes});
108-
mHistManager.add("hEpAllDisp", "E/p ratio, all tracks", HistType::kTH3F, {axisEpEclu, axisEpP, axisModes});
109-
mHistManager.add("hEpElDisp", "E/p ratio, electrons", HistType::kTH3F, {axisEpEclu, axisEpP, axisModes});
108+
mHistManager.add("hEpAll", "E/p ratio, all tracks", HistType::kTH3F, {axisEpEclu, axisEp, axisModes});
109+
mHistManager.add("hEpEl", "E/p ratio, electrons", HistType::kTH3F, {axisEpEclu, axisEp, axisModes});
110+
mHistManager.add("hEpAllDisp", "E/p ratio, all tracks", HistType::kTH3F, {axisEpEclu, axisEp, axisModes});
111+
mHistManager.add("hEpElDisp", "E/p ratio, electrons", HistType::kTH3F, {axisEpEclu, axisEp, axisModes});
110112
// if(isMC){
111113
// mHistManager.add("hMCEpAll", "E/p ratio, all tracks", HistType::kTH3F, {axisEpEclu, axisEpP, axisModes});
112114
// mHistManager.add("hMCEpEl", "E/p ratio, electrons", HistType::kTH3F, {axisEpEclu, axisEpP, axisModes});
@@ -121,6 +123,8 @@ struct phosAlign {
121123
mHistManager.add("hdXvsX_minus", "dx(x), neg tracks", HistType::kTH3F, {axisdX, axisX, axisModes});
122124
mHistManager.add("hdZvsZEl", "dz(z), el tracks", HistType::kTH3F, {axisdZ, axisZ, axisModes});
123125
mHistManager.add("hdXvsXEl", "dx(x), el tracks", HistType::kTH3F, {axisdX, axisX, axisModes});
126+
mHistManager.add("hdXdZE", "dx,dz,E_{clu}", HistType::kTH3F, {axisdX, axisdX, axisEpEclu});
127+
mHistManager.add("hdXdZp", "dx,dz,p_{tr}", HistType::kTH3F, {axisdX, axisdX, axisP});
124128

125129
// mHistManager.add("hdXvsXvsEElM1", "dz(z), el tracks", HistType::kTH3F, {axisdX, axisX, axisEpEclu});
126130
// mHistManager.add("hdXvsXvsEElM2", "dz(z), el tracks", HistType::kTH3F, {axisdX, axisX, axisEpEclu});
@@ -277,6 +281,8 @@ struct phosAlign {
277281
}
278282
mHistManager.fill(HIST("hdZvsZ"), dz, posZ, module);
279283
mHistManager.fill(HIST("hdXvsX"), dx, posX, module);
284+
mHistManager.fill(HIST("hdXdZE"), dx, dz, clu.e());
285+
mHistManager.fill(HIST("hdXdZp"), dx, dz, trackMom);
280286
if (posCh) {
281287
mHistManager.fill(HIST("hdZvsZ_plus"), dz, posZ, module);
282288
mHistManager.fill(HIST("hdXvsX_plus"), dx, posX, module);
@@ -334,21 +340,23 @@ struct phosAlign {
334340
if (module > 4) {
335341
module = 4;
336342
}
343+
337344
// eta,phi was calculated at EMCAL radius.
338345
// Extrapolate to PHOS assuming zeroB and current vertex
339346
// get PHOS radius
340-
double posL[3] = {0., 0., 0.}; // local position at the center of module
347+
constexpr float shiftY = -1.26; // Depth-optimized
348+
double posL[3] = {470. * sin(trackPhi - phiMin - dphi * (module - 0.5)),
349+
470. * sinh(trackEta) + zvtx,
350+
shiftY}; // local position at the center of module
341351
double posG[3] = {0};
342352
geomPHOS->getAlignmentMatrix(module)->LocalToMaster(posL, posG);
343-
double rPHOS = sqrt(posG[0] * posG[0] + posG[1] * posG[2]);
344-
const double r = 440.; // track propagated to this radius
345-
346-
posG[0] = r * cos(trackPhi);
347-
posG[1] = r * sin(trackPhi);
348-
posG[2] = zvtx + (r * sinh(trackEta) - zvtx) * rPHOS / r;
353+
double rPHOS = sqrt(posG[0] * posG[0] + posG[1] * posG[1]);
354+
posG[0] = rPHOS * cos(trackPhi);
355+
posG[1] = rPHOS * sin(trackPhi);
356+
posG[2] = rPHOS * sinh(trackEta) + zvtx;
349357
geomPHOS->getAlignmentMatrix(module)->MasterToLocal(posG, posL);
350358
trackX = posL[0];
351-
trackZ = posL[2];
359+
trackZ = posL[1];
352360
return true;
353361
}
354362

0 commit comments

Comments
 (0)