13 #ifndef StHbtCorrFctnDirectYlm_hh
14 #define StHbtCorrFctnDirectYlm_hh
22 #include "StHbtCorrFctn.hh"
35 virtual StHbtString Report();
37 virtual void AddRealPair(
const StHbtPair* aPair) { AddRealPair(aPair, 1); }
38 virtual void AddMixedPair(
const StHbtPair* aPair) { AddMixedPair(aPair, 1); }
39 void AddRealPair(
const StHbtPair* aPair,
double weight);
40 void AddMixedPair(
const StHbtPair* aPair,
double weight);
42 void SetR2Factor(
bool aFactor);
45 virtual void Finish();
46 virtual void Write() {}
47 void Write(TFile* rfile);
50 void ReadFromFile(TFile* ifile);
53 TH1D* GetNumRealHist(
int el,
int em);
54 TH1D* GetNumImagHist(
int el,
int em);
56 TH1D* GetDenRealHist(
int el,
int em);
57 TH1D* GetDenImagHist(
int el,
int em);
65 double ClebschGordan(
double aJot1,
double aEm1,
double aJot2,
double aEm2,
double aJot,
double aEm);
66 double WignerSymbol(
double aJot1,
double aEm1,
double aJot2,
double aEm2,
double aJot,
double aEm);
67 double DeltaJ(
double aJot1,
double aJot2,
double aJot);
69 void GetMtilde(complex<double>* aMat,
double* aMTilde);
72 void GetElEmForIndex(
int aIndex,
double* aEl,
double* aEm);
73 void GetElEmForIndex(
int aIndex,
int* aEl,
int* aEm);
74 int GetBin(
int qbin,
int ilmzero,
int zeroimag,
int ilmprim,
int primimag);
76 int PackYlmVector(
double* invec,
double* outvec);
77 int PackYlmVectorIndependentOnly(
double* invec,
double* outvec);
79 int PackYlmMatrix(
double* inmat,
double* outmat);
82 int PackYlmMatrixIndependentOnly(
double* inmat,
double* outmat);
83 void UnPackYlmMatrixIndependentOnly(
double* inmat,
double* outmat,
int insize);
85 void InvertYlmIndependentMatrix(
double* inmat,
double* outmat);
87 int GetIndexForLM(
int el,
int em);
89 void PackCovariances();
90 void UnpackCovariances();
120 complex<double>* ylmbuffer;
129 TH1D** emcicE1plusE2;