MINT2
Public Member Functions | Static Public Member Functions | Static Private Attributes | List of all members
SF_DtoV1V2_V1toP0P1_V1toP2P3_D Class Reference

#include <SpinFactors4Body_ScalarsAndVectors.h>

Inheritance diagram for SF_DtoV1V2_V1toP0P1_V1toP2P3_D:
SF_DtoV1V2_V1toP0P1_V1toP2P3_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_DtoV1V2_V1toP0P1_V1toP2P3_D (const AssociatedDecayTree &theDecay)
 
virtual ~SF_DtoV1V2_V1toP0P1_V1toP2P3_D ()
 
virtual double getVal (IDalitzEvent &evt)
 
virtual const DecayTreeexampleDecay ()
 
virtual std::string name () const
 
- Public Member Functions inherited from SF_DtoV1V2_V1toP0P1_V1toP2P3_BASE
 SF_DtoV1V2_V1toP0P1_V1toP2P3_BASE (const AssociatedDecayTree &theDecay)
 
virtual ~SF_DtoV1V2_V1toP0P1_V1toP2P3_BASE ()
 
- Public Member Functions inherited from SpinFactor
virtual double RealVal (IDalitzEvent &evt)
 
virtual std::complex< double > ComplexVal (IDalitzEvent &evt)
 
