MINT2
Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
SF_BtoTV0_TtoVP1_VtoP2P3_P Class Reference

#include <SpinFactors4Body_FsVector.h>

Inheritance diagram for SF_BtoTV0_TtoVP1_VtoP2P3_P:
SF_BtoTV0_TtoVP1_VtoP2P3_BASE SpinFactor MINT::IReturnRealForEvent< IDalitzEvent > MINT::IReturnComplexForEvent< IDalitzEvent > CachedByEvent< std::complex< double > > MINT::FitParDependent ISpinFactor MINT::IFitParDependent MINT::IFitParRegister MINT::PolymorphVector< FitParRef > MINT::IReturnRealForEvent< IDalitzEvent > MINT::IReturnComplexForEvent< IDalitzEvent > MINT::IFitParDependent

Public Member Functions

virtual void printYourself (std::ostream &os=std::cout) const
 
 SF_BtoTV0_TtoVP1_VtoP2P3_P (const AssociatedDecayTree &theDecay, const int pol)
 
virtual ~SF_BtoTV0_TtoVP1_VtoP2P3_P ()
 
virtual double getVal (IDalitzEvent &evt)
 
virtual std::complex< double > getNewVal (IDalitzEvent &evt)
 
virtual const DecayTreeexampleDecay ()
 
virtual std::string name () const
 
int getPolarisation ()
 
- Public Member Functions inherited from SF_BtoTV0_TtoVP1_VtoP2P3_BASE
 SF_BtoTV0_TtoVP1_VtoP2P3_BASE (const AssociatedDecayTree &theDecay)
 
virtual ~SF_BtoTV0_TtoVP1_VtoP2P3_BASE ()
 
- Public Member Functions inherited from SpinFactor
virtual double RealVal (IDalitzEvent &evt)
 
virtual std::complex< double > ComplexVal (IDalitzEvent &evt)
 
double mRes (const AssociatedDecayTreeItem &adt, IDalitzEvent &evt)
 
double mRes (const MINT::const_counted_ptr< AssociatedDecayTree > &adt, IDalitzEvent &evt)
 
const AssociatedDecayTreetheDecay () const
 
const AssociatedDecayTreetheDecay (const DalitzEventPattern &) const
 
const AssociatedDecayTreetheDecay (IDalitzEvent &evt) const
 
 SpinFactor (const AssociatedDecayTree &decay, int nFinal=3)
 
 SpinFactor (const SpinFactor &other)
 
virtual void printParsing (std::ostream &os=std::cout) const
 
virtual ~SpinFactor ()
 
- Public Member Functions inherited from MINT::IReturnRealForEvent< IDalitzEvent >
virtual ~IReturnRealForEvent ()
 
- Public Member Functions inherited from MINT::IReturnComplexForEvent< IDalitzEvent >
virtual ~IReturnComplexForEvent ()
 
- Public Member Functions inherited from CachedByEvent< std::complex< double > >
 CachedByEvent ()
 
 CachedByEvent (const CachedByEvent &)
 
std::complex< double > getValWithCaching (IDalitzEvent &evt)
 
std::complex< double > getValWithCachingPermutation (IDalitzEvent &evt)
 
- Public Member Functions inherited from MINT::FitParDependent
virtual unsigned int size () const
 
virtual const FitParRefoperator[] (unsigned int i) const
 
virtual FitParRefoperator[] (unsigned int i)
 
virtual bool changedSinceLastCall () const
 
virtual void rememberFitParValues ()
 
virtual bool registerFitParDependence (const IFitParDependent &fpd)
 
bool registerFitParDependence (const FitParRef &fpr)
 
void removeAllFitParDependencies ()
 
 FitParDependent (IFitParRegister *daddy=0)
 
 FitParDependent (const FitParDependent &other, IFitParRegister *newDaddy=0)
 
void listFitParDependencies (std::ostream &os=std::cout) const
 
- Public Member Functions inherited from MINT::PolymorphVector< FitParRef >
 PolymorphVector ()
 
 PolymorphVector (unsigned int N)
 
 PolymorphVector (unsigned int N, const FitParRef &c)
 
 PolymorphVector (const PolymorphVector &other)
 
 PolymorphVector (const typename std::vector< FitParRef > &other)
 
virtual ~PolymorphVector ()
 
std::vector< FitParRef > & theVector ()
 
const std::vector< FitParRef > & theVector () const
 
FitParRefoperator[] (unsigned int i)
 
const FitParRefoperator[] (unsigned int i) const
 
