Skip to content

Commit 7517f5f

Browse files
authored
[PWGLF] Lambda local polarization induced by jet in pp collision 13.6 TeV (AliceO2Group#10357)
1 parent b59fa54 commit 7517f5f

File tree

1 file changed

+41
-17
lines changed

1 file changed

+41
-17
lines changed

PWGLF/Tasks/Strangeness/lambdaJetpolarization.cxx

Lines changed: 41 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ struct LfMyV0s {
4545
const AxisSpec axisPz{100, -10, 10, "#pz (GeV/c)"};
4646
const AxisSpec axisPT{200, 0, 50, "#p_{T} (GeV/c)"};
4747
const AxisSpec axisPhi{100, -3.14, 3.14, "#Phi"};
48+
const AxisSpec axisMass{100, 0, 2, "Mass(GeV/c^{2})"};
4849

4950
registry.add("hMassLambda", "hMassLambda", {HistType::kTH1F, {{200, 0.9f, 1.2f}}});
5051
registry.add("V0pTInLab", "V0pTInLab", kTH1F, {axisPT});
@@ -76,13 +77,18 @@ struct LfMyV0s {
7677
registry.add("V0protonpxInRest_frame", "V0protonpxInRest_frame", kTH1F, {axisPx});
7778
registry.add("V0protonpyInRest_frame", "V0protonpyInRest_frame", kTH1F, {axisPy});
7879
registry.add("V0protonpzInRest_frame", "V0protonpzInRest_frame", kTH1F, {axisPz});
80+
registry.add("V0protonMassInRest_frame", "V0protonMassInRest_frame", kTH1F, {axisMass});
7981
registry.add("V0protonphiInRest_frame", "V0protonphiInRest_frame", kTH1F, {axisPhi});
8082

8183
registry.add("V0protonpxInJetV0frame", "V0protonpxInJetV0frame", kTH1F, {axisPx});
8284
registry.add("V0protonpyInJetV0frame", "V0protonpyInJetV0frame", kTH1F, {axisPy});
8385
registry.add("V0protonpzInJetV0frame", "V0protonpzInJetV0frame", kTH1F, {axisPz});
8486
registry.add("V0protonphiInJetV0frame", "V0protonphiInJetV0frame", kTH1F, {axisPhi});
8587

88+
registry.add("V0LambdapxInJetV0frame", "V0LambdapxInJetV0frame", kTH1F, {axisPx});
89+
registry.add("V0LambdapyInJetV0frame", "V0LambdapyInJetV0frame", kTH1F, {axisPy});
90+
registry.add("V0LambdapzInJetV0frame", "V0LambdapzInJetV0frame", kTH1F, {axisPz});
91+
8692
registry.add("hLambdamassandSinPhi", "hLambdamassandSinPhi", kTH2F, {{200, 0.9, 1.2}, {200, -1, 1}});
8793
registry.add("profile", "Invariant Mass vs sin(phi)", {HistType::kTProfile, {{200, 0.9, 1.2}}});
8894
}
@@ -120,29 +126,30 @@ struct LfMyV0s {
120126
TVector3 UnitZ(0.0, 0.0, 1.0);
121127
TVector3 JetP(Jetpx, Jetpy, Jetpz);
122128
TVector3 V0LambdaP(Lambdapx, Lambdapy, Lambdapz);
123-
TVector3 JetCrossV0 = (JetP.Cross(V0LambdaP));
124-
TVector3 YinJet = (JetCrossV0).Cross(JetP);
125-
TVector3 UnitXInJet = YinJet.Unit();
126-
TVector3 UnitYInJet = JetCrossV0.Unit();
127-
TVector3 UnitZInJet = JetP.Unit();
129+
TVector3 vortex_y = (JetP.Cross(V0LambdaP));
130+
131+
TVector3 z_hat = JetP.Unit();
132+
TVector3 y_hat = vortex_y.Unit();
133+
TVector3 x_hat1 = y_hat.Cross(z_hat);
134+
TVector3 x_hat = x_hat1.Unit();
128135

129136
TMatrixD matrixLabToJet(4, 4);
130137
matrixLabToJet(0, 0) = 1;
131138
matrixLabToJet(0, 1) = 0.0;
132139
matrixLabToJet(0, 2) = 0.0;
133140
matrixLabToJet(0, 3) = 0.0;
134141
matrixLabToJet(1, 0) = 0.0;
135-
matrixLabToJet(1, 1) = UnitXInJet * UnitX;
136-
matrixLabToJet(1, 2) = UnitXInJet * UnitY;
137-
matrixLabToJet(1, 3) = UnitXInJet * UnitZ;
142+
matrixLabToJet(1, 1) = x_hat.X();
143+
matrixLabToJet(1, 2) = x_hat.Y();
144+
matrixLabToJet(1, 3) = x_hat.Z();
138145
matrixLabToJet(2, 0) = 0.0;
139-
matrixLabToJet(2, 1) = UnitYInJet * UnitX;
140-
matrixLabToJet(2, 2) = UnitYInJet * UnitY;
141-
matrixLabToJet(2, 3) = UnitYInJet * UnitZ;
146+
matrixLabToJet(2, 1) = y_hat.X();
147+
matrixLabToJet(2, 2) = y_hat.Y();
148+
matrixLabToJet(2, 3) = y_hat.Z();
142149
matrixLabToJet(3, 0) = 0.0;
143-
matrixLabToJet(3, 1) = UnitZInJet * UnitX;
144-
matrixLabToJet(3, 2) = UnitZInJet * UnitY;
145-
matrixLabToJet(3, 3) = UnitZInJet * UnitZ;
150+
matrixLabToJet(3, 1) = z_hat.X();
151+
matrixLabToJet(3, 2) = z_hat.Y();
152+
matrixLabToJet(3, 3) = z_hat.Z();
146153
return matrixLabToJet;
147154
}
148155
// aod::MyCollision const& collision
@@ -184,6 +191,8 @@ struct LfMyV0s {
184191
pLabproton(3, 0) = candidate.v0protonpz();
185192
TMatrixD protonInV0(4, 1);
186193
protonInV0 = LorentzTransInV0frame(ELambda, candidate.v0px(), candidate.v0py(), candidate.v0pz()) * pLabproton;
194+
double protonMassInV0 = sqrt(protonInV0(0, 0) * protonInV0(0, 0) - protonInV0(1, 0) * protonInV0(1, 0) - protonInV0(2, 0) * protonInV0(2, 0) - protonInV0(3, 0) * protonInV0(3, 0));
195+
registry.fill(HIST("V0protonMassInRest_frame"), protonMassInV0);
187196
registry.fill(HIST("V0protonpxInRest_frame"), protonInV0(1, 0));
188197
registry.fill(HIST("V0protonpyInRest_frame"), protonInV0(2, 0));
189198
registry.fill(HIST("V0protonpzInRest_frame"), protonInV0(3, 0));
@@ -201,7 +210,6 @@ struct LfMyV0s {
201210
PROCESS_SWITCH(LfMyV0s, processJetV0Analysis, "processJetV0Analysis", true);
202211
void processLeadingJetV0Analysis(aod::MyTable const& myv0s, aod::MyTableLeadingJet const& myleadingJets)
203212
{
204-
//
205213
for (auto& LeadingJet : myleadingJets) {
206214
int V0Numbers = 0;
207215
double protonsinPhiInJetV0frame = 0;
@@ -210,14 +218,30 @@ struct LfMyV0s {
210218
V0Numbers = V0Numbers + 1;
211219
double PLambda = sqrt(candidate.v0px() * candidate.v0px() + candidate.v0py() * candidate.v0py() + candidate.v0pz() * candidate.v0pz());
212220
double ELambda = sqrt(candidate.v0Lambdamass() * candidate.v0Lambdamass() + PLambda * PLambda);
213-
TMatrixD pLabproton(4, 1);
214221
double protonE = sqrt(massPr * massPr + candidate.v0protonpx() * candidate.v0protonpx() + candidate.v0protonpy() * candidate.v0protonpy() + candidate.v0protonpz() * candidate.v0protonpz());
222+
223+
TMatrixD pLabV0(4, 1);
224+
pLabV0(0, 0) = ELambda;
225+
pLabV0(1, 0) = candidate.v0px();
226+
pLabV0(2, 0) = candidate.v0py();
227+
pLabV0(3, 0) = candidate.v0pz();
228+
229+
TMatrixD lambdaInJet(4, 1);
230+
lambdaInJet = MyTMatrixTranslationToJet(LeadingJet.leadingjetpx(), LeadingJet.leadingjetpy(), LeadingJet.leadingjetpz(), candidate.v0px(), candidate.v0py(), candidate.v0pz()) * pLabV0;
231+
232+
TMatrixD lambdaInJetV0(4, 1);
233+
lambdaInJetV0 = LorentzTransInV0frame(ELambda, lambdaInJet(1, 0), lambdaInJet(2, 0), lambdaInJet(3, 0)) * MyTMatrixTranslationToJet(LeadingJet.leadingjetpx(), LeadingJet.leadingjetpy(), LeadingJet.leadingjetpz(), candidate.v0px(), candidate.v0py(), candidate.v0pz()) * pLabV0;
234+
registry.fill(HIST("V0LambdapxInJetV0frame"), lambdaInJetV0(1, 0));
235+
registry.fill(HIST("V0LambdapyInJetV0frame"), lambdaInJetV0(2, 0));
236+
registry.fill(HIST("V0LambdapzInJetV0frame"), lambdaInJetV0(3, 0));
237+
238+
TMatrixD pLabproton(4, 1);
215239
pLabproton(0, 0) = protonE;
216240
pLabproton(1, 0) = candidate.v0protonpx();
217241
pLabproton(2, 0) = candidate.v0protonpy();
218242
pLabproton(3, 0) = candidate.v0protonpz();
219243
TMatrixD protonInJetV0(4, 1);
220-
protonInJetV0 = LorentzTransInV0frame(ELambda, candidate.v0px(), candidate.v0py(), candidate.v0pz()) * MyTMatrixTranslationToJet(LeadingJet.leadingjetpx(), LeadingJet.leadingjetpy(), LeadingJet.leadingjetpz(), candidate.v0px(), candidate.v0py(), candidate.v0pz()) * pLabproton;
244+
protonInJetV0 = LorentzTransInV0frame(ELambda, lambdaInJet(1, 0), lambdaInJet(2, 0), lambdaInJet(3, 0)) * MyTMatrixTranslationToJet(LeadingJet.leadingjetpx(), LeadingJet.leadingjetpy(), LeadingJet.leadingjetpz(), candidate.v0px(), candidate.v0py(), candidate.v0pz()) * pLabproton;
221245
registry.fill(HIST("V0protonpxInJetV0frame"), protonInJetV0(1, 0));
222246
registry.fill(HIST("V0protonpyInJetV0frame"), protonInJetV0(2, 0));
223247
registry.fill(HIST("V0protonpzInJetV0frame"), protonInJetV0(3, 0));

0 commit comments

Comments
 (0)