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

#include <SpinFactors4Body_ScalarsAndVectors.h>

Inheritance diagram for SF_DtoAP0_AtoVP1Dwave_VtoP2P3:
SF_DtoAP0_AtoVP1_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_DtoAP0_AtoVP1Dwave_VtoP2P3 (const AssociatedDecayTree &theDecay)
 
virtual ~SF_DtoAP0_AtoVP1Dwave_VtoP2P3 ()
 
virtual double getVal (IDalitzEvent &evt)
 
virtual const DecayTreeexampleDecay ()
 
virtual std::string name () const
 
- Public Member Functions inherited from SF_DtoAP0_AtoVP1_VtoP2P3_BASE
 SF_DtoAP0_AtoVP1_VtoP2P3_BASE (const AssociatedDecayTree &theDecay)
 
virtual ~SF_DtoAP0_AtoVP1_VtoP2P3_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 Protected Attributes

static DecayTree_exampleDecayD =0
 

Additional Inherited Members

- Protected Member Functions inherited from SF_DtoAP0_AtoVP1_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 ()
 
- Protected Attributes inherited from SF_DtoAP0_AtoVP1_VtoP2P3_BASE
MINT::const_counted_ptr< AssociatedDecayTreeA
 
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
 

Detailed Description

Definition at line 149 of file SpinFactors4Body_ScalarsAndVectors.h.

Constructor & Destructor Documentation

◆ SF_DtoAP0_AtoVP1Dwave_VtoP2P3()

SF_DtoAP0_AtoVP1Dwave_VtoP2P3::SF_DtoAP0_AtoVP1Dwave_VtoP2P3 ( const AssociatedDecayTree theDecay)
inline

Definition at line 154 of file SpinFactors4Body_ScalarsAndVectors.h.

156  {
157  }
SF_DtoAP0_AtoVP1_VtoP2P3_BASE(const AssociatedDecayTree &theDecay)
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50

◆ ~SF_DtoAP0_AtoVP1Dwave_VtoP2P3()

virtual SF_DtoAP0_AtoVP1Dwave_VtoP2P3::~SF_DtoAP0_AtoVP1Dwave_VtoP2P3 ( )
inlinevirtual

Definition at line 159 of file SpinFactors4Body_ScalarsAndVectors.h.

159 {}

Member Function Documentation

◆ exampleDecay()

const DecayTree & SF_DtoAP0_AtoVP1Dwave_VtoP2P3::exampleDecay ( )
virtual

Implements SF_DtoAP0_AtoVP1_VtoP2P3_BASE.

Definition at line 58 of file SpinFactors4Body_ScalarsAndVectors.cpp.

58  {
59  return getExampleDecay();
60 }

◆ getExampleDecay()

const DecayTree & SF_DtoAP0_AtoVP1Dwave_VtoP2P3::getExampleDecay ( )
static

Definition at line 45 of file SpinFactors4Body_ScalarsAndVectors.cpp.

45  {
46  // D->a(1) pi, a(1)->rho pi, rho->pipi
47  // with a(1) decaying in D-wave
48  if(0 == _exampleDecayD){
49  _exampleDecayD = new DecayTree(421);
50  DecayTree a1(20213);
51  a1.getVal().setL(2);
52  a1.addDgtr(211, 113)->addDgtr(211, -211);
53  _exampleDecayD->addDgtr(-211);
54  _exampleDecayD->addDgtr(&a1);
55  }
56  return *_exampleDecayD;
57 }
MINT::counted_ptr< DDTree< ValueType > > addDgtr(const DDTree< ValueType > *treePtr)
Definition: DDTree.h:211
DDTree< DecayTreeItem > DecayTree
Definition: DecayTree.h:35

◆ getVal()

double SF_DtoAP0_AtoVP1Dwave_VtoP2P3::getVal ( IDalitzEvent evt)
virtual

Implements SF_DtoAP0_AtoVP1_VtoP2P3_BASE.

Definition at line 1110 of file SpinFactors4Body_ScalarsAndVectors.cpp.