FitParRefat (unsigned int i)
 
const FitParRefat (unsigned int i) const
 
std::vector< FitParRef >::iterator begin ()
 
std::vector< FitParRef >::const_iterator begin () const
 
std::vector< FitParRef >::iterator end ()
 
std::vector< FitParRef >::const_iterator end () const
 
std::vector< FitParRef >::iterator find (const FitParRef &c)
 
std::vector< FitParRef >::const_iterator find (const FitParRef &c) const
 
FitParReffront ()
 
const FitParReffront () const
 
FitParRefback ()
 
const FitParRefback () const
 
unsigned int size () const
 
bool empty () const
 
void push_back (const FitParRef &c)
 
void pop_back ()
 
void erase (typename std::vector< FitParRef >::iterator pos)
 
void erase (typename std::vector< FitParRef >::iterator first, typename std::vector< FitParRef >::iterator last)
 
PolymorphVector< FitParRef > & operator= (const PolymorphVector< FitParRef > &other)
 
void clear ()
 
void resize (unsigned int N)
 
void resize (unsigned int N, const FitParRef &c)
 
 operator const typename std::vector< FitParRef > & () const
 
 operator typename std::vector< FitParRef > & ()
 
bool operator== (const MINT::PolymorphVector< FitParRef > &v2) const
 
bool operator!= (const MINT::PolymorphVector< FitParRef > &v2) const
 
bool operator< (const MINT::PolymorphVector< FitParRef > &v2) const
 
bool operator> (const MINT::PolymorphVector< FitParRef > &v2) const
 
- Public Member Functions inherited from ISpinFactor
virtual ~ISpinFactor ()
 

Static Public Member Functions

static const DecayTreegetExampleDecay ()
 

Protected Attributes

int _pol
 
- Protected Attributes inherited from SF_BtoTV0_TtoVP1_VtoP2P3_BASE
MINT::const_counted_ptr< AssociatedDecayTreeT
 
MINT::const_counted_ptr< AssociatedDecayTreeV
 
- Protected Attributes inherited from SpinFactor
const AssociatedDecayTree_theDecay
 
int _nFinal
 
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
 
MINT::NamedParameter< int > _useZemachTensors
 
- Protected Attributes inherited from CachedByEvent< std::complex< double > >
long int _rememberNumber
 
std::vector< long int > _rememberNumberPermutation
 
long int _configNumber
 
- Protected Attributes inherited from MINT::PolymorphVector< FitParRef >
std::vector< FitParRef_vec
 

Static Protected Attributes

static DecayTree_exampleDecayP =0
 

Additional Inherited Members

- Protected Member Functions inherited from SF_BtoTV0_TtoVP1_VtoP2P3_BASE
virtual bool parseTree (const DalitzEventPattern &pat)
 
- Protected Member Functions inherited from SpinFactor
TLorentzVector p (int i, IDalitzEvent &evt)
 
- Protected Member Functions inherited from MINT::IReturnRealForEvent< IDalitzEvent >
 IReturnRealForEvent ()
 
- Protected Member Functions inherited from MINT::IReturnComplexForEvent< IDalitzEvent >
 IReturnComplexForEvent ()
 
- Protected Member Functions inherited from CachedByEvent< std::complex< double > >
long int rememberNumber ()
 
long int rememberNumberPermutation (IDalitzEvent &evt)
 
long int configNumber ()
 
std::complex< double > recalculate (IDalitzEvent &evt)
 
std::complex< double > recalculatePermutation (IDalitzEvent &evt)
 
- Protected Member Functions inherited from ISpinFactor
 ISpinFactor ()
 

Detailed Description

Definition at line 591 of file SpinFactors4Body_FsVector.h.

Constructor & Destructor Documentation

◆ SF_BtoTV0_TtoVP1_VtoP2P3_P()

SF_BtoTV0_TtoVP1_VtoP2P3_P::SF_BtoTV0_TtoVP1_VtoP2P3_P ( const AssociatedDecayTree theDecay,
const int  pol 
)
inline

Definition at line 597 of file SpinFactors4Body_FsVector.h.

SF_BtoTV0_TtoVP1_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50

◆ ~SF_BtoTV0_TtoVP1_VtoP2P3_P()

virtual SF_BtoTV0_TtoVP1_VtoP2P3_P::~SF_BtoTV0_TtoVP1_VtoP2P3_P ( )
inlinevirtual

Definition at line 600 of file SpinFactors4Body_FsVector.h.

600 {}

Member Function Documentation

◆ exampleDecay()

