Initialize maps in first call to Field() after streaming in.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 1 Aug 2002 12:36:44 +0000 (12:36 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 1 Aug 2002 12:36:44 +0000 (12:36 +0000)
STEER/AliMagFMaps.cxx
STEER/STEERLinkDef.h

index 357d5c7..94c11bc 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.6  2002/04/11 11:17:48  morsch
+ReadField() used in Constructor.
+
 Revision 1.5  2002/02/26 09:48:14  morsch
 Extra argument in constructor for l3 map choice.
 
@@ -94,6 +97,7 @@ void AliMagFMaps::ReadField()
 //  don't read twice
 //
     if (fFieldRead) return;
+    fFieldRead = 1;
 //    
     char* fname;
     TFile* file = 0;
@@ -190,6 +194,8 @@ void AliMagFMaps::Field(Float_t *x, Float_t *b)
   //
   // --- find the position in the grid ---
   
+  if (!fFieldRead) ReadField();
+    
   b[0]=b[1]=b[2]=0;
   AliFieldMap* map = 0;
   if (fFieldMap[0]->Inside(x[0], x[1], x[2])) {
@@ -258,8 +264,6 @@ void AliMagFMaps::Field(Float_t *x, Float_t *b)
       b[1]*=fFactor;
       b[2]*=fFactor;
   }
-  b[0]*=1.1;
-  
 }
 
 //________________________________________
@@ -277,3 +281,14 @@ AliMagFMaps & AliMagFMaps::operator =(const AliMagFMaps &magf)
   magf.Copy(*this);
   return *this;
 }
+
+void AliMagFMaps::Streamer(TBuffer &R__b)
+{
+   // Stream an object of class AliMagFMaps.
+   if (R__b.IsReading()) {
+      AliMagFMaps::Class()->ReadBuffer(R__b, this);
+      fFieldRead = 0;
+   } else {
+      AliMagFMaps::Class()->WriteBuffer(R__b, this);
+   }
+}
index b74bce8..383a10e 100644 (file)
@@ -27,7 +27,7 @@
 #pragma link C++ class  AliMagF+;
 #pragma link C++ class  AliMagFC+;
 #pragma link C++ class  AliMagFCM+;
-#pragma link C++ class  AliMagFMaps+;
+#pragma link C++ class  AliMagFMaps-;
 #pragma link C++ class  AliMagFDM+;
 #pragma link C++ class  AliMC+;
 #pragma link C++ class  AliLego+;