43 #include "reportingUtils.hpp"
74 const std::vector<std::pair<int, int> >& indices,
75 const std::vector<TString>& prodAmpNames,
77 const unsigned int nmbEvents,
78 const double massBinCenter,
80 const TMatrixD& fitParCovMatrix,
81 const double logLikelihood,
86 _errm.ResizeTo(fitParCovMatrix.GetNrows(), fitParCovMatrix.GetNcols());
94 if (
_errm.GetNrows() == 0)
106 for(
int i=0;
i<
n;++
i){
130 if(flat1 && flat2)
return 1;
131 else if(flat1 || flat2)
return 0;
133 map<int, int>::const_iterator indexA =
_wavemap.find(i);
134 map<int, int>::const_iterator indexB =
_wavemap.find(j);
136 printWarn <<
"Amplitude index " << i <<
" or " << j <<
" is out of bound." << endl;
139 return _int(indexA->second, indexB->second);
167 int n=_wavenames.size();
169 for(
int r=-1; r<_rank; ++r){
171 for(
int i=0;
i<
n;++
i){
172 if(!(_wavenames[
i].Contains(tag) && rankofwave(
i)==r))
continue;
173 for(
int j=0;j<
n;++j){
174 if(!(_wavenames[j].Contains(tag) && rankofwave(j)==r))
continue;
175 c+=_amps[
i]*TComplex::Conjugate(_amps[j])*getInt(
i,j);
188 if(na.Contains(
"flat")){
192 else re=na.Contains(
"RE");
194 if(re)na.ReplaceAll(
"_RE",
"");
195 else na.ReplaceAll(
"_IM",
"");
197 for(
unsigned int i=0;
i<
n;++
i){
199 if(re)
return _amps[
i].Re();
200 else return _amps[
i].Im();
221 TComplex result(0,0);
224 for(
int r=0; r<
_rank; ++r){
225 for(
int k=0;k<
n;++k){
230 result+=a1*TComplex::Conjugate(a2);
245 if(cpar.size()==0)
return 0;
249 TMatrixD J(2,cpar.size()*2);
251 int nsub=cpar.size();
252 for(
int i=0;i<nsub;++
i){
253 TMatrixD Ji(2,2);Ji[0][0]=0;Ji[0][1]=0;Ji[1][0]=0;Ji[1][1]=0;
257 for(
int j=0;j<nsub;++j){
274 TMatrixD JT(TMatrixD::kTransposed,J);
277 return _nevt*TMath::Sqrt(x[0][0]);
290 return spinDens(i,j).Theta()/TMath::Pi()*180.;
300 J[0][0]=1./(rho.Re()+rho.Im()*rho.Im()/rho.Re());
301 J[0][1]=-rho.Im()/(rho.Re()*rho.Re()+rho.Im()*rho.Im());
302 TMatrixD JT(TMatrixD::kTransposed,J);
305 return sqrt(x[0][0])/TMath::Pi()*180.;
313 TMatrixD Ji=
M(TComplex::Conjugate(
_amps[j]));
316 TMatrixD Jc(2,2);Jc[0][0]=1;Jc[0][1]=0;Jc[1][0]=0;Jc[1][1]=-1;
319 TMatrixD JT(TMatrixD::kTransposed,J);
350 m[0][0]=
_errm[k.first][k.first];
351 m[0][1]=
_errm[k.first][k.second];
352 m[1][0]=
_errm[k.second][k.first];
353 m[1][1]=
_errm[k.second][k.second];
364 for(
int i=0;i<
n;++
i){
375 for(
int i=0;i<n2;++
i){
376 for(
int j=0;j<n2;++j){
378 if(par[i]<0 || par[j]<0)C[
i][j]=0;
379 else C[
i][j]=
_errm[par[
i]][par[j]];
395 for(
int i=0;i<n2;++
i){
396 for(
int j=0;j<n2;++j){
398 if(par[i]<0 || par[j]<0)C[
i][j]=0;
399 else C[
i][j]=
_errm[par[
i]][par[j]];
407 for(
unsigned int i=0;i<
_amps.size();++
i){
416 cout <<
"0)" << endl;
424 for(
unsigned int i=0;i<
_amps.size();++
i){
437 for(
unsigned int i=0;i<
_amps.size();++
i){