const DecayTree & SF_BtoTV0_TtoVP1_VtoP2P3_P::exampleDecay ( )
virtual

Implements SF_BtoTV0_TtoVP1_VtoP2P3_BASE.

Definition at line 1368 of file SpinFactors4Body_FsVector.cpp.

1368  {
1369  return getExampleDecay();
1370 }
static const DecayTree & getExampleDecay()

◆ getExampleDecay()

const DecayTree & SF_BtoTV0_TtoVP1_VtoP2P3_P::getExampleDecay ( )
static

Definition at line 1359 of file SpinFactors4Body_FsVector.cpp.

1359  {
1360  if(0==_exampleDecayP){
1361  // B->J/psi K2*(1430); K2->K*(892) pi; K*->K pi
1362  _exampleDecayP = new DecayTree(521);
1363  _exampleDecayP->addDgtr(443, 325)->addDgtr(211, 313)->addDgtr(321,-211);
1364  }
1365  return *_exampleDecayP;
1366 }
MINT::counted_ptr< DDTree< ValueType > > addDgtr(const DDTree< ValueType > *treePtr)
Definition: DDTree.h:211
DDTree< DecayTreeItem > DecayTree
Definition: DecayTree.h:35

◆ getNewVal()

complex< double > SF_BtoTV0_TtoVP1_VtoP2P3_P::getNewVal ( IDalitzEvent evt)
virtual

Implements SF_BtoTV0_TtoVP1_VtoP2P3_BASE.

Definition at line 1372 of file SpinFactors4Body_FsVector.cpp.

1372  {
1373  //bool debugThis = false;
1374 
1375  if(! ( fsPS[0] && fsPS[1] && fsPS[2] && fsPS[3]) ) parseTree(evt.eventPattern());
1376 
1377  double MT = mRes(T,evt);
1378  double MV = mRes(V,evt);
1379  double MV0 = mRes(fsPS[0],evt); // ??
1380  //double MV0 = p(0,evt).M(); // ??
1381 
1382  TLorentzVector pV= p(2,evt)+p(3,evt);
1383  TLorentzVector qV= p(2,evt)-p(3,evt);
1384  TLorentzVector pT= pV+p(1,evt);
1385  TLorentzVector qT= pV-p(1,evt);
1386  TLorentzVector pB= pT+p(0,evt);
1387  TLorentzVector qB= pT-p(0,evt);
1388 
1389  ZTspin1 ZB(qB,pB,pB.M());
1390  ZTspin1 ZV(qV,pV,MV);
1391  ZTspin1 Z_1T(qT,pT,MT);
1392  SpinSumV PT(pT,MT);
1393  //ZTspin2 ZT(qT, pT, MT);
1394 
1395  polVector e = polVector(p(0,evt),MV0,getPolarisation());
1396  e.conj();
1397 
1398  complex<double> sfm;
1399 
1400  TLorentzVector tmp0 = PT.Dot(ZV);
1401  if(tmp0==TLorentzVector(0,0,0,0))return 0.;
1402 
1403  TLorentzVector tmp1 = PT.Dot(ZB);
1404  TLorentzVector tmp2_Re = Z_1T * Z_1T.Dot(e.Re()) + 1./3. * Z_1T.Mag2() * PT.Dot(e.Re());
1405  TLorentzVector tmp2_Im = Z_1T * Z_1T.Dot(e.Im()) + 1./3. * Z_1T.Mag2() * PT.Dot(e.Im());
1406 
1407  TLorentzVector tmp3_Re = PT.Dot(e.Re());
1408  TLorentzVector tmp3_Im = PT.Dot(e.Im());
1409  TLorentzVector tmp4 = Z_1T * Z_1T.Dot(ZB) + 1./3. * Z_1T.Mag2() * PT.Dot(ZB);
1410 
1411 
1412  if(getPolarisation()==0)sfm=complex<double>(LeviCivita(pT,tmp0,tmp1,tmp2_Re)+LeviCivita(pT,tmp0,tmp4,tmp3_Re),0.);
1413  else sfm=complex<double>(LeviCivita(pT,tmp0,tmp1,tmp2_Re)+LeviCivita(pT,tmp0,tmp4,tmp3_Re),LeviCivita(pT,tmp0,tmp1,tmp2_Im)+LeviCivita(pT,tmp0,tmp4,tmp3_Im));
1414 
1415  //TLorentzVector tmp_Re = Z_1T * (Z_1T.Contract(e.Re())) - 1./3. * Z_1T.Mag2() * PT.Dot(e.Re()) ;
1416  //TLorentzVector tmp_Im = Z_1T * (Z_1T.Contract(e.Im())) - 1./3. * Z_1T.Mag2() * PT.Dot(e.Im()) ;
1417  //complex<double> sfm;
1418  //if(getPolarisation()==0)sfm=complex<double>(LeviCivita(tmp_Re,ZV,pB,qB),0.);
1419  //else sfm=complex<double>(LeviCivita(tmp_Re,ZV,pB,qB),LeviCivita(tmp_Im,ZV,pB,qB));
1420 
1421  //if(getPolarisation()==0)sfm=complex<double>(LeviCivita(ZT.Contract(e.Re()),ZV,pB,qB),0.);
1422  //else sfm=complex<double>(LeviCivita(ZT.Contract(e.Re()),ZV,pT,qT),LeviCivita(ZT.Contract(e.Im()),ZV,pT,qT));
1423 
1424 
1425  return sfm/(GeV*GeV*GeV*GeV*GeV);
1426 }
MINT::const_counted_ptr< AssociatedDecayTree > T
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
Definition: SpinFactor.h:30
MINT::const_counted_ptr< AssociatedDecayTree > V
virtual bool parseTree(const DalitzEventPattern &pat)
const TLorentzVector & Re() const
TLorentzVector p(int i, IDalitzEvent &evt)
Definition: SpinFactor.cpp:11
virtual const DalitzEventPattern & eventPattern() const =0
double mRes(const AssociatedDecayTreeItem &adt, IDalitzEvent &evt)
Definition: SpinFactor.cpp:53
static const double GeV
Definition: ZTspin1.h:9
const TLorentzVector & Im() const
double LeviCivita(const TLorentzVector &p0, const TLorentzVector &p1, const TLorentzVector &p2, const TLorentzVector &p3)
Definition: LeviCivita.h:12

