Define a boost 3-vector and boost a 4-vector

Asked by Ioannis Tsinikos

Dear MA5 experts,

I am working on a ttj sample and I want to go to specific frames in the expert mode.

I am trying to define the boostvector to the Center Mass Frame of the two tops and the jet 'a la ROOT':
TVector3 CM_RF = -(t_lab.momentum()+tx_lab.momentum()+j_lab.momentum()).BoostVector();
This gives error: no member named 'BoostVector' in 'MA5::MALorentzVector'.

Then again I try to boost the top momentum:
t_lab.momentum().Boost(CM_RF);
This also gives error: no member named 'Boost' in 'MA5::MALorentzVector'

I also try to simply define a unit 3vector:
TVector3 v1 = t_lab.momentum().Vect().Unit();
and I get : no viable conversion from 'MA5::MAVector3' to 'TVector3'

Is this normal? In previous versions of MadAnalysis I was using exactly this way to do boosts and it was working. Is it disabled for some reason? The MALorentzVector is not the TLorentzVector of ROOT? Why the 3-vector of MadAnalysis is no longer recognized as a ROOT TVector3?

Note that for the 't_lab.momentum()' I can use all the other functions defined by ROOT for a TLorentzVector, like Phi, Pt, DeltaPhi, Rapidity etc.. It seems that there is an issue only with the functions related to boosts.

Thank you in advance,
Ioannis

Question information

Language:
English Edit question
Status:
Solved
For:
MadAnalysis 5 Edit question
Assignee:
No assignee Edit question
Solved by:
Benjamin Fuks
Solved:
Last query:
Last reply:
Revision history for this message
Best Benjamin Fuks (fuks) said :
#1

Hi Ioannis,

We fixed several bugs related to this variable in v1.5 beta. Are you using this version?

The methods you are looking for are then located in
  tools/SampleAnalyzer/Commons/Vector/MABoost.h

Does it help?

Cheers,

Benjamin

On 04 Nov 2016, at 11:42 , Ioannis Tsinikos <email address hidden> wrote:

> New question #403789 on MadAnalysis 5:
> https://answers.launchpad.net/madanalysis5/+question/403789
>
> Dear MA5 experts,
>
> I am working on a ttj sample and I want to go to specific frames in the expert mode.
>
> I am trying to define the boostvector to the Center Mass Frame of the two tops and the jet 'a la ROOT':
> TVector3 CM_RF = -(t_lab.momentum()+tx_lab.momentum()+j_lab.momentum()).BoostVector();
> This gives error: no member named 'BoostVector' in 'MA5::MALorentzVector'.
>
> Then again I try to boost the top momentum:
> t_lab.momentum().Boost(CM_RF);
> This also gives error: no member named 'Boost' in 'MA5::MALorentzVector'
>
> I also try to simply define a unit 3vector:
> TVector3 v1 = t_lab.momentum().Vect().Unit();
> and I get : no viable conversion from 'MA5::MAVector3' to 'TVector3'
>
> Is this normal? In previous versions of MadAnalysis I was using exactly this way to do boosts and it was working. Is it disabled for some reason? The MALorentzVector is not the TLorentzVector of ROOT? Why the 3-vector of MadAnalysis is no longer recognized as a ROOT TVector3?
>
> Note that for the 't_lab.momentum()' I can use all the other functions defined by ROOT for a TLorentzVector, like Phi, Pt, DeltaPhi, Rapidity etc.. It seems that there is an issue only with the functions related to boosts.
>
> Thank you in advance,
> Ioannis
>
>
> --
> You received this question notification because you are an answer
> contact for MadAnalysis 5.

Revision history for this message
Ioannis Tsinikos (ioannis-tsinikos) said :
#2

Hi Benjamin,

thank you for your prompt answer. I noticed in one presentation about MA5_v1.4 that the ROOT TLorentzVector cannot be used anymore and is substituted by the MALorentzVector. This explains the errors I was getting.

Using the v1.5beta version indeed solves the problem if I use the functions defined in MABoost.h.

Best,
Ioannis

Revision history for this message
Ioannis Tsinikos (ioannis-tsinikos) said :
#3

Thanks Benjamin Fuks, that solved my question.