]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCExB.h
First version of a class to correct for 3D Space Charges
[u/mrichter/AliRoot.git] / TPC / AliTPCExB.h
index 2a13d0b7a5fb43f10e776d09237669c77ae17b80..9e23a5d9a525f61a1c2c7b167eaa169bfbd76df0 100644 (file)
@@ -1,13 +1,15 @@
-#ifndef ALITPC_EXB
-#define ALITPC_EXB
+#ifndef ALITPCEXB_H
+#define ALITPCEXB_H
 
 class AliMagF;
 #include "TObject.h"
-#include "TVectorD.h"
+#include "TVectorDfwd.h"
 
 class AliTPCExB:public TObject {
 public:
   AliTPCExB();
+  AliTPCExB& operator=(const AliTPCExB &exb);
+  AliTPCExB(const AliTPCExB& exb);
   virtual ~AliTPCExB() {};
   virtual void Correct(const Double_t *position,Double_t *corrected)=0;
   virtual void CorrectInverse(const Double_t *position,Double_t *corrected) {
@@ -19,12 +21,12 @@ public:
   // Test and visualization
   //
   void TestExB(const char* fileName);
-  static Double_t GetDr(Double_t r, Double_t phi, Double_t z);
-  static Double_t GetDrphi(Double_t r, Double_t phi, Double_t z);
-  static Double_t GetDphi(Double_t r, Double_t phi, Double_t z);
-  static Double_t GetDz(Double_t r, Double_t phi, Double_t z);
+  static Double_t GetDr(Double_t r, Double_t phi, Double_t z, Double_t bz=5);
+  static Double_t GetDrphi(Double_t r, Double_t phi, Double_t z, Double_t bz=5);
+  static Double_t GetDphi(Double_t r, Double_t phi, Double_t z, Double_t bz=5);
+  static Double_t GetDz(Double_t r, Double_t phi, Double_t z, Double_t bz=5);
   static AliTPCExB*  Instance(){return fgInstance;}
-  static void SetInstance(AliTPCExB*param){fgInstance = param;}
+  static void SetInstance(AliTPCExB *const param){fgInstance = param;}
   //
   // Mag field scans
   //
@@ -44,9 +46,9 @@ public:
   //
   Double_t Eval(Int_t type, Double_t r, Double_t phi, Double_t z);
   Double_t SEval(Int_t type, Double_t r, Double_t phi, Double_t z){return Instance()->Eval(type,r,phi,z);}
-  static Double_t EvalMat(TVectorD &vec, Double_t r, Double_t phi, Double_t z);     // evalute parameterization
+  static Double_t EvalMat(const TVectorD &vec, Double_t r, Double_t phi, Double_t z);     // evalute parameterization
  
- public:
+ private:
   TVectorD *          fMatBrBz;       //param matrix Br/Bz
   TVectorD *          fMatBrfiBz;     //param matrix Br/Bz
   TVectorD *          fMatBrBzI0;     //param matrix Br/Bz integral  z>0 
@@ -54,11 +56,10 @@ public:
   TVectorD *          fMatBrfiBzI0;   //param matrix Br/Bz integral  z>0 
   TVectorD *          fMatBrfiBzI1;   //param matrix Br/Bz integral  z<0
   
- private:
   static AliTPCExB*   fgInstance;  //! Instance of this class (singleton implementation)
   static TObjArray    fgArray;     //! array of magnetic fields
   //
-  ClassDef(AliTPCExB,1)
+  ClassDef(AliTPCExB,2)
 };
 
 #endif