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

#include <SpinFactor3.h>

Inheritance diagram for SpinFactor3:
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 GSSpinFactor

Public Member Functions

 SpinFactor3 (const AssociatedDecayTree &theDecay)
 
virtual double getVal (IDalitzEvent &evt)
 
virtual const DecayTreeexampleDecay ()
 
virtual std::string name () const
 
virtual void printYourself (std::ostream &os=std::cout) const
 
virtual ~SpinFactor3 ()
 
- 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 ()
 

Protected Member Functions

bool parseTree (const DalitzEventPattern &pat)
 
double nonResVal () const
 
double spinZeroVal () const
 
double GSSpinFactor (IDalitzEvent &evt)
 
double spinOneVal (IDalitzEvent &evt)
 
double spinTwoVal (IDalitzEvent &evt)
 
double spinOneFromMasses (IDalitzEvent &evt)
 
double spinTwoFromMasses (IDalitzEvent &evt)
 
double spinOneFromZemach (IDalitzEvent &evt)
 
bool setSpin ()
 
- 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

MINT::const_counted_ptr< AssociatedDecayTreeR
 
int _spin
 
bool _nonResonant
 
- 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_exampleDecay =0
 

Detailed Description

Definition at line 10 of file SpinFactor3.h.

Constructor & Destructor Documentation

◆ SpinFactor3()

SpinFactor3::SpinFactor3 ( const AssociatedDecayTree theDecay)
inline

Definition at line 32 of file SpinFactor3.h.

33  : SpinFactor(theDecay, 3)
34  , R(0)
35  , _spin(-1)
36  , _nonResonant(false)
37  {
38  // we'll do the parsing now when we see the 1st event.
39  //if( ! parseTree()){
40  //throw "error in parseTree in constructor of SpinFactor3";
41  //}
42  }
SpinFactor(const AssociatedDecayTree &decay, int nFinal=3)
Definition: SpinFactor.h:74
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
bool _nonResonant
Definition: SpinFactor3.h:15
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50

◆ ~SpinFactor3()

virtual SpinFactor3::~SpinFactor3 ( )
inlinevirtual

Definition at line 51 of file SpinFactor3.h.

51 {}

Member Function Documentation

◆ exampleDecay()

const DecayTree & SpinFactor3::exampleDecay ( )
virtual

Implements SpinFactor.

Definition at line 31 of file SpinFactor3.cpp.

31  {
32  return getExampleDecay();
33 }
static const DecayTree & getExampleDecay()
Definition: SpinFactor3.cpp:22

◆ getExampleDecay()

const DecayTree & SpinFactor3::getExampleDecay ( )
static

Definition at line 22 of file SpinFactor3.cpp.

22  {
23  if(0==_exampleDecay){
24  _exampleDecay = new DecayTree(421);
25  _exampleDecay->addDgtr(310, 113)->addDgtr(211, -211);// Ks rho - why not
26  _exampleDecay->addDgtr(-211, 200321)->addDgtr(321, -10323);
27  }
28  return *_exampleDecay;
29 }
MINT::counted_ptr< DDTree< ValueType > > addDgtr(const DDTree< ValueType > *treePtr)
Definition: DDTree.h:211
static DecayTree * _exampleDecay
Definition: SpinFactor3.h:12
DDTree< DecayTreeItem > DecayTree
Definition: DecayTree.h:35

◆ getVal()

double SpinFactor3::getVal ( IDalitzEvent evt)
virtual

Implements SpinFactor.

Reimplemented in GSSpinFactor.

Definition at line 106 of file SpinFactor3.cpp.

106  {
107  if(_nonResonant){
108  return nonResVal();
109  }
110 
111  if(! ( fsPS[0] && fsPS[1] && fsPS[2])) parseTree(evt.eventPattern());
112 
113  if(0 == R){
114  cout << "ERROR in SpinFactor3::getVal(): 0 == R"
115  << endl;
116  throw "such things shouldn't happen";
117  }
118 
119  if(_spin == 0){
120  return spinZeroVal();
121  }else if(_spin == 1){
122  return spinOneVal(evt);
123  }else if(_spin == 2){
124  return spinTwoVal(evt);
125  }else{
126  cout << "SpinFactor3::getVal() Don't know how to"
127  << " handle resonance with spin = " << R->getVal().J()
128  << "\n > looking at decay\n" << theDecay()
129  << "\n > Sorry, will crash now!" << endl;
130  throw "sorry";
131  }
132  return -9999;
133 
134 }
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
Definition: SpinFactor.h:30
double nonResVal() const
Definition: SpinFactor3.h:18
bool parseTree(const DalitzEventPattern &pat)
Definition: SpinFactor3.cpp:58
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
double spinZeroVal() const
Definition: SpinFactor3.h:19
bool _nonResonant
Definition: SpinFactor3.h:15
virtual const DalitzEventPattern & eventPattern() const =0
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
double spinOneVal(IDalitzEvent &evt)
double spinTwoVal(IDalitzEvent &evt)