virtual std::complex< double > getNewVal (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 ()
 

Static Private Attributes

static DecayTree_exampleDecayD =0
 

Additional Inherited Members

- Protected Member Functions inherited from SF_DtoV1V2_V1toP0P1_V1toP2P3_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 ()
 
- Protected Attributes inherited from SF_DtoV1V2_V1toP0P1_V1toP2P3_BASE
MINT::const_counted_ptr< AssociatedDecayTreeV1
 
MINT::const_counted_ptr< AssociatedDecayTreeV2
 
- 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
 

Detailed Description

Definition at line 277 of file SpinFactors4Body_ScalarsAndVectors.h.

Constructor & Destructor Documentation

◆ SF_DtoV1V2_V1toP0P1_V1toP2P3_D()

SF_DtoV1V2_V1toP0P1_V1toP2P3_D::SF_DtoV1V2_V1toP0P1_V1toP2P3_D ( const AssociatedDecayTree theDecay)
inline

Definition at line 281 of file SpinFactors4Body_ScalarsAndVectors.h.

283  {
284 // printYourself();
285  }
SF_DtoV1V2_V1toP0P1_V1toP2P3_BASE(const AssociatedDecayTree &theDecay)
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50

◆ ~SF_DtoV1V2_V1toP0P1_V1toP2P3_D()

virtual SF_DtoV1V2_V1toP0P1_V1toP2P3_D::~SF_DtoV1V2_V1toP0P1_V1toP2P3_D ( )
inlinevirtual

Definition at line 287 of file SpinFactors4Body_ScalarsAndVectors.h.

287 {}

Member Function Documentation

◆ exampleDecay()

const DecayTree & SF_DtoV1V2_V1toP0P1_V1toP2P3_D::exampleDecay ( )
virtual

Implements SF_DtoV1V2_V1toP0P1_V1toP2P3_BASE.

Definition at line 490 of file SpinFactors4Body_ScalarsAndVectors.cpp.

490  {
491  return getExampleDecay();
492 }

◆ getExampleDecay()

const DecayTree & SF_DtoV1V2_V1toP0P1_V1toP2P3_D::getExampleDecay ( )
static

Definition at line 469 of file SpinFactors4Body_ScalarsAndVectors.cpp.

469  {
470  if(0==_exampleDecayD){
471  _exampleDecayD = new DecayTree(421);
472  // remark: addDgtr always returns a pointer to the
473  // last daughter that was added, thus allowing these
474  // chains:
475  _exampleDecayD->addDgtr( 313)->addDgtr( 321, -211);
476  _exampleDecayD->addDgtr(-313)->addDgtr(-321, 211);
477 
478  _exampleDecayD->getVal().setL(2);
479  }
480  return *_exampleDecayD;
481 }
MINT::counted_ptr< DDTree< ValueType > > addDgtr(const DDTree< ValueType > *treePtr)
Definition: DDTree.h:211
const ValueType & getVal() const
Definition: DDTree.h:102
void setL(int l)
Definition: DecayTreeItem.h:61
DDTree< DecayTreeItem > DecayTree
Definition: DecayTree.h:35

◆ getVal()

double SF_DtoV1V2_V1toP0P1_V1toP2P3_D::getVal ( IDalitzEvent evt)
virtual

Implements SF_DtoV1V2_V1toP0P1_V1toP2P3_BASE.

Definition at line 660 of file SpinFactors4Body_ScalarsAndVectors.cpp.

660  {
661  // double check this!!
662  bool dbThis=false;
663 
664  if(! ( fsPS[0] && fsPS[1] && fsPS[2] && fsPS[3]) ) parseTree(evt.eventPattern());
665 
666  TLorentzVector pV1 = p(0, evt) + p(1, evt);
667  TLorentzVector qV1 = p(0, evt) - p(1, evt);
668  TLorentzVector pV2 = p(2, evt) + p(3, evt);
669  TLorentzVector qV2 = p(2, evt) - p(3, evt);
670 
671  double MV1 = mRes(V1, evt);
672  double MV2 = mRes(V2, evt);
673 
674 
675  if (_useZemachTensors) {
676  TLorentzVector pD = pV1 + pV2;
677  TLorentzVector qD = pV1 - pV2;
678  double mD = pD.M();
679 
680  ZTspin1 tV1(qV1, pV1, MV1);
681  ZTspin1 tV2(qV2, pV2, MV2);
682  ZTspin2 tD(qD, pD, mD);
683 
684  return tV1.Contract(tD.Contract(tV2))/(GeV*GeV*GeV*GeV);
685  }
686 
687  double returnVal =
688  ( qV1.Dot(pV2) - qV1.Dot(pV1) * pV1.Dot(pV2)/(MV1*MV1)
689  )*(
690  qV2.Dot(pV1) - qV2.Dot(pV2) * pV2.Dot(pV1)/(MV2*MV2)
691  )
692  / (GeV*GeV*GeV*GeV)
693  ;
694 
695  if(dbThis){
696  TLorentzVector pD = -(pV1 + pV2);
697  TLorentzVector qD = pV1 - pV2;
698  double mD = pD.M();
699 
700 
701  ZTspin1 tV1(qV1, pV1, MV1);
702  ZTspin1 tV2(qV2, pV2, MV2);
703  //ZTspin2 tD(pD + pV1, pD - pV1, mD);
704  ZTspin2 tD(qD, pD, mD);
705  //ZTspin2 tD(qD, pD, mD);
706 
707  double z1Result = tV1.Contract(tD.Contract(tV2))/(GeV*GeV*GeV*GeV);
708  double z2Result = tV1.Dot(pV2) * tV2.Dot(pV1)/(GeV*GeV*GeV*GeV);
709  double z3Result = tV1.Dot(tV2) * tD.Contract_2(tD)/(GeV*GeV* GeV*GeV*GeV*GeV *GeV*GeV*GeV*GeV);
710  cout << "SF_DtoV1V2_V1toP0P1_V1toP2P3_D compare: 1/n " << z1Result << " / "
711  << returnVal << " = " << z1Result/returnVal << endl;
712  cout << " .... and compare: 2/n " << z2Result << " / "
713  << returnVal << " = " << z2Result/returnVal << endl;
714  cout << " .... and compare: 2/1 " << z2Result << " / "
715  << z1Result << " = " << z2Result/z1Result << endl;
716  cout << " .... and compare: 3/n " << z3Result << " / "
717  << returnVal << " = " << z3Result/returnVal << endl;
718  cout << " .... and compare: 3/1 " << z3Result << " / "
719  << z1Result << " = " << z3Result/z1Result << endl;
720 
721  }
722 
723  return returnVal;
724 
725 }
MINT::const_counted_ptr< AssociatedDecayTree > V1
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
Definition: SpinFactor.h:30
MINT::const_counted_ptr< AssociatedDecayTree > V2
MINT::NamedParameter< int > _useZemachTensors
Definition: SpinFactor.h:31
virtual bool parseTree(const DalitzEventPattern &pat)
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

◆ name()

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

Reimplemented from SF_DtoV1V2_V1toP0P1_V1toP2P3_BASE.

Definition at line 292 of file SpinFactors4Body_ScalarsAndVectors.h.

292  {
293  return "SpinFactor4:SF_DtoV1V2_V1toP0P1_V1toP2P3_D("
294  + theDecay().oneLiner() + ")";
295  }
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375

◆ printYourself()

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

Implements SF_DtoV1V2_V1toP0P1_V1toP2P3_BASE.

Definition at line 726 of file SpinFactors4Body_ScalarsAndVectors.cpp.

726  {
727  // bool debugThis = false;
728  if(! ( fsPS[0] && fsPS[1] && fsPS[2] && fsPS[3]) ) return;
729  os << "spin factor SF_DtoV1V2_V1toP0P1_V1toP2P3_D"
730  << "\n\t ( qV1.Dot(pV2) - qV1.Dot(pV1) * pV1.Dot(pV2)/(MV1*MV1)"
731  << "\n\t )*( "
732  << "\n\t qV2.Dot(pV1) - qV2.Dot(pV2) * pV2.Dot(pV1)/(MV2*MV2)"
733  << "\n\t )"
734  << "\n\t / (GeV*GeV*GeV*GeV)"
735  << "\n\t with pV1 = p(0) + p(1), qV1 = p(0) - p(1), pV2 = p(2) + p(3), qV2 = p(2) - p(3)"
736  << "\n\t parsed tree " << theDecay().oneLiner()
737  << "\n like this:" << endl;
738  this->printParsing(os);
739 }
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

◆ _exampleDecayD

DecayTree * SF_DtoV1V2_V1toP0P1_V1toP2P3_D::_exampleDecayD =0
staticprivate

Definition at line 278 of file SpinFactors4Body_ScalarsAndVectors.h.


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