]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoCoulomb.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoCoulomb.h
CommitLineData
76ce4b5b 1///////////////////////////////////////////////////////////////////////////
2// //
3// AliFemtoCoulomb: This is a Coulomb correction class which //
4// 1. Reads in the dat from a file //
5// 2. Performs a linear interpolation in R and creates any array of //
6// interpolations //
7// 3. Interpolates in eta and returns the Coulomb correction to user //
8// //
9///////////////////////////////////////////////////////////////////////////
10
11#ifndef ALIFEMTOCOULOMB_H
12#define ALIFEMTOCOULOMB_H
13
14#include <stdio.h>
15#include "AliFemtoTypes.h"
16#include "AliFemtoPair.h"
17#include "AliFemtoParticle.h"
18#include "TH1D.h"
19#include "TH3D.h"
20
21class AliFemtoCoulomb {
22
23public:
24 AliFemtoCoulomb();
25 AliFemtoCoulomb(const char *readFile, const double& radius, const double& charge);
26 AliFemtoCoulomb(const AliFemtoCoulomb& aCoul);
27 virtual ~AliFemtoCoulomb();
28
29 AliFemtoCoulomb& operator=(const AliFemtoCoulomb& aCoul);
30
31 void SetRadius(const double& radius);
32 double GetRadius() const;
33 void SetFile(const char *readFile);
34 void SetChargeProduct(const double& charge);
35
36 // These have different names so eta/Qinv don't confuse the compiler
37 double CoulombCorrect(const double& eta);
38 double CoulombCorrect(const double& eta, const double& radius);
39 double CoulombCorrect(const AliFemtoPair* pair);
40 double CoulombCorrect(const AliFemtoPair* pair, const double& radius);
41 double CoulombCorrect(const double& mass, const double& charge,
42 const double& radius, const double& qInv);
43 TH1D* CorrectionHistogram(const double& mass1, const double& mass2, const int& nBins,
44 const double& low, const double& high);
45#ifdef __ROOT__
46 TH1D* CorrectionHistogram(const TH1D*, const double);
47 TH3D* CorrectionHistogram(const TH3D*, const double);
48#endif
49private:
50 double Eta(const AliFemtoPair* pair); // Calculates eta
51 void CreateLookupTable(const double& radius); // Creates look-up table
52 const char* fFile; // File to interpolate corrections from
53 double fRadius; // Radius from previous iteration
54 double fZ1Z2; // Charge product of particles
55 double fEta[1000]; // interpolated Coulomb correction table
56 double fCoulomb[1000]; // interpolated Coulomb correction table
57 int fNLines; // Number of Eta's in lookup-table
58
59#ifdef __ROOT__
60 ClassDef(AliFemtoCoulomb, 0)
61#endif
62};
63
64
65#endif