]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCGGVoltError.h
Fixes for building of DA (Anshul)
[u/mrichter/AliRoot.git] / TPC / AliTPCGGVoltError.h
index 2627f3d3c1744992d6f1e1479badcaec6fc9a642..b43cc265a954396cb663a9845ccfdbed83551b40 100644 (file)
@@ -1,20 +1,48 @@
-#ifndef ALI_TPC_GG_VOLT_ERROR_H
-#define ALI_TPC_GG_VOLT_ERROR_H
+#ifndef ALI_TPCGG_VOLT_ERROR_H
+#define ALI_TPCGG_VOLT_ERROR_H
 
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-////////////////////////////////////////////////////////////////////////////
-//                                                                        //
-// AliTPCGGVoltError class                                                //
-// The class calculates the electric field and space point distortions    //
-// due a Gating Grid (GG) Error voltage. It uses the exact calculation    //
-// technique based on bessel functions. (original code from STAR)         //
-// The class allows "effective Omega Tau" corrections.                    // 
-//                                                                        //
-// date: 27/04/2010                                                       //
-// Authors: Jim Thomas, Stefan Rossegger, Magnus Mager                    //
-////////////////////////////////////////////////////////////////////////////
+// _________________________________________________________________
+//
+// Begin_Html
+//   <h2> AliTPCGGVoltError class   </h2>         
+//   The class calculates the electric field and the resulting space point distortions 
+//   due a Gating Grid (GG) voltage error. It uses the analytical solution for such a problem. 
+//   <p>
+//   The input is the effective GG voltage residual in respect to the ideal setting. The effective 
+//   residual voltage can be set via the functions SetDeltaVGGx. Note that this effective 
+//   voltage-residuals are approx. a factor 0.9 lower than the actual difference in the setting 
+//   of the GG due to the fact that the voltage on the GG is partially screened by the wire 
+//   structure. The calculation has to be performed with the observable effective voltage difference.
+//   <p>
+//   Unfortunately, the class is not capable of calculation the $dz$ offset due to possible changes 
+//   of the drift velocity in dependence of the electric field. The special case of the numerical 
+//   approximation (AliTPCBoundaryVoltError), which is capable of calculating the same effect, should 
+//   be used for this purpose. 
+// End_Html
+//
+// Begin_Macro(source)
+//   {
+//   gROOT->SetStyle("Plain"); gStyle->SetPalette(1);
+//   TCanvas *c2 = new TCanvas("cAliTPCGGVoltError","cAliTPCGGVoltError",500,300); 
+//   AliTPCGGVoltError gg;
+//   gg.SetDeltaVGGA(-40); gg.SetDeltaVGGC(-40); // 40 Volt offset
+//   gg.InitGGVoltErrorDistortion();
+//   gg.SetOmegaTauT1T2(0,1,1); // B=0
+//   gg.CreateHistoDRinZR(0)->Draw("surf2"); 
+//   return c2;
+//   } 
+// End_Macro
+//
+// Begin_Html
+//   <p>
+//   Date: 27/04/2010  <br>
+//   Authors: Jim Thomas, Stefan Rossegger, Magnus Mager   
+// End_Html 
+// _________________________________________________________________
+
 
 #include "AliTPCCorrection.h"
 
@@ -29,10 +57,9 @@ public:
 
   // common setters and getters for ExB
   virtual void SetOmegaTauT1T2(Float_t omegaTau,Float_t t1,Float_t t2) {
-    const Double_t wt0=t2*omegaTau;
-    fC0=1./(1.+wt0*wt0);
-    const Double_t wt1=t1*omegaTau;
-    fC1=wt1/(1.+wt1*wt1);
+    fT1=t1; fT2=t2;
+    const Double_t wt0=t2*omegaTau;     fC0=1./(1.+wt0*wt0);
+    const Double_t wt1=t1*omegaTau;     fC1=wt1/(1.+wt1*wt1);
   };
 
   void SetC0C1(Double_t c0,Double_t c1) {fC0=c0;fC1=c1;} // CAUTION: USE WITH CARE
@@ -49,7 +76,7 @@ public:
 
   Float_t GetIntErOverEz(const Float_t x[],const Short_t roc);
 
-  virtual void Print(Option_t* option="") const;
+  virtual void Print(const Option_t* option="") const;
 
 protected:
   virtual void GetCorrection(const Float_t x[],const Short_t roc, Float_t dx[]);
@@ -62,6 +89,8 @@ private:
   Double_t fDeltaVGGC;            // Missmatch of gating grid voltage on C-side [V]
   Double_t fGGVoltErrorER[kNZ][kNR]; // Array to store electric field for GGVoltError calculation
 
+  Bool_t fInitLookUp;             // flag to check it the Look Up table was created
+
   ClassDef(AliTPCGGVoltError,1);
 };