1 /***************************************************************************
5 * Author: Randy Wells, Ohio State, rcwells@mps.ohio-state.edu
6 ***************************************************************************
8 * Description: part of STAR HBT Framework: AliFemtoMaker package
9 * This is a Coulomb correction class which
10 * 1. Reads in the dat from a file
11 * 2. Performs a linear interpolation in R and creates any array of interpolations
12 * 3. Interpolates in eta and returns the Coulomb correction to user
14 ***************************************************************************
17 * Revision 1.2 2007/05/03 09:42:29 akisiel
18 * Fixing Effective C++ warnings
20 * Revision 1.1.1.1 2007/04/25 15:38:41 panos
21 * Importing the HBT code dir
23 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
24 * First version on CVS
26 * Revision 1.12 2000/10/26 19:48:54 rcwells
27 * Added functionality for Coulomb correction of <qInv> in 3D correltions
29 * Revision 1.11 2000/08/02 01:25:12 lisa
30 * Add Coulomb correction capability to 3D Bertsch-Pratt CorrFctn
32 * Revision 1.10 2000/07/16 21:38:22 laue
33 * AliFemtoCoulomb.cxx AliFemtoSectoredAnalysis.cxx : updated for standalone version
34 * AliFemtoV0.cc AliFemtoV0.h : some cast to prevent compiling warnings
35 * AliFemtoParticle.cc AliFemtoParticle.h : pointers mTrack,mV0 initialized to 0
36 * AliFemtoIOBinary.cc : some printouts in #ifdef STHBTDEBUG
37 * AliFemtoEvent.cc : B-Field set to 0.25Tesla, we have to think about a better
40 * Revision 1.9 2000/05/31 20:12:53 rcwells
41 * Modified AliFemtoCoulomb for Id and Log entries
44 **************************************************************************/
46 #ifndef AliFemtoCoulomb_HH
47 #define AliFemtoCoulomb_HH
50 #include "AliFemtoTypes.h"
51 #include "AliFemtoPair.h"
52 #include "AliFemtoParticle.h"
56 class AliFemtoCoulomb {
60 AliFemtoCoulomb(const char *readFile, const double& radius, const double& charge);
61 AliFemtoCoulomb(const AliFemtoCoulomb& aCoul);
62 virtual ~AliFemtoCoulomb();
64 AliFemtoCoulomb& operator=(const AliFemtoCoulomb& aCoul);
66 void SetRadius(const double& radius);
68 void SetFile(const char *readFile);
69 void SetChargeProduct(const double& charge);
71 // These have different names so eta/Qinv don't confuse the compiler
72 double CoulombCorrect(const double& eta);
73 double CoulombCorrect(const double& eta, const double& radius);
74 double CoulombCorrect(const AliFemtoPair* pair);
75 double CoulombCorrect(const AliFemtoPair* pair, const double& radius);
76 double CoulombCorrect(const double& mass, const double& charge,
77 const double& radius, const double& qInv);
78 TH1D* CorrectionHistogram(const double& mass1, const double& mass2, const int& nBins,
79 const double& low, const double& high);
81 TH1D* CorrectionHistogram(const TH1D*, const double);
82 TH3D* CorrectionHistogram(const TH3D*, const double);
85 double Eta(const AliFemtoPair* pair); // Calculates eta
86 void CreateLookupTable(const double& radius); // Creates look-up table
87 const char* fFile; // File to interpolate corrections from
88 double fRadius; // Radius from previous iteration
89 double fZ1Z2; // Charge product of particles
90 double fEta[1000]; // interpolated Coulomb correction table
91 double fCoulomb[1000]; // interpolated Coulomb correction table
92 int fNLines; // Number of Eta's in lookup-table
95 ClassDef(AliFemtoCoulomb, 0)