SetSolenoidField method to set the L3 field strength. 2 kG is default.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 May 2001 14:10:35 +0000 (14:10 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 28 May 2001 14:10:35 +0000 (14:10 +0000)
STEER/AliMagFCM.cxx
STEER/AliMagFCM.h
STEER/AliMagFDM.cxx
STEER/AliMagFDM.h

index c38b02941d04be52c72abb560e3f89855478cf4a..32ec66eb050a73a6cc1d9476b6caae674ea60f70 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.7  2001/05/16 14:57:22  alibrary
+New files for folders and Stack
+
 Revision 1.6  2000/12/18 10:44:01  morsch
 Possibility to set field map by passing pointer to objet of type AliMagF via
 SetField().
@@ -54,9 +57,11 @@ AliMagFCM::AliMagFCM(const char *name, const char *title, const Int_t integ,
   //
   fType = kConMesh;
   fMap  = 2;
-  
+  SetSolenoidField();
+
   if(fDebug>-1) printf("%s: Constant Mesh Field %s created: map= %d, factor= %f, file= %s\n",
         ClassName(),fName.Data(), fMap, factor,fTitle.Data());
+  
 }
 
 //________________________________________
@@ -83,7 +88,7 @@ void AliMagFCM::Field(Float_t *x, Float_t *b)
   
   b[0]=b[1]=b[2]=0;
   if(-700<x[2] && x[2]<fZbeg && x[0]*x[0]+(x[1]+30)*(x[1]+30) < 560*560) {
-    b[2]=2;
+    b[2]= fSolenoid;
   } else  {
     Bool_t infield=(fZbeg<=x[2] && x[2]<fZbeg+fZdel*(fZn-1)
                    &&  ( fXbeg <= TMath::Abs(x[0]) && TMath::Abs(x[0]) < fXbeg+fXdel*(fXn-1) )
index 413ff3b575c12a955f99cb03f9bb2b391dfa3b30..8f10f08083a16785ce4de75ae0ca4ba44956b1da 100644 (file)
@@ -20,6 +20,8 @@ public:
   virtual ~AliMagFCM() {delete fB;}
   virtual void Field(Float_t *x, Float_t *b);
   virtual void ReadField();
+  virtual void SetSolenoidField(Float_t field = 2.) {fSolenoid = field;}
+  
   void Copy(AliMagFCM &magf) const;
   virtual AliMagFCM & operator=(const AliMagFCM &magf);
 
@@ -35,19 +37,20 @@ public:
 
 protected:
 
-  Float_t    fXbeg;  // Start of mesh in x
-  Float_t    fYbeg;  // Start of mesh in y
-  Float_t    fZbeg;  // Start of mesh in z
-  Float_t    fXdel;  // Mesh step in x
-  Float_t    fYdel;  // Mesh step in y
-  Float_t    fZdel;  // Mesh step in z
-  Double_t   fXdeli; // Inverse of Mesh step in x
-  Double_t   fYdeli; // Inverse of Mesh step in y
-  Double_t   fZdeli; // Inverse of Mesh step in z
-  Int_t      fXn;    // Number of mesh points in x
-  Int_t      fYn;    // Number of mesh points in y
-  Int_t      fZn;    // Number of mesh points in z
-  TVector   *fB;     // Field map
+  Float_t    fXbeg;     // Start of mesh in x
+  Float_t    fYbeg;     // Start of mesh in y
+  Float_t    fZbeg;     // Start of mesh in z
+  Float_t    fXdel;     // Mesh step in x
+  Float_t    fYdel;     // Mesh step in y
+  Float_t    fZdel;     // Mesh step in z
+  Float_t    fSolenoid; // Solenoid Field Strength
+  Double_t   fXdeli;    // Inverse of Mesh step in x
+  Double_t   fYdeli;    // Inverse of Mesh step in y
+  Double_t   fZdeli;    // Inverse of Mesh step in z
+  Int_t      fXn;       // Number of mesh points in x
+  Int_t      fYn;       // Number of mesh points in y
+  Int_t      fZn;       // Number of mesh points in z
+  TVector   *fB;        // Field map
   
   ClassDef(AliMagFCM,1)  //Class for all Alice MagField with Constant Mesh
 };
index 546184f132cd9a542f4203194304f57f757fb306..6534cba0d1e0dcd339a40b12215f301a710f994e 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.11  2001/02/08 13:18:00  hristov
+Print removed (J.Gosset)
+
 Revision 1.10  2001/01/18 13:21:30  morsch
 Take pi from TMath.
 
@@ -73,6 +76,7 @@ AliMagFDM::AliMagFDM(const char *name, const char *title, const Int_t integ,
   //
   fType = kDipoMap;
   fMap  = 3;
+  SetSolenoidField();
   
  printf("Field Map for Muon Arm from IP till muon filter %s created: map= %d, integ= %d, factor= %f, file=%s\n",fName.Data(), fMap ,integ,factor,fTitle.Data());
  
@@ -127,7 +131,7 @@ void AliMagFDM::Field(Float_t *xfi, Float_t *b)
        || (kfZbg<x[2] && x[2]<=kfZL3 && (rr>rPmax*100 && rr< 560)) )
        {
         b[0]=b[1]=0;
-        b[2]=2;
+        b[2]=fSolenoid;
        }
 
   xL3[0]=x[0]/100;
index ca6129f6d417b4ce94ba27f7dc056bf89c4f4216..a7cf52c0f7c158e7e3ea955a37182f7dc2212201 100644 (file)
@@ -18,6 +18,7 @@ public:
   virtual ~AliMagFDM(){} 
   virtual void Field(Float_t *x, Float_t *b);
   virtual void ReadField(); 
+  virtual void SetSolenoidField(Float_t field = 2.) {fSolenoid = field;}
   
   Int_t FZ(Double_t u, Float_t *Ar, Float_t du, Int_t ki, Int_t nu);
   Double_t Ba(Int_t kai, Double_t za1, Double_t za2, Double_t al1, Double_t al2, Double_t al3, Int_t ka, Int_t ma);
@@ -27,7 +28,7 @@ public:
 protected:
 
 //
-
+  Float_t    fSolenoid; // Solenoid Field Strength
   Int_t      fInd;   // Character number of validity Map region
 
   Float_t fZmin;  // Start of the cartesian  part  of MAP in z