MINT2
CoherenceFactor.h
Go to the documentation of this file.
1 #ifndef COHERENCE_FACTOR_OUTDATED_HH
2 #define COHERENCE_FACTOR_OUTDATED_HH
3 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
4 // status: Mon 9 Feb 2009 19:17:59 GMT
5 //
6 // Using Equations 5 (and around that) in
7 // Phys. Rev. D 68, 033003 (2003),
8 // http://prola.aps.org/abstract/PRD/v68/i3/e033003
9 //
10 
11 #include "Mint/IDalitzEvent.h"
12 
13 #include "Mint/IEventGenerator.h"
14 
17 
18 #include "Mint/FitAmpSum.h"
19 
20 #include "Mint/counted_ptr.h"
21 
22 #include <complex>
23 #include <iostream>
24 
26 
27  // MINT::counted_ptr<IDalitzEvent> _dummyEvent;
28 
30  double _CSAbs;
31  double _CSPhase;
32 
36  double _precision;
37 
40  std::complex<double> _sumAxAbarStar, _sumAxAbarStarSquared;
41  // watchi it, _sumAxAbarStarSquared is (sum real^2, sum imag^2)
42  long int _Nevents;
43 
44 
49  std::complex<double> A_Value(IDalitzEvent& evt);
50  std::complex<double> Abar_Value(IDalitzEvent& evt);
51 
53 
55 
56  std::complex<double> integAxAbarStar()const;
57  double integA()const;
58  double integAbar()const;
59 
60  double integASq()const;
61  double integAbarSq()const;
62 
63  std::complex<double> complexVar(std::complex<double> s
64  , std::complex<double> s_sq
65  )const;
66  double realAorAbarVar(double s, double sq)const;
67 
68  std::complex<double> cvarAxAbarStar() const;
69  double varA()const;
70  double varAbar()const;
71 
72  std::complex<double> Rval() const;
73 
74  double getEff(IDalitzEvent& evt);
76  if(0 == evtPtr) return 0;
77  return getEff(*evtPtr);// just for backward compatibility.
78  }
79 
80  public:
82  , double CSAbs = 1
83  , double CSPhase = 0.0
85  , double prec=1.e-3);
86 
87  std::complex<double> var()const;
88  std::complex<double> sigma()const;
89  double varAbs()const;
90  double sigmaAbs()const;
91  double varAngle()const;
92  double sigmaAngle()const;
93  void printResult(std::ostream& os = std::cout) const;
94 
95  void setPrecision(double prec){_precision = prec;}
96  double estimatedPrecision() const;
97 
98  std::complex<double> getCVal();
99 
100 };
101 #endif
102 //
MINT::IReturnComplexForEvent< IDalitzEvent > * Abar()
double sigmaAngle() const
std::complex< double > _sumAxAbarStarSquared
void printResult(std::ostream &os=std::cout) const
std::complex< double > _sumAxAbarStar
std::complex< double > var() const
static const double s
std::complex< double > cvarAxAbarStar() const
MINT::counted_ptr< IDalitzEvent > newEvent()
std::complex< double > sigma() const
std::complex< double > Rval() const
double integA() const
double sigmaAbs() const
std::complex< double > integAxAbarStar() const
MINT::counted_ptr< MINT::IEventGenerator< IDalitzEvent > > getGenerator()
CoherenceFactor(FitAmpSum &A, FitAmpSum &Abar, double CSAbs=1, double CSPhase=0.0, MINT::IReturnRealForEvent< IDalitzEvent > *eff=0, double prec=1.e-3)
void setPrecision(double prec)
double varAbs() const
std::complex< double > complexVar(std::complex< double > s, std::complex< double > s_sq) const
FitAmpSum * _A
MINT::IReturnRealForEvent< IDalitzEvent > * _eff
double varAngle() const
double realAorAbarVar(double s, double sq) const
double varAbar() const
std::complex< double > getCVal()
MINT::IReturnComplexForEvent< IDalitzEvent > * A()
MINT::counted_ptr< MINT::IEventGenerator< IDalitzEvent > > _myOwnGenAplusAbar
double estimatedPrecision() const
double getEff(MINT::counted_ptr< IDalitzEvent > evtPtr)
std::complex< double > Abar_Value(IDalitzEvent &evt)
double integAbarSq() const
double _sumAbarSqSquared
double getEff(IDalitzEvent &evt)
std::complex< double > A_Value(IDalitzEvent &evt)
double integAbar() const
FitAmpSum _A_plus_Abar
double varA() const
FitAmpSum * _Abar
double integASq() const