]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
fgReadField --> fReadField is now normal data member.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 18 Jul 2007 12:46:55 +0000 (12:46 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 18 Jul 2007 12:46:55 +0000 (12:46 +0000)
This avoids crash in case of creation of more than one object.

STEER/AliMagF.cxx
STEER/AliMagF.h
STEER/AliMagFMaps.cxx

index 6dc2c510431aa82e3375fe67673fc07d8dd1b423..606de825928ac92e33d67bf51df068aadb13b59c 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "AliLog.h"
 #include "AliMagF.h"
-Bool_t AliMagF::fgReadField = kTRUE;
+
 ClassImp(AliMagF)
 
 //_______________________________________________________________________
@@ -33,7 +33,8 @@ AliMagF::AliMagF():
   fInteg(0),
   fPrecInteg(1),
   fFactor(0),
-  fMax(0)
+  fMax(0),
+  fReadField(1)
 {
   //
   // Default constructor
@@ -49,7 +50,8 @@ AliMagF::AliMagF(const char *name, const char *title, Int_t integ,
   fInteg(0),
   fPrecInteg(1),
   fFactor(factor),
-  fMax(fmax)
+  fMax(fmax),
+  fReadField(1)
 {
   //
   // Standard constructor
index a6a923d54ca10dba68150d655a44d3998e1705ea..1665243df6e52c79a8d0d17a33148c8151bc54e2 100644 (file)
@@ -32,7 +32,7 @@ public:
   virtual void ReadField() {}
   virtual Float_t SolenoidField() const {return 2.;}
   virtual void SetPrecInteg(Int_t integ) {fPrecInteg = integ;}
-  static void  SetReadField(Bool_t flag = kTRUE) {fgReadField = flag;}
+  virtual void SetReadField(Bool_t flag = kTRUE) {fReadField = flag;}
  protected:
   Int_t     fMap;       // Field Map identifier
   Int_t     fType;      // Mag Field type
@@ -40,8 +40,8 @@ public:
   Int_t     fPrecInteg; // Alternative integration method, e.g. for higher precision
   Float_t   fFactor;    // Multiplicative factor
   Float_t   fMax;       // Max Field as indicated in Geant
-  static  Bool_t    fgReadField;  // Flag for reading the field from file (if available) 
-  ClassDef(AliMagF,4)  //Base class for all Alice MagField
+  Bool_t    fReadField; // Flag for reading the field from file (if available) 
+  ClassDef(AliMagF,5)   //Base class for all Alice MagField
 };
 
 #endif
index aa2d7bf369d89d85fa08a541e348002ea9e00e6f..8c1919ec6dd393a708423e59087bb22ee7d77636 100644 (file)
@@ -93,7 +93,6 @@ AliMagFMaps::~AliMagFMaps()
   delete fFieldMap[0];
   delete fFieldMap[1];
   delete fFieldMap[2];    
-  fgReadField = kTRUE;
 }
 
 //_______________________________________________________________________
@@ -103,8 +102,8 @@ void AliMagFMaps::ReadField()
   //
   //  don't read twice
   //
-    if (!fgReadField) return;
-    fgReadField = 0;
+    if (!fReadField) return;
+    fReadField = kFALSE;
   //    
   char* fname;
   TFile* file = 0;
@@ -252,9 +251,9 @@ void AliMagFMaps::Streamer(TBuffer &R__b)
 {
   // Stream an object of class AliMagFMaps.
   if (R__b.IsReading()) {
-    AliMagFMaps::Class()->ReadBuffer(R__b, this);
+   R__b.ReadClassBuffer(AliMagFMaps::Class(), this);
     ReadField();
   } else {
-    AliMagFMaps::Class()->WriteBuffer(R__b, this);
+    R__b.WriteClassBuffer(AliMagFMaps::Class(), this);
   }
 }