◆ getPolarisation()

int SF_BtoTV0_TtoVP1_VtoP2P3_P::getPolarisation ( )
inline

Definition at line 610 of file SpinFactors4Body_FsVector.h.

◆ getVal()

virtual double SF_BtoTV0_TtoVP1_VtoP2P3_P::getVal ( IDalitzEvent evt)
inlinevirtual

Implements SF_BtoTV0_TtoVP1_VtoP2P3_BASE.

Definition at line 601 of file SpinFactors4Body_FsVector.h.

601 {return getNewVal(evt).real();}
virtual std::complex< double > getNewVal(IDalitzEvent &evt)

◆ name()

virtual std::string SF_BtoTV0_TtoVP1_VtoP2P3_P::name ( ) const
inlinevirtual

Reimplemented from SF_BtoTV0_TtoVP1_VtoP2P3_BASE.

Definition at line 606 of file SpinFactors4Body_FsVector.h.

606  {
607  return "SpinFactor4:SF_SF_BtoTV0_TtoVP1_VtoP2P3_P("
608  + theDecay().oneLiner() + ")";
609  }
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375

◆ printYourself()

void SF_BtoTV0_TtoVP1_VtoP2P3_P::printYourself ( std::ostream &  os = std::cout) const
virtual

Implements SF_BtoTV0_TtoVP1_VtoP2P3_BASE.

Definition at line 1427 of file SpinFactors4Body_FsVector.cpp.

1427  {
1428  // bool debugThis = false;
1429 
1430  if(! ( fsPS[0] && fsPS[1] && fsPS[2] && fsPS[3]) ) return;
1431  os << "spin factor SF_BtoTV0_TtoVP1_VtoP2P3_P"
1432  << "\n\t LeviCivita(ZT.Contract(e_c),ZV,pB,qB)"
1433  << "\n\t /GeV^5"
1434  << "\n\t parsed tree " << theDecay().oneLiner()
1435  << "\n like this:" << endl;
1436  this->printParsing(os);
1437 }
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
Definition: SpinFactor.h:30
virtual void printParsing(std::ostream &os=std::cout) const
Definition: SpinFactor.cpp:57
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375

Member Data Documentation

◆ _exampleDecayP

DecayTree * SF_BtoTV0_TtoVP1_VtoP2P3_P::_exampleDecayP =0
staticprotected

Definition at line 594 of file SpinFactors4Body_FsVector.h.

◆ _pol

int SF_BtoTV0_TtoVP1_VtoP2P3_P::_pol
protected

Definition at line 593 of file SpinFactors4Body_FsVector.h.


The documentation for this class was generated from the following files: