SetField().
Example:
gAlice->SetField(new AliMagFCM("Map2", "$(ALICE_ROOT)/data/field01.dat",2,1.,10.));
/*
$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
//________________________________________
AliMagF::AliMagF(const char *name, const char *title, const Int_t integ,
- const Int_t map, const Float_t factor, const Float_t fmax)
+ const Float_t factor, const Float_t fmax)
: TNamed(name,title)
{
//
// Standard constructor
//
- fMap = map;
- fType = kUndef;
- fInteg = integ;
- fFactor = factor;
- fMax = fmax;
+ if(integ<0 || integ > 2) {
+ Warning("SetField",
+ "Invalid magnetic field flag: %5d; Helix tracking chosen instead\n"
+ ,integ);
+ fInteg = 2;
+ } else {
+ fInteg = integ;
+ }
+ fType = kUndef;
+ fFactor = factor;
+ fMax = fmax;
}
//________________________________________
public:
AliMagF(){}
- AliMagF(const char *name, const char *title, const Int_t integ, const Int_t map,
- const Float_t factor, const Float_t fmax);
+ AliMagF(const char *name, const char *title, const Int_t integ,
+ const Float_t factor = 1., const Float_t fmax = 10.);
virtual ~AliMagF() {}
virtual void Field(Float_t *x, Float_t *b);
virtual Int_t Type() const {return fType;}
/*
$Log$
+Revision 1.4 2000/12/01 11:20:27 alibrary
+Corrector dipole removed from ZDC
+
Revision 1.3 2000/11/10 18:09:55 fca
New field map for the ZDC
//________________________________________
AliMagFC::AliMagFC(const char *name, const char *title, const Int_t integ,
- const Int_t map, const Float_t factor, const Float_t fmax)
- : AliMagF(name,title,integ,map,factor,fmax)
+ const Float_t factor, const Float_t fmax)
+ : AliMagF(name,title,integ,factor,fmax)
{
//
// Standard constructor
//
- printf("Constant Field %s created: map= %d, factor= %f\n",fName.Data(),map,
- factor);
fType = kConst;
+ fMap = 1;
+ printf("Constant Field %s created: map= %d, factor= %f\n",fName.Data(),fMap,
+ factor);
}
//________________________________________
public:
AliMagFC(){}
AliMagFC(const char *name, const char *title, const Int_t integ,
- const Int_t map, const Float_t factor, const Float_t fmax);
+ const Float_t factor, const Float_t fmax);
virtual ~AliMagFC() {}
virtual void Field(Float_t *x, Float_t *b);
virtual void ReadField() {}
/*
$Log$
+Revision 1.5 2000/12/01 11:20:27 alibrary
+Corrector dipole removed from ZDC
+
Revision 1.4 2000/11/30 07:12:49 alibrary
Introducing new Rndm and QA classes
//________________________________________
AliMagFCM::AliMagFCM(const char *name, const char *title, const Int_t integ,
- const Int_t map, const Float_t factor, const Float_t fmax)
- : AliMagF(name,title,integ,map,factor,fmax)
+ const Float_t factor, const Float_t fmax)
+ : AliMagF(name,title,integ,factor,fmax)
{
//
// Standard constructor
//
fType = kConMesh;
+ fMap = 2;
+
printf("Constant Mesh Field %s created: map= %d, factor= %f, file= %s\n",
- fName.Data(),map,factor,fTitle.Data());
+ fName.Data(), fMap, factor,fTitle.Data());
}
//________________________________________
public:
AliMagFCM(){}
- AliMagFCM(const char *name, const char *title, const Int_t integ, const Int_t map,
+ AliMagFCM(const char *name, const char *title, const Int_t integ,
const Float_t factor, const Float_t fmax);
AliMagFCM(const AliMagFCM &mag);
virtual ~AliMagFCM() {delete fB;}
/*
$Log$
+Revision 1.7 2000/12/01 11:20:27 alibrary
+Corrector dipole removed from ZDC
+
Revision 1.6 2000/11/10 18:09:55 fca
New field map for the ZDC
//________________________________________
AliMagFDM::AliMagFDM(const char *name, const char *title, const Int_t integ,
-const Int_t map, const Float_t factor, const Float_t fmax)
- : AliMagF(name,title,integ,map,factor,fmax)
+ const Float_t factor, const Float_t fmax)
+ : AliMagF(name,title,integ,factor,fmax)
{
//
// Standard constructor for the Dipole field
//
fType = kDipoMap;
-
- printf("Field Map for Muon Arm from IP till muon filter %s created: map= %d, factor= %f, file=%s\n",fName.Data(),map,factor,fTitle.Data());
+ fMap = 3;
+
+ printf("Field Map for Muon Arm from IP till muon filter %s created: map= %d, factor= %f, file=%s\n",fName.Data(), fMap ,factor,fTitle.Data());
}
public:
AliMagFDM(){}
- AliMagFDM(const char *name, const char *title, const Int_t integ, const Int_t
- map, const Float_t factor, const Float_t fmax);
+ AliMagFDM(const char *name, const char *title, const Int_t integ,
+ const Float_t factor, const Float_t fmax);
virtual ~AliMagFDM(){}
virtual void Field(Float_t *x, Float_t *b);
virtual void ReadField();
/*
$Log$
+Revision 1.46 2000/12/14 19:29:27 fca
+galice.cuts was not read any more
+
Revision 1.45 2000/11/30 07:12:49 alibrary
Introducing new Rndm and QA classes
"\n=======================================================================\n\n");
}
+void AliRun::SetField(AliMagF* magField)
+{
+ // Set Magnetic Field Map
+ fField = magField;
+ fField->ReadField();
+}
+
//_____________________________________________________________________________
void AliRun::SetField(Int_t type, Int_t version, Float_t scale,
Float_t maxField, char* filename)
//
// --- Sanity check on mag field flags
- if(type<0 || type > 2) {
- Warning("SetField",
- "Invalid magnetic field flag: %5d; Helix tracking chosen instead\n"
- ,type);
- type=2;
- }
if(fField) delete fField;
if(version==1) {
- fField = new AliMagFC("Map1"," ",type,version,scale,maxField);
+ fField = new AliMagFC("Map1"," ",type,scale,maxField);
} else if(version<=2) {
- fField = new AliMagFCM("Map2-3",filename,type,version,scale,maxField);
+ fField = new AliMagFCM("Map2-3",filename,type,scale,maxField);
fField->ReadField();
} else if(version==3) {
- fField = new AliMagFDM("Map4",filename,type,version,scale,maxField);
+ fField = new AliMagFDM("Map4",filename,type,scale,maxField);
fField->ReadField();
} else {
Warning("SetField","Invalid map %d\n",version);
virtual void SetDisplay(AliDisplay *display) {fDisplay = display;}
virtual void StepManager(Int_t id);
virtual void SetField(Int_t type=2, Int_t version=1, Float_t scale=1, Float_t maxField=10, char*filename="$(ALICE_ROOT)/data/field01.dat");
+ virtual void SetField(AliMagF* magField);
virtual void SetTrack(Int_t done, Int_t parent, Int_t pdg,
Float_t *pmom, Float_t *vpos, Float_t *polar,
Float_t tof, AliMCProcess mech, Int_t &ntr,