#ifndef ALIFEMTOCOULOMB_H
#define ALIFEMTOCOULOMB_H
#include <stdio.h>
#include "AliFemtoTypes.h"
#include "AliFemtoPair.h"
#include "AliFemtoParticle.h"
#include "TH1D.h"
#include "TH3D.h"
class AliFemtoCoulomb {
public:
AliFemtoCoulomb();
AliFemtoCoulomb(const char *readFile, const double& radius, const double& charge);
AliFemtoCoulomb(const AliFemtoCoulomb& aCoul);
virtual ~AliFemtoCoulomb();
AliFemtoCoulomb& operator=(const AliFemtoCoulomb& aCoul);
void SetRadius(const double& radius);
double GetRadius() const;
void SetFile(const char *readFile);
void SetChargeProduct(const double& charge);
double CoulombCorrect(const double& eta);
double CoulombCorrect(const double& eta, const double& radius);
double CoulombCorrect(const AliFemtoPair* pair);
double CoulombCorrect(const AliFemtoPair* pair, const double& radius);
double CoulombCorrect(const double& mass, const double& charge,
const double& radius, const double& qInv);
TH1D* CorrectionHistogram(const double& mass1, const double& mass2, const int& nBins,
const double& low, const double& high);
#ifdef __ROOT__
TH1D* CorrectionHistogram(const TH1D*, const double);
TH3D* CorrectionHistogram(const TH3D*, const double);
#endif
private:
double Eta(const AliFemtoPair* pair);
void CreateLookupTable(const double& radius);
const char* fFile;
double fRadius;
double fZ1Z2;
double fEta[1000];
double fCoulomb[1000];
int fNLines;
#ifdef __ROOT__
ClassDef(AliFemtoCoulomb, 0)
#endif
};
#endif