ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
BsJpsiPhiAngles Class Reference

#include <BsJpsiPhiAngles.h>

Collaboration diagram for BsJpsiPhiAngles:

Public Member Functions

double thetaK () const
 
double thetaL () const
 
double chi () const
 
double thetatr () const
 
double phitr () const
 
double thetaKfix () const
 
double thetaLfix () const
 
double chifix () const
 
double thetatrfix () const
 
double phitrfix () const
 
 BsJpsiPhiAngles (const CLHEP::HepLorentzVector &Kplus, const CLHEP::HepLorentzVector &Muplus, const CLHEP::HepLorentzVector &Phi, const CLHEP::HepLorentzVector &Jpsi, const CLHEP::HepLorentzVector &Bs)
 

Private Attributes

double m_theta1
 
double m_theta2
 
double m_chi
 
double m_thetatr
 
double m_phitr
 

Detailed Description

Definition at line 9 of file BsJpsiPhiAngles.h.

Constructor & Destructor Documentation

◆ BsJpsiPhiAngles()

BsJpsiPhiAngles::BsJpsiPhiAngles ( const CLHEP::HepLorentzVector &  Kplus,
const CLHEP::HepLorentzVector &  Muplus,
const CLHEP::HepLorentzVector &  Phi,
const CLHEP::HepLorentzVector &  Jpsi,
const CLHEP::HepLorentzVector &  Bs 
)
inline

Definition at line 40 of file BsJpsiPhiAngles.h.

45  {
46  using CLHEP::HepLorentzVector;
47  using CLHEP::Hep3Vector;
48 
49  m_theta1 = 0.;
50  m_theta2 = 0.;
51  m_chi = 0.;
52  m_thetatr = 0.;
53  m_phitr = 0.;
54 
55 
56  // 0.1 Get the Mummy1 & Mummy2 4-vectors in lab
57  HepLorentzVector Mum1QV ( Phi ) ; // this should be phi
58  HepLorentzVector Mum2QV ( Jpsi ) ; // this should be jpsi
59  // 0.2 Boost the Mummy1 & Mummy2 to the B(aBcand) rest frame
60  HepLorentzVector BQV(Bs); // this should be Bs Meson
61 
62  Hep3Vector Bboost ( BQV.boostVector() );
63  Mum1QV.boost ( -( Bboost ) );
64  Mum2QV.boost ( -( Bboost ) );
65  // 1. Compute helicity angle theta1
66  // 1.1 Boost cand1 to the B rest frame (grandMa)
67  HepLorentzVector cand1QV ( Kplus );
68  cand1QV.boost ( - (Bboost) );
69  // 1.2 Boost now cand1 in his mother rest frame
70  cand1QV.boost ( - (Mum1QV.boostVector() ) );
71  // 1.3 compute the theta1 angle
72  Hep3Vector Mum1TV = Mum1QV.boostVector();
73  Hep3Vector cand1TV = cand1QV.boostVector();
74  Hep3Vector ucand1TV = cand1TV.unit();
75  m_theta1 = cand1TV.angle(Mum1TV);
76 
77 
78 
79  // 2. Compute helicity angle theta2
80  // 2.1 Boost cand2 to the B rest frame (grandMa)
81  HepLorentzVector cand2QV ( Muplus );
82  cand2QV.boost ( - (Bboost) );
83  // 2.2 Boost now cand2 in his mother rest frame
84  cand2QV.boost ( - (Mum2QV.boostVector() ) );
85  // 2.3 compute the theta2 angle
86  Hep3Vector Mum2TV = Mum2QV.boostVector();
87  Hep3Vector cand2TV = cand2QV.boostVector();
88  Hep3Vector ucand2TV = cand2TV.unit();
89  m_theta2 = cand2TV.angle(Mum2TV);
90 
91  // 3. Compute the chi angle
92  // 3.1 Define the c and d vectors (see Physbook)
93  Hep3Vector c;
94  Hep3Vector d;
95  Hep3Vector uMum1TV = Mum1TV.unit();
96  Hep3Vector uMum2TV = Mum2TV.unit();
97 
98  // 3.2 Calculate these vectors
99  c = (uMum1TV.cross(ucand1TV)).cross(uMum1TV);
100  d = (uMum2TV.cross(ucand2TV)).cross(uMum2TV);
101  double sinphi = (c.cross(uMum1TV)).dot(d);
102  double cosphi = c.dot(d);
103  // 3.3 Now get chi = angle between the 2 decay planes
104  m_chi = std::atan2(sinphi,cosphi);
105  // 3.4 Put chi in [0;2pi]
106  if ( m_chi < 0 )
107  {
108  m_chi = 2.*M_PI + m_chi;
109  }
110 
111  // 4. Transversity angles
112  double cosThetaTr = std::sin ( m_theta2 ) * std::sin ( m_chi ) ;
113  double sinThetaTr = std::sqrt ( 1. - cosThetaTr * cosThetaTr ) ;
114  double cosPhiTr = std::cos(m_theta2) / sinThetaTr ;
115  double sinPhiTr = std::sin(m_theta2) * std::cos( m_chi ) / sinThetaTr ;
116  m_phitr = std::atan2 ( sinPhiTr, cosPhiTr ) ;
117  if (m_phitr < 0)
118  {
119  m_phitr = 2.*M_PI + m_phitr;
120  }
121  m_thetatr = std::acos(cosThetaTr) ;
122 
123 
124 
125  }

