]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliMagF.cxx
Fix fixed-string length bug
[u/mrichter/AliRoot.git] / STEER / AliMagF.cxx
index e755d69798c0b2b53edf1bf2d826085133555d85..3c188813cff91f231f798ed18ac84b36a7d81625 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.7  2000/10/02 21:28:14  fca
-Removal of useless dependecies via forward declarations
-
-Revision 1.6  2000/07/11 18:24:59  fca
-Coding convention corrections + few minor bug fixes
-
-Revision 1.5  2000/06/09 19:55:18  morsch
-Introduce new class AliMagFDM - Galina Chabratova
-
-
-Revision 1.4  2000/03/28 12:40:24  fca
-Introduce factor for magnetic field
-
-
-Revision 1.3  1999/09/29 09:24:29  fca
-Introduction of the Copyright and cvs Log
-
-*/
+/* $Id$ */
 
+//----------------------------------------------------------------------
+// Basic magnetic field class
+// Used in all the detectors, and also in the traking classes
+// Author:
+//----------------------------------------------------------------------
 
+#include "AliLog.h"
 #include "AliMagF.h"
 
-#include <stdlib.h>
-#include <stdio.h>
-
-
 ClassImp(AliMagF)
 
-//________________________________________
-AliMagF::AliMagF(const char *name, const char *title, const Int_t integ, 
-                const Float_t factor, const Float_t fmax)
-  : TNamed(name,title)
+//_______________________________________________________________________
+AliMagF::AliMagF():
+  fMap(0),
+  fType(0),
+  fInteg(0),
+  fPrecInteg(1),
+  fFactor(0),
+  fMax(0),
+  fReadField(1)
+{
+  //
+  // Default constructor
+  //
+}
+
+//_______________________________________________________________________
+AliMagF::AliMagF(const char *name, const char *title, Int_t integ, 
+                 Float_t factor, Float_t fmax):
+  TNamed(name,title),
+  fMap(0),
+  fType(0),
+  fInteg(0),
+  fPrecInteg(1),
+  fFactor(factor),
+  fMax(fmax),
+  fReadField(1)
 {
   //
   // Standard constructor
   //
     if(integ<0 || integ > 2) {
-       Warning("SetField",
-               "Invalid magnetic field flag: %5d; Helix tracking chosen instead\n"
-               ,integ);
-       fInteg = 2;
+      AliWarning(Form(
+              "Invalid magnetic field flag: %5d; Helix tracking chosen instead"
+              ,integ));
+      fInteg = 2;
     } else {
-       fInteg = integ;
+      fInteg = integ;
     }
+   
+    if (fInteg == 0) fPrecInteg = 0;
+    
     fType = kUndef;
-    fFactor = factor;
-    fMax = fmax;
+    //
 }
 
-//________________________________________
-void AliMagF::Field(Float_t*, Float_t *b)
+//_______________________________________________________________________
+AliMagF::AliMagF(const AliMagF &src):
+  TNamed(src),
+  fMap(src.fMap),
+  fType(src.fType),
+  fInteg(src.fInteg),
+  fPrecInteg(src.fPrecInteg),
+  fFactor(src.fFactor),
+  fMax(src.fMax),
+  fReadField(src.fReadField)
+{
+    // Copy constructor
+}
+
+//_______________________________________________________________________
+void AliMagF::Field(Float_t*, Float_t *b) const
 {
   //
   // Method to return the field in one point -- dummy in this case
   //
-  printf("Undefined MagF Field called, returning 0\n");
+  AliWarning("Undefined MagF Field called, returning 0");
   b[0]=b[1]=b[2]=0;
 }
-      
-
-
-  
 
+//_______________________________________________________________________
+void AliMagF::GetTPCInt(Float_t *, Float_t *b) const
+{
+//
+// Obtain the integral of the field components in the TPC from given point
+// to the closest cathod plane
+//
+  AliWarning("Undefined MagF TPCIntegral called, returning 0");
+  b[0]=b[1]=b[2]=0;
+}
 
+//_______________________________________________________________________
+void AliMagF::GetTPCIntCyl(Float_t *, Float_t *b) const
+{
+//    
+// Obtain the integral of the field components in the TPC from given point
+// to the closest cathod plane
+//
+  AliWarning("Undefined MagF TPCIntegral called, returning 0");
+  b[0]=b[1]=b[2]=0;
+}
 
+//_______________________________________________________________________
+AliMagF& AliMagF::operator=(const AliMagF& rhs)
+{
+    // Asignment operator
+    fMap       = rhs.fMap;
+    fType      = rhs.fType;
+    fInteg     = rhs.fInteg;
+    fPrecInteg = rhs.fPrecInteg;
+    fFactor    = rhs.fFactor;
+    fMax       = rhs.fMax;
+    fReadField = rhs.fReadField;
+    return *this;
+}
 
+void AliMagF::SetPrecInteg(Int_t integ)
+{
+    if (fInteg > 0) {
+       fPrecInteg = integ;
+    }
+    else if (integ != 0)
+    {
+       AliWarning("Precision integration flag set to 0 \n");
+       fPrecInteg = 0;
+    }
+}