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