Member Function Documentation

◆ chi()

double BsJpsiPhiAngles::chi ( ) const
inline

Definition at line 24 of file BsJpsiPhiAngles.h.

24 { return m_chi; }

◆ chifix()

double BsJpsiPhiAngles::chifix ( ) const
inline

Definition at line 30 of file BsJpsiPhiAngles.h.

30 { return -(m_chi - M_PI) ; }

◆ phitr()

double BsJpsiPhiAngles::phitr ( ) const
inline

Definition at line 26 of file BsJpsiPhiAngles.h.

26 { return m_phitr; }

◆ phitrfix()

double BsJpsiPhiAngles::phitrfix ( ) const
inline

Definition at line 32 of file BsJpsiPhiAngles.h.

32 { return -(m_phitr - M_PI); }

◆ thetaK()

double BsJpsiPhiAngles::thetaK ( ) const
inline

Definition at line 22 of file BsJpsiPhiAngles.h.

22 { return m_theta1; }

◆ thetaKfix()

double BsJpsiPhiAngles::thetaKfix ( ) const
inline

Definition at line 28 of file BsJpsiPhiAngles.h.

28 { return cos(m_theta1); }

◆ thetaL()

double BsJpsiPhiAngles::thetaL ( ) const
inline

Definition at line 23 of file BsJpsiPhiAngles.h.

23 { return m_theta2; }

◆ thetaLfix()

double BsJpsiPhiAngles::thetaLfix ( ) const
inline

Definition at line 29 of file BsJpsiPhiAngles.h.

29 { return cos(m_theta2); }

◆ thetatr()

double BsJpsiPhiAngles::thetatr ( ) const
inline

Definition at line 25 of file BsJpsiPhiAngles.h.

25 { return m_thetatr; }

◆ thetatrfix()

double BsJpsiPhiAngles::thetatrfix ( ) const
inline

Definition at line 31 of file BsJpsiPhiAngles.h.

31 { return -cos(m_thetatr); }

Member Data Documentation

◆ m_chi

double BsJpsiPhiAngles::m_chi
private

Definition at line 17 of file BsJpsiPhiAngles.h.

◆ m_phitr

double BsJpsiPhiAngles::m_phitr
private

Definition at line 19 of file BsJpsiPhiAngles.h.

◆ m_theta1

double BsJpsiPhiAngles::m_theta1
private

Definition at line 15 of file BsJpsiPhiAngles.h.

◆ m_theta2

double BsJpsiPhiAngles::m_theta2
private

Definition at line 16 of file BsJpsiPhiAngles.h.

◆ m_thetatr

double BsJpsiPhiAngles::m_thetatr
private

Definition at line 18 of file BsJpsiPhiAngles.h.


The documentation for this class was generated from the following file:
hist_file_dump.d
d
Definition: hist_file_dump.py:137
M_PI
#define M_PI
Definition: ActiveFraction.h:11
BsJpsiPhiAngles::m_thetatr
double m_thetatr
Definition: BsJpsiPhiAngles.h:18
Phi
@ Phi
Definition: RPCdef.h:8
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
BsJpsiPhiAngles::m_phitr
double m_phitr
Definition: BsJpsiPhiAngles.h:19
dot.dot
def dot(G, fn, nodesToHighlight=[])
Definition: dot.py:5
BsJpsiPhiAngles::m_theta2
double m_theta2
Definition: BsJpsiPhiAngles.h:16
BsJpsiPhiAngles::m_theta1
double m_theta1
Definition: BsJpsiPhiAngles.h:15
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
BsJpsiPhiAngles::m_chi
double m_chi
Definition: BsJpsiPhiAngles.h:17
python.compressB64.c
def c
Definition: compressB64.py:93