1110  {
1111  // bool debugThis = false;
1112 
1113  // from pg 35 of Phys.Rev.D75:052003,2007
1114  // at http://prd.aps.org/abstract/PRD/v75/i5/e052003
1115  // and at http://arxiv.org/abs/hep-ex/0701001
1116  // except that we use MA^2 instead of p_a^2 and MV^2 instead of p_v^2
1117 
1118  if(! ( fsPS[0] && fsPS[1] && fsPS[2] && fsPS[3]) ) parseTree(evt.eventPattern());
1119 
1120  TLorentzVector pV = p(2, evt) + p(3, evt);
1121  TLorentzVector qV = p(2, evt) - p(3, evt);
1122 
1123  TLorentzVector pA = p(1, evt) + p(2, evt) + p(3, evt);
1124  TLorentzVector qA = p(1, evt) - (p(2, evt) + p(3, evt));
1125 
1126  TLorentzVector pD = p(0, evt) + pA;
1127  TLorentzVector qD = pA - p(0, evt);
1128 
1129  double MA = mRes(A, evt);
1130  double MV = mRes(V, evt);
1131 
1132  ZTspin1 tA(qA, pA, MA);
1133  ZTspin1 tV(qV, pV, MV);
1134 
1135  double units = GeV*GeV*GeV*GeV;
1136 
1137  if(_useZemachTensors){
1138  ZTspin1 LD(qD,pD,pD.M());
1139  ZTspin1 LV(qV,pV,MV);
1140  ZTspin2 LA(qA,pA,MA);
1141  TLorentzVector tmp= LA.Contract(LV);
1142 
1143  //ZTspin1 LA1(qA,pA,MA);
1144  //SpinSumV PA(pA,MA);
1145  //return LD.Dot(LA1)*(LA1.Dot(LV)) + 1./3. * LD.Dot(PA.Dot(LV)) * LA1.Dot(LA1);
1146 
1147  return (LD.Dot(tmp))/units;
1148  }
1149 
1150  return p(0, evt).Dot(tA) * tV.Dot(pA) / units;
1151 }
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
Definition: SpinFactor.h:30
MINT::const_counted_ptr< AssociatedDecayTree > V
virtual bool parseTree(const DalitzEventPattern &pat)
MINT::const_counted_ptr< AssociatedDecayTree > A
MINT::NamedParameter< int > _useZemachTensors
Definition: SpinFactor.h:31
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_DtoAP0_AtoVP1Dwave_VtoP2P3::name ( ) const
inlinevirtual

Reimplemented from SF_DtoAP0_AtoVP1_VtoP2P3_BASE.

Definition at line 164 of file SpinFactors4Body_ScalarsAndVectors.h.

164  {
165  return "SpinFactor4:SF_DtoAP0_AtoVP1Dwave_VtoP2P3("
166  + theDecay().oneLiner() + ")";
167  }
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375

◆ printYourself()

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

Implements SF_DtoAP0_AtoVP1_VtoP2P3_BASE.

Definition at line 1152 of file SpinFactors4Body_ScalarsAndVectors.cpp.

1152  {
1153  // bool debugThis = false;
1154 
1155  if(! ( fsPS[0] && fsPS[1] && fsPS[2] && fsPS[3]) ) return;
1156  os << "spin factor SF_DtoAP0_AtoVP1Dwavve_VtoP2P3"
1157  << " with\t pV = p(2) + p(3), qV = p(2) - p(3) "
1158  << "\n\t and pA = p(1) + p(2) + p(3), qA = p(1) - (p(2) + p(3));"
1159  << "\n\t evaluates as:"
1160  << "\n\t ZTspin1 tA(qA, pA, MA);"
1161  << "\n\t ZTspin1 tV(qV, pV, MV);"
1162  << "\n\t p(0).Dot(tA) * tV.Dot(pA) / (GeV*GeV*GeV*GeV);"
1163  << "\n\t parsed tree " << theDecay().oneLiner()
1164  << "\n like this:" << endl;
1165  this->printParsing(os);
1166 }
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_DtoAP0_AtoVP1Dwave_VtoP2P3::_exampleDecayD =0
staticprotected

Definition at line 151 of file SpinFactors4Body_ScalarsAndVectors.h.


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