◆ GSSpinFactor()

double SpinFactor3::GSSpinFactor ( IDalitzEvent evt)
protected

Definition at line 136 of file SpinFactor3.cpp.

136  {
137 
138  double m2AC = (p(0, evt) + p(1, evt)).M2();
139  double m2BC = (p(0, evt) + p(2, evt)).M2();
140 
141  // cout << "GS spin factor " << m2AC - m2BC << endl;
142  return (m2AC - m2BC)/(GeV*GeV);
143 }
TLorentzVector p(int i, IDalitzEvent &evt)
Definition: SpinFactor.cpp:11
static const double GeV

◆ name()

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

Implements SpinFactor.

Reimplemented in GSSpinFactor.

Definition at line 47 of file SpinFactor3.h.

47  {
48  return "SpinFactor3(" + theDecay().oneLiner() + ")";
49  }
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375

◆ nonResVal()

double SpinFactor3::nonResVal ( ) const
inlineprotected

Definition at line 18 of file SpinFactor3.h.

18 {return 1;}

◆ parseTree()

bool SpinFactor3::parseTree ( const DalitzEventPattern pat)
protected

Definition at line 58 of file SpinFactor3.cpp.

58  {
59  if(fsPS.size() < 3) fsPS.reserve(3);
60 
61  if(theDecay(pat).nDgtr() == (int)(theDecay(pat).finalState().size())){
62  _nonResonant = true;
63  return true;
64  }
65 
66  for(int i=0; i< theDecay(pat).nDgtr(); i++){
68  if (! dgtr->isFinalState()) R = dgtr;
69  else fsPS[0] = dgtr;
70  }
71  if(0==R || 0==fsPS[0]){
72  cout << "SpinFactor3::parseTree"
73  << " Didn't find R or P1 " << R << ", " << fsPS[0] << endl;
74  return false;
75  }
76  if(R->nDgtr() != 2){
77  cout << "ERROR in SpinFactor3::parseTree"
78  << " Resonance should have 2 daughters, but it says it has "
79  << R->nDgtr() << "."
80  << endl;
81  return false;
82  }
83  fsPS[1] = R->getDgtrTreePtr(0);
84  fsPS[2] = R->getDgtrTreePtr(1);
85 
86  //normalOrder(fsPS[1], fsPS[2]);
87 
88 // printYourself();
89 
90  setSpin();
91  return true;
92 
93 }
bool setSpin()
Definition: SpinFactor3.cpp:35
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
Definition: SpinFactor.h:30
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
bool isFinalState() const
Definition: DDTree.h:93
MINT::const_counted_ptr< DDTree< ValueType > > getDgtrTreePtr(int i) const
Definition: DDTree.h:114
bool _nonResonant
Definition: SpinFactor3.h:15
virtual unsigned int size() const
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
int nDgtr() const
Definition: DDTree.h:96

◆ printYourself()

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

Implements SpinFactor.

Definition at line 95 of file SpinFactor3.cpp.

95  {
96  os << "INFO from SpinFactor3::printYourself():\n"
97  << " > parsed the following tree "
98  << theDecay().oneLiner() << " like this:\n"
99  << " > R = " << R->getVal().name()
100  << ", fsPS[0]=C= " << fsPS[0]->getVal().name()
101  << ", fsPS[1]=A= " << fsPS[1]->getVal().name()
102  << ", fsPS[2]=B= " << fsPS[2]->getVal().name()
103  << endl;
104 }
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
Definition: SpinFactor.h:30
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375

◆ setSpin()

bool SpinFactor3::setSpin ( )
protected

Definition at line 35 of file SpinFactor3.cpp.

35  {
36  if(0 == R){
37  cout << " SpinFactor3::setSpin can't set spin, R==0"
38  << " probably need to parse tree, first."
39  << endl;
40  return false;
41  }
42  if(R->getVal().J() == "0"){
43  _spin = 0;
44  }else if(R->getVal().J() == "1"){
45  _spin = 1;
46  }else if(R->getVal().J() == "2"){
47  _spin = 2;
48  }else{
49  cout << "SpinFactor3::setSpin() Don't know how to"
50  << " handle resonance with spin = " << R->getVal().J()
51  << "\n > looking at decay\n" << theDecay()
52  << "\n > Sorry, will crash now!" << endl;
53  throw "sorry";
54  }
55  return true;
56 }
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50

◆ spinOneFromMasses()

double SpinFactor3::spinOneFromMasses ( IDalitzEvent evt)
protected

Definition at line 209 of file SpinFactor3.cpp.

209  {
210  // parsed as:
211  // D -> V P0; V->P1, P2;
212  // fsPS[0] && fsPS[1] && fsPS[2]
213 
214  double MV = mRes(R, evt);
215  double mA = fsPS[1]->getVal().mass();
216  double mB = fsPS[2]->getVal().mass();
217 
218  double mC = fsPS[0]->getVal().mass();
219 
220  double mD = (p(0, evt)+p(1, evt)+p(2, evt)).M();
221 
222  double m2AC = (p(0, evt) + p(1, evt)).M2();
223  double m2BC = (p(0, evt) + p(2, evt)).M2();
224 
225  return (m2AC - m2BC + (mD*mD - mC*mC)*(mB*mB-mA*mA)/(MV*MV))/(GeV*GeV);
226 
227 }
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
Definition: SpinFactor.h:30
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
TLorentzVector p(int i, IDalitzEvent &evt)
Definition: SpinFactor.cpp:11
double mRes(const AssociatedDecayTreeItem &adt, IDalitzEvent &evt)
Definition: SpinFactor.cpp:53
static const double GeV

◆ spinOneFromZemach()

double SpinFactor3::spinOneFromZemach ( IDalitzEvent evt)
protected

Definition at line 181 of file SpinFactor3.cpp.

181  {
182  // all wrong - just experimenting - don't use!!
183 
184  TLorentzVector pV = p(1, evt) + p(2, evt);
185  TLorentzVector qV = p(1, evt) - p(2, evt);
186  TLorentzVector pD = pV + p(0, evt);
187  TLorentzVector qD = pV - p(0, evt);
188  //TLorentzVector qD = pD + p(0);
189 
190  double mr = mRes(R, evt);
191  double mD = pD.M();
192 
193  ZTspin1 tV(qV, pV, mr);
194  ZTspin1 tD(qD, pD, mD);
195  // ZTspin1 tP(pD + p(0), pD-p(0), mD);
196  ZTspin1 tP(p(0, evt), pD, mD);
197  //double norm = 1.;//tV.M() * tD.M();
198  //return tV.Contract(pD + p(0)); << this works
199  return tV.Contract(tP );
200  // return tV.Contract(tD)/norm;
201 
202  //ZTspin1 tVinD(tV, pD, mD);
203 
204  //double norm = 1.;// tVinD.M() * tD.M();
205  //return tD.Contract(tVinD)/norm;
206 
207 }
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
TLorentzVector p(int i, IDalitzEvent &evt)
Definition: SpinFactor.cpp:11
double mRes(const AssociatedDecayTreeItem &adt, IDalitzEvent &evt)
Definition: SpinFactor.cpp:53
Definition: ZTspin1.h:9

◆ spinOneVal()

double SpinFactor3::spinOneVal ( IDalitzEvent evt)
protected

Definition at line 145 of file SpinFactor3.cpp.

145  {
146  // parsed as:
147  // D -> V P0; V->P1, P2;
148  // fsPS[0] && fsPS[1] && fsPS[2]
149 
150  bool dbThis=false;
151 
152  TLorentzVector pV = p(1, evt) + p(2, evt);
153  TLorentzVector pD = pV + p(0, evt);
154  double mr = mRes(R, evt);
155  SpinSumV spin_sum(pV, mr);
156 
157  TLorentzVector lhs = pD + p(0, evt);
158  TLorentzVector rhs = p(1, evt) - p(2, evt);
159 
160  if(dbThis){
161  cout << " spinOneVal for " << theDecay().oneLiner()
162  << "\n > compare: Sandwich: "
163  << -spin_sum.Sandwich(lhs, rhs)
164  << "\n > from masses "
165  << spinOneFromMasses(evt)
166  << "\n > ratio sw/m "
167  << -spin_sum.Sandwich(lhs, rhs)/spinOneFromMasses(evt)
168  << "\n > from Zemach " << spinOneFromZemach(evt)
169  << "\n > ratios sw/Zemach "
170  << spin_sum.Sandwich(lhs, rhs)/spinOneFromZemach(evt)
171  << endl;
172  }
173 
174  // note '-' sign. This makes my decay-tree
175  // sorting algorithm and this spin factor
176  // comparible with BaBar/BELLE spin
177  // factor conventions.
178  return -spin_sum.Sandwich(lhs, rhs)/(GeV*GeV);
179 }
double spinOneFromZemach(IDalitzEvent &evt)
double spinOneFromMasses(IDalitzEvent &evt)
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
TLorentzVector p(int i, IDalitzEvent &evt)
Definition: SpinFactor.cpp:11
double mRes(const AssociatedDecayTreeItem &adt, IDalitzEvent &evt)
Definition: SpinFactor.cpp:53
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
static const double GeV
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375

