@@ -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