The present commit corresponds to an important change in the way the Magnetic qField is used in AliRoot. - Only one field will be supported, the Chebichev parametrisation developed by R.Shahoyan, with the name AliMagF. Different field strengths will be obtained by changing the scale factor for the dipole and the solenoid fields. Some highlights of these changes are here - All other mag field classes and maps are deleted - The field is accessed via a call to TGeoGlobalMagField::Instance()->Field(...) both in simulation and in reconstruction. This has involved changes in very many files in the following modules: ACORDE, BCM, EMCAL, EVE, FMD, HLT, HMPID, ITS, MONITOR, MUON, PHOS, PMD, PWG1, PWG3, RAW, STEER, STRUCT, T0, TOF, TPC, TRD, VZERO, ZDC, test. - The modifications to account for the new field were done in the compilable code and in all the macro. These have now to be carefully tested by the authors. - If your macros are creating the field, note that the field should be constructed as: AliMagF* fld = new AliMagF( const char *anyname, // same as before, up to you const char* anytitle, // same as before, ... Int_t integ, // same as before, geant Double_t factorSol=1.,// scaling (including the sign) for the solenoid Double_t factorDip=1.,// new parameter, scaling for dipole Double_t fmax=15, // same as before BMap_t maptype = k5kG,// map type: choices are AliMagF::k5kG, // AliMagF::k2kG and k5kGUniform // the latter will provide former AliMagFC-like // field: constant Bz for L3, BX parabolic in // Z for dipole const char* path="$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root", // parameterization file to use. BeamType_t btype=kBeamTypepp, // used to define the field for ZDC, // choices are: AliMagF::kBeamTypeAA, // AliMagF::kBeamTypepp, liMagF::kNoBeamField Double_t benergy=7000., // currently only 450, 5000 and 7000 are //supported, will be changed soon Bool_t compensator=kFALSE // this are compensator dipoles for the // Muon dipole, most probably it will be // eliminated soon, set it to kTRUE for // the moment ); - Note that in order to make the field available to Aliroot it should be registered by TGeoGlobalMagField::Instance()->SetField(fld); - The following lock will prevent the field from resetting: TGeoGlobalMagField::Instance()->Lock(); - In the macros and in the code the field may be accessed via either direct call TGeoGlobalMagField::Instance()->Field(const double* x,double *b) or casted to AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); in case you need the methods like GetTPCInt(). - Since many classes use only Bz component, I've added a new method AliMagF::GetBz(const double* x) which computes the Bz w/o spending the time on Bx,By.