◆ spinTwoFromMasses()

double SpinFactor3::spinTwoFromMasses ( IDalitzEvent evt)
protected

Definition at line 229 of file SpinFactor3.cpp.

229  {
230  // parsed as:
231  // D -> V P0; V->P1, P2;
232  // fsPS[0] && fsPS[1] && fsPS[2]
233 
234  double MV = mRes(R, evt);
235  double mA = fsPS[1]->getVal().mass();
236  double mB = fsPS[2]->getVal().mass();
237 
238  double mC = fsPS[0]->getVal().mass();
239 
240  double mD = (p(0, evt)+p(1, evt)+p(2, evt)).M();
241 
242  double m2AB = (p(1, evt) + p(2, evt)).M2();
243  double m2AC = (p(0, evt) + p(1, evt)).M2();
244  double m2BC = (p(0, evt) + p(2, evt)).M2();
245 
246  Double_t term1 = m2BC-m2AC+(mD*mD-mC*mC)*(mA*mA-mB*mB)/(MV*MV);
247  Double_t term2 = m2AB-2.0*mD*mD-2.0*mC*mC+pow(mD*mD-mC*mC,2)/(MV*MV);
248  Double_t term3 = m2AB-2.0*mA*mA-2.0*mB*mB+pow(mA*mA-mB*mB,2)/(MV*MV);
249 
250  return (pow(term1,2)-(1.0/3.0)*term2*term3)/(GeV*GeV*GeV*GeV);
251 }
std::vector< MINT::const_counted_ptr< AssociatedDecayTree > > fsPS
Definition: SpinFactor.h:30
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
TLorentzVector p(int i, IDalitzEvent &evt)
Definition: SpinFactor.cpp:11
double mRes(const AssociatedDecayTreeItem &adt, IDalitzEvent &evt)
Definition: SpinFactor.cpp:53
static const double GeV

◆ spinTwoVal()

double SpinFactor3::spinTwoVal ( IDalitzEvent evt)
protected

Definition at line 253 of file SpinFactor3.cpp.

253  {
254  // parsed as:
255  // D -> T P0; T->P1, P2;
256  bool dbThis=false;
257 
258  TLorentzVector pT = p(1, evt) + p(2, evt);
259  TLorentzVector pD = pT + p(0, evt);
260  double mr = mRes(R, evt);
261  SpinSumT spin_sum(pT, mr);
262 
263  TLorentzVector lhs = pD + p(0, evt);
264  TLorentzVector rhs = p(1, evt) - p(2, evt);
265 
266  double returnVal = spin_sum.Sandwich(lhs, lhs, rhs, rhs)/(GeV*GeV*GeV*GeV);
267  if(dbThis){
268  cout << "spin-2 spin factor got called for "
269  << theDecay().oneLiner()
270  << "\n > returning " << returnVal
271  << "\n > compare " << spinTwoFromMasses(evt)
272  << "\n > ratio " << returnVal/spinTwoFromMasses(evt)
273  << endl;
274  }
275 
276  return returnVal;
277 }
MINT::const_counted_ptr< AssociatedDecayTree > R
Definition: SpinFactor3.h:13
TLorentzVector p(int i, IDalitzEvent &evt)
Definition: SpinFactor.cpp:11
double spinTwoFromMasses(IDalitzEvent &evt)
double mRes(const AssociatedDecayTreeItem &adt, IDalitzEvent &evt)
Definition: SpinFactor.cpp:53
const AssociatedDecayTree & theDecay() const
Definition: SpinFactor.h:50
static const double GeV
void oneLiner(std::stringstream &seam, int generation=0) const
Definition: DDTree.h:375

◆ spinZeroVal()

double SpinFactor3::spinZeroVal ( ) const
inlineprotected

Definition at line 19 of file SpinFactor3.h.

19 { return 1;}

Member Data Documentation

◆ _exampleDecay

DecayTree * SpinFactor3::_exampleDecay =0
staticprotected

Definition at line 12 of file SpinFactor3.h.

◆ _nonResonant

bool SpinFactor3::_nonResonant
protected

Definition at line 15 of file SpinFactor3.h.

◆ _spin

int SpinFactor3::_spin
protected

Definition at line 14 of file SpinFactor3.h.

◆ R

MINT::const_counted_ptr<AssociatedDecayTree> SpinFactor3::R
protected

Definition at line 13 of file SpinFactor3.h.


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