From f7a1cc68313147ec921d4c82df1890abe00e4032 Mon Sep 17 00:00:00 2001 From: fca Date: Sun, 1 Feb 2009 11:42:22 +0000 Subject: [PATCH] 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. --- ACORDE/AliACORDE.cxx | 9 +- ACORDE/macros/Config.C | 595 +----------- BCM/AliBCM.cxx | 15 +- BCM/Config_BCM.C | 7 +- EMCAL/AliEMCAL.cxx | 11 +- EMCAL/AliEMCALTrack.cxx | 20 - EMCAL/AliEMCALTrack.h | 2 - EMCAL/beamtest07/Rec.C | 2 - EMCAL/jetfinder/AliEMCALJetFinder.cxx | 3 +- EMCAL/jetfinder/AliEMCALJetFinderAlgo.cxx | 2 +- .../AliEMCALJetFinderInputSimPrep.cxx | 4 +- EMCAL/macros/Config.C | 6 +- EMCAL/macros/TestEMCALReconstruction.C | 5 - EVE/EveBase/AliEveEventManager.cxx | 31 +- EVE/EveBase/AliEveEventManager.h | 4 - EVE/EveDet/AliEveMUONTrack.cxx | 48 +- EVE/EveDet/AliEveMUONTrack.h | 3 - EVE/alice-macros/MUON_displayData.C | 11 +- EVE/alice-macros/MUON_displaySimu.C | 10 +- EVE/alice-macros/kine_tracks.C | 16 +- EVE/alice-macros/trd_qaRec.C | 4 +- FMD/AliFMD.cxx | 13 +- FMD/Config.C | 15 +- FMD/scripts/DummyConfig.C | 19 +- FMD/scripts/pdc06_config.C | 19 +- GRP/UpdateCDBGRPEntryMC.C | 4 +- HLT/ITS/AliHLTITStracker.cxx | 2 +- HLT/ITS/RunHLTITS.C | 1 - HLT/TPCLib/AliHLTTPCTransform.cxx | 33 +- HLT/TPCLib/macros/activePadsTest.C | 2 - HLT/TPCLib/macros/cal-hlt-tpc-offline.C | 2 - HLT/TPCLib/macros/histogramHandlerTest.C | 2 - HLT/TPCLib/macros/rec-hlt-tpc-ca.C | 2 - HLT/TPCLib/macros/rec-hlt-tpc-offline.C | 2 - HLT/TPCLib/macros/rec-hlt-tpc-tracks.C | 2 - HLT/TPCLib/macros/rec-hlt-tpc.C | 2 - .../AliHLTTPCOfflineClustererComponent.cxx | 2 +- .../AliHLTTPCOfflineTrackerCalibComponent.cxx | 26 +- .../AliHLTTPCOfflineTrackerComponent.cxx | 26 +- HLT/TRD/AliHLTTRDTrackerComponent.cxx | 12 +- HLT/TRD/AliHLTTRDTrackerComponent.h | 4 +- HLT/TRD/AliHLTTRDTrackerV1Component.cxx | 48 +- HLT/TRD/AliHLTTRDTrackerV1Component.h | 4 +- HLT/global/macros/rec-hlt-global-merger.C | 2 - HLT/sim/AliHLTSimulation.cxx | 2 - HMPID/AliHMPIDtrack.cxx | 12 +- HMPID/AliHMPIDtrack.h | 1 - HMPID/AliHMPIDv1.cxx | 9 +- HMPID/AliHMPIDv2.cxx | 13 +- HMPID/AliHMPIDv3.cxx | 15 +- HMPID/Hconfig.C | 28 +- HMPID/Hnew.C | 14 +- ITS/AliCascadeFindVertices.C | 1 - ITS/AliITSFindTracksANN.C | 1 - ITS/AliITSFindTracksSA.C | 1 - ITS/AliITSTrackV1.cxx | 4 +- ITS/AliITSTrackerV1.cxx | 10 +- ITS/AliITSsimulationSPD.cxx | 8 +- ITS/AliITStrackV2.cxx | 13 +- ITS/AliITStrackV2.h | 2 +- ITS/AliITStrackerMI.cxx | 2 +- ITS/AliITStrackerV2.cxx | 2 +- ITS/AliITSv11Geometry.cxx | 4 +- ITS/AliITSv11GeometrySPD.cxx | 15 +- ITS/AliITSv11Hybrid.cxx | 6 +- ITS/AliITSvBeamTestITS04.cxx | 30 +- ITS/AliITSvPPRasymmFMD.cxx | 15 +- ITS/AliITSvPPRcoarseasymm.cxx | 7 +- ITS/AliITSvSDD03.cxx | 7 +- ITS/AliITSvSPD02.cxx | 9 +- ITS/AliITSvSSD03.cxx | 11 +- ITS/ConfigSDD03.C | 2 - ITS/ConfigSPD02.C | 2 - ITS/ConfigSSD03.C | 2 - ITS/oldmacros/AliITSVertexerTracksTest2.C | 2 +- MONITOR/galice.C | 3 +- MONITOR/monitorGDC.cxx | 11 +- MUON/AliMUONCheck.cxx | 2 +- MUON/AliMUONCommonGeometryBuilder.cxx | 5 +- MUON/AliMUONSt1GeometryBuilderV2.cxx | 21 +- MUON/AliMUONTrackExtrap.cxx | 66 +- MUON/AliMUONTrackExtrap.h | 5 +- MUON/AliMUONTrackHitPattern.cxx | 7 +- MUON/AliMUONVTrackReconstructor.cxx | 4 +- MUON/AliMUONv1.cxx | 9 +- MUON/Config.C | 3 +- MUON/DecodeRecoCocktail.C | 12 +- MUON/Doxymodules_STEER.h | 6 - MUON/MUONAlignment.C | 12 +- MUON/MUONClusterInfo.C | 10 +- MUON/MUONRecoCheck.C | 14 +- MUON/MUONRefit.C | 16 +- MUON/MUONResoEffChamber.C | 27 +- MUON/MUONefficiency.C | 15 +- MUON/MUONmassPlot_ESD.C | 15 +- MUON/runDataReconstruction.C | 7 +- MUON/runReconstruction.C | 4 - PHOS/AliPHOS.cxx | 11 +- PHOS/ConfigTestSuite.C | 4 +- PHOS/macros/AlignmentDB/Config.C | 6 +- PHOS/macros/Embed/Config.C | 20 +- PHOS/macros/testSuite/ConfigTestSuite.C | 4 +- PHOS/macros/testSuite/ConfigTestSuiteHij.C | 4 +- PMD/AliPMDRec.C | 3 - PMD/AliPMDv0.cxx | 8 +- PMD/AliPMDv1.cxx | 7 +- PMD/AliPMDv2008.cxx | 7 +- PMD/AliPMDv3.cxx | 4 +- PWG1/AliComparisonEff.cxx | 2 +- PWG1/AliComparisonEff.h | 2 +- PWG1/AliComparisonTask.cxx | 2 +- PWG1/AliComparisonTask.h | 2 +- PWG1/AliRecInfoMaker.cxx | 2 - PWG1/Macros/RunAliComparisonTask.C | 6 +- .../AliAnalysisTaskMuonTrackingEff.cxx | 14 +- PWG3/muondep/AliAnalysisTaskRecoCheck.cxx | 11 +- RAW/AliHoughFilter.cxx | 3 +- STEER/AliESDComparisonMI.C | 3 - STEER/AliMC.cxx | 10 +- STEER/AliMC.h | 1 - STEER/AliMagFC.cxx | 421 -------- STEER/AliMagFC.h | 85 -- STEER/AliMagFCM.cxx | 362 ------- STEER/AliMagFCM.h | 69 -- STEER/AliMagFCheb.cxx | 160 --- STEER/AliMagFCheb.h | 47 - STEER/AliMagFDM.cxx | 919 ------------------ STEER/AliMagFDM.h | 93 -- STEER/AliMagFMaps.cxx | 324 ------ STEER/AliMagFMaps.h | 51 - STEER/AliMagFMapsV1.cxx | 174 ---- STEER/AliMagFMapsV1.h | 39 - STEER/AliReconstruction.cxx | 257 +++-- STEER/AliReconstruction.h | 8 +- STEER/AliRun.cxx | 42 - STEER/AliRun.h | 8 +- STEER/AliSimulation.cxx | 20 +- STEER/AliSimulation.h | 1 + STEER/AliTrackPointArray.cxx | 2 +- STEER/AliTracker.cxx | 56 +- STEER/AliTracker.h | 41 +- STEER/AliVTrack.cxx | 17 + STEER/AliVTrack.h | 1 + STRUCT/AliABSO.cxx | 6 +- STRUCT/AliBODY.cxx | 5 +- STRUCT/AliDIPOv2.cxx | 9 +- STRUCT/AliFRAMEv2.cxx | 16 +- STRUCT/AliHALL.cxx | 3 +- STRUCT/AliMAG.cxx | 15 +- STRUCT/AliPIPEv0.cxx | 5 +- STRUCT/AliPIPEv1.cxx | 4 +- STRUCT/AliPIPEv3.cxx | 19 +- STRUCT/AliPIPEvTemp.cxx | 4 +- STRUCT/AliSHIL.cxx | 8 +- T0/AliT0v0.cxx | 5 +- T0/AliT0v1.cxx | 13 +- T0/AliT0v2.cxx | 4 +- TFluka/macro/FlukaConfig.C | 19 +- TOF/AliTOFconfig.C | 20 +- TOF/AliTOFtrack.cxx | 9 - TOF/AliTOFtrack.h | 1 - TOF/AliTOFv4T0.cxx | 2 +- TOF/AliTOFv5T0.cxx | 11 +- TOF/AliTOFv6T0.cxx | 11 +- TPC/AliL1Delay.C | 6 +- TPC/AliTPC.cxx | 15 +- TPC/AliTPCExB.cxx | 24 +- TPC/AliTPCExBExact.cxx | 25 +- TPC/AliTPCExBExact.h | 9 +- TPC/AliTPCExBFirst.cxx | 23 +- TPC/AliTPCExBFirst.h | 7 +- TPC/AliTPCFindTracksMI.C | 1 - TPC/AliTPCHits2SDigits.C | 1 - TPC/AliTPCReconstructor.cxx | 6 +- TPC/AliTPCTracklet.cxx | 8 +- TPC/AliTPCcalibCosmic.cxx | 2 +- TPC/AliTPCcalibDB.cxx | 3 +- TPC/AliTPCcalibTime.cxx | 2 +- TPC/AliTPCcalibUnlinearity.cxx | 2 +- TPC/AliTPCtrack.cxx | 9 - TPC/AliTPCtrack.h | 1 - TPC/AliTPCtrackerParam.cxx | 7 +- TPC/AliTPCtrackingParamDB.C | 4 +- TPC/AnalyzeESDtracks.C | 3 - TPC/Cal/AliTPCCreateDummyCDB.C | 2 +- TPC/CalibMacros/CalibExB.C | 6 +- TPC/ConfigKr.C | 5 +- TPC/macros/ConfigOCDB.C | 3 +- TPC/macros/TestV0.C | 4 - TPC/macros/recMag5.C | 3 - TPC/macros/recTPC2007.C | 3 - TPC/macros/testTPC/rec.C | 5 - TPC/recTPC.C | 4 - TPC/testMC/ConfigCosmic.C | 18 +- TPC/testMC/ConfigHM.C | 6 +- TPC/testMC/ConfigHPT.C | 7 +- TPC/testMC/ConfigHPT1.C | 6 +- TPC/testMC/ConfigLM.C | 4 +- TPC/testMC/ConfigPP.C | 14 +- TPC/testMC/Config_AliGenCosmicsParam.C | 9 +- TPC/testMC/recMC.C | 4 - TPHIC/ConfigTPHIC.C | 3 +- TRD/AliTRD.cxx | 5 +- TRD/AliTRDdigitizer.cxx | 19 +- TRD/AliTRDtrackV1.cxx | 14 - TRD/AliTRDtrackV1.h | 1 - TRD/Macros/AliTRDConfigPID.C | 20 +- TRD/qaRec/AliTRDtrackingEfficiency.cxx | 2 +- .../AliTRDtrackingEfficiencyCombined.cxx | 2 +- TRD/qaRec/run.C | 8 +- VZERO/AliVZEROv2.cxx | 7 +- VZERO/AliVZEROv3.cxx | 10 +- VZERO/AliVZEROv4.cxx | 7 +- VZERO/AliVZEROv5.cxx | 7 +- VZERO/AliVZEROv6.cxx | 6 +- VZERO/AliVZEROv7.cxx | 7 +- ZDC/AliZDCv1.cxx | 4 +- ZDC/ConfigGenZDC.C | 5 +- doc/aliroot-primer/scripts/Config.C | 3 +- macros/Config.C | 6 +- macros/ConfigPPR.C | 20 +- macros/Config_AliGenCosmicsParam.C | 17 +- macros/Config_PDC06.C | 19 +- macros/Config_PDC06_MUON.C | 4 +- macros/Config_PDC07_MBias_MUON.C | 4 +- macros/Config_PythiaHeavyFlavours.C | 21 +- macros/g4ConfigCommon.C | 3 +- macros/plotField.C | 7 +- test/PbPbbench/Config.C | 14 +- test/QA/Config.C | 21 +- test/cosmic/rec.C | 8 +- test/embedding/Config.C | 14 +- test/fpprod/Config.C | 14 +- test/genkine/runtest.sh | 6 +- test/genkine/sim/Config.C | 22 +- test/gun/Config.C | 7 +- test/merge/backgr/Config.C | 24 +- test/merge/signal/Config.C | 21 +- test/pileup/Config.C | 22 +- test/ppbench/Config.C | 19 +- test/pploadlibs/Config.C | 23 +- 241 files changed, 976 insertions(+), 4829 deletions(-) delete mode 100644 STEER/AliMagFC.cxx delete mode 100644 STEER/AliMagFC.h delete mode 100644 STEER/AliMagFCM.cxx delete mode 100644 STEER/AliMagFCM.h delete mode 100644 STEER/AliMagFCheb.cxx delete mode 100644 STEER/AliMagFCheb.h delete mode 100644 STEER/AliMagFDM.cxx delete mode 100644 STEER/AliMagFDM.h delete mode 100644 STEER/AliMagFMaps.cxx delete mode 100644 STEER/AliMagFMaps.h delete mode 100644 STEER/AliMagFMapsV1.cxx delete mode 100644 STEER/AliMagFMapsV1.h diff --git a/ACORDE/AliACORDE.cxx b/ACORDE/AliACORDE.cxx index 44ead561369..a34e33e1bb4 100644 --- a/ACORDE/AliACORDE.cxx +++ b/ACORDE/AliACORDE.cxx @@ -38,10 +38,11 @@ /////////////////////////////////////////////////////////////////////////////// #include -#include -#include +#include #include #include +#include +#include #include "AliACORDE.h" #include "AliMagF.h" @@ -85,8 +86,8 @@ AliACORDE::~AliACORDE() void AliACORDE::CreateMaterials() { // Magnatic field inside the pit - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); //Magnetic field above the Magnet. Int_t xfield = 0; // no Magnetic field. diff --git a/ACORDE/macros/Config.C b/ACORDE/macros/Config.C index 806dc2dccd8..463459f027f 100644 --- a/ACORDE/macros/Config.C +++ b/ACORDE/macros/Config.C @@ -1,990 +1,411 @@ // - // Configuration for the Physics Data Challenge 2006 - // - - - // One can use the configuration macro in compiled mode by - // root [0] gSystem->Load("libgeant321"); - // root [0] gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include\ - // -I$ALICE_ROOT -I$ALICE/geant3/TGeant3"); - // root [0] .x grun.C(1,"Config_PDC06.C++") - - - #if !defined(__CINT__) || defined(__MAKECINT__) - #include - #include - #include - #include - #include - #include - #include "EVGEN/AliGenCocktail.h" - #include "EVGEN/AliGenParam.h" - #include "EVGEN/AliGenMUONlib.h" - #include "STEER/AliRunLoader.h" - #include "STEER/AliRun.h" - #include "STEER/AliConfig.h" - #include "PYTHIA6/AliDecayerPythia.h" - #include "PYTHIA6/AliGenPythia.h" - -#include "STEER/AliMagFMaps.h" - +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" - #include "STRUCT/AliMAG.h" - #include "STRUCT/AliABSOv0.h" - #include "STRUCT/AliDIPOv2.h" - #include "STRUCT/AliHALL.h" - #include "STRUCT/AliFRAMEv2.h" - #include "STRUCT/AliSHILv2.h" - #include "STRUCT/AliPIPEv0.h" - #include "ITS/AliITSgeom.h" - #include "ITS/AliITSvPPRasymmFMD.h" - #include "TPC/AliTPCv2.h" - #include "TOF/AliTOFv5T0.h" - #include "HMPID/AliHMPIDv1.h" - #include "ZDC/AliZDCv2.h" - #include "TRD/AliTRDv1.h" - #include "FMD/AliFMDv1.h" - #include "MUON/AliMUONv1.h" - #include "PHOS/AliPHOSv1.h" - #include "PMD/AliPMDv1.h" - #include "T0/AliT0v1.h" - #include "EMCAL/AliEMCALv2.h" - #include "CRT/AliCRTv0.h" - #include "VZERO/AliVZEROv7.h" - #endif - - - //--- Trigger config --- - enum TrigConf_t - { - kDefaultPPTrig, kDefaultPbPbTrig - }; - - - const char * TrigConfName[] = { - "p-p","Pb-Pb" - }; - - - - - - - //--- Decay Mode --- - enum DecayHvFl_t - { - kNature, kHadr, kSemiEl, kSemiMu - }; - //--- Rapidity Cut --- - enum YCut_t - { - kFull, kBarrel, kMuonArm - }; - -//--- Magnetic Field --- - -enum Mag_t - -{ - - k2kG, k4kG, k5kG - -}; - - - void ProcessEnvironmentVars(); - - - // This part for configuration - static DecayHvFl_t decHvFl = kNature; - static YCut_t ycut = kFull; - -static Mag_t mag = k5kG; - +static AliMagF::BMap_t mag = AliMagF::k5kG; static TrigConf_t trig = kDefaultPPTrig; - //========================// - // Set Random Number seed // - //========================// - TDatime dt; - static UInt_t seed = dt.Get(); - - - - - // Comment line - static TString comment; - - - void Config() - { - - - - // Get settings from environment variables - ProcessEnvironmentVars(); - - - gRandom->SetSeed(seed); - // gRandom->SetSeed(12345); - cerr<<"Seed for random number generation= "<Load("libgeant321"); - #endif - - - new TGeant3TGeo("C++ Interface to Geant3"); - - - //======================================================================= - // Create the output file - - - - AliRunLoader* rl=0x0; - - - cout<<"Config.C: Creating Run Loader ..."<Fatal("Config.C","Can not instatiate the Run Loader"); - return; - } - rl->SetCompressionLevel(2); - rl->SetNumberOfEventsPerFile(1000); - gAlice->SetRunLoader(rl); - - // Set the trigger configuration - gAlice->SetTriggerDescriptor(TrigConfName[trig]); - cout<<"Trigger configuration is set to "<SetProcess("DCAY",1); - gMC->SetProcess("PAIR",1); - gMC->SetProcess("COMP",1); - gMC->SetProcess("PHOT",1); - gMC->SetProcess("PFIS",0); - gMC->SetProcess("DRAY",0); - gMC->SetProcess("ANNI",1); - gMC->SetProcess("BREM",1); - gMC->SetProcess("MUNU",1); - gMC->SetProcess("CKOV",1); - gMC->SetProcess("HADR",1); - gMC->SetProcess("LOSS",2); - gMC->SetProcess("MULS",1); - gMC->SetProcess("RAYL",1); - - - Float_t cut = 1.e-3; // 1MeV cut by default - Float_t tofmax = 1.e10; - - - gMC->SetCut("CUTGAM", cut); - gMC->SetCut("CUTELE", cut); - gMC->SetCut("CUTNEU", cut); - gMC->SetCut("CUTHAD", cut); - gMC->SetCut("CUTMUO", cut); - gMC->SetCut("BCUTE", cut); - gMC->SetCut("BCUTM", cut); - gMC->SetCut("DCUTE", cut); - gMC->SetCut("DCUTM", cut); - gMC->SetCut("PPCUTM", cut); - gMC->SetCut("TOFMAX", tofmax); - // ((TGeant3 *) gMC)->SetSWIT(2,2); - // ((TGeant3 *) gMC)->SetDEBU(1,999,1); - - - - - - - - - // Set External decayer // - //======================// - TVirtualMCDecayer* decayer = new AliDecayerPythia(); - // DECAYS - // - switch(decHvFl) { - case kNature: - decayer->SetForceDecay(kAll); - break; - case kHadr: - decayer->SetForceDecay(kHadronicD); - break; - case kSemiEl: - decayer->SetForceDecay(kSemiElectronic); - break; - case kSemiMu: - decayer->SetForceDecay(kSemiMuonic); - break; - } - decayer->Init(); - gMC->SetExternalDecayer(decayer); - - - //=========================// - // Generator Configuration // - //=========================// - AliGenBox* gener = new AliGenBox(); - gener->SetThetaRange(45,135); - gener->SetPhiRange(30,150); - gener->SetMomentumRange(9.8,10.2); - gener->SetPart(kMuonMinus); - gener->SetNumberParticles(20); - - - - - gener->Init(); - - - // FIELD - // - - if (mag == k2kG) { - + if (mag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - - } else if (mag == k4kG) { - - comment = comment.Append(" | L3 field 0.4 T"); - - } else if (mag == k5kG) { - + } else if (mag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); - } - printf("\n \n Comment: %s \n \n", comment.Data()); - - - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); - + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,mag); field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); rl->CdGAFile(); - gAlice->SetField(field); - - - - - - - Int_t iABSO = 0; - Int_t iACORDE = 1; - Int_t iDIPO = 0; - Int_t iEMCAL = 0; - Int_t iFMD = 0; - Int_t iFRAME = 0; - Int_t iHALL = 0; - Int_t iITS = 0; - Int_t iMAG = 0; - Int_t iMUON = 0; - Int_t iPHOS = 0; - Int_t iPIPE = 0; - Int_t iPMD = 0; - Int_t iHMPID = 0; - Int_t iSHIL = 0; - Int_t iT0 = 0; - Int_t iTOF = 0; - Int_t iTPC = 0; - Int_t iTRD = 0; - Int_t iVZERO = 0; - Int_t iZDC = 0; - - - - //=================== Alice BODY parameters ============================= - AliBODY *BODY = new AliBODY("BODY", "Alice envelop"); - - - - - if (iMAG) - { - //=================== MAG parameters ============================ - // --- Start with Magnet since detector layouts may be depending --- - // --- on the selected Magnet dimensions --- - AliMAG *MAG = new AliMAG("MAG", "Magnet"); - } - - - - - if (iABSO) - { - //=================== ABSO parameters ============================ - AliABSO *ABSO = new AliABSOv0("ABSO", "Muon Absorber"); - } - - - if (iDIPO) - - { - - //=================== DIPO parameters ============================ - - - + { + //=================== DIPO parameters ============================ AliDIPO *DIPO = new AliDIPOv2("DIPO", "Dipole version 2"); - } - - - if (iHALL) - { - //=================== HALL parameters ============================ - - - AliHALL *HALL = new AliHALL("HALL", "Alice Hall"); - } - - - - - if (iFRAME) - { - //=================== FRAME parameters ============================ - - - AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame"); - } - - - if (iSHIL) - { - //=================== SHIL parameters ============================ - - - AliSHIL *SHIL = new AliSHILv2("SHIL", "Shielding Version 2"); - } - - - - - if (iPIPE) - { - //=================== PIPE parameters ============================ - - - AliPIPE *PIPE = new AliPIPEv0("PIPE", "Beam Pipe"); - } - - if(iITS) { - - - //=================== ITS parameters ============================ - // - // As the innermost detector in ALICE, the Inner Tracking System "impacts" on - // almost all other detectors. This involves the fact that the ITS geometry - // still has several options to be followed in parallel in order to determine - // the best set-up which minimizes the induced background. All the geometries - // available to date are described in the following. Read carefully the comments - // and use the default version (the only one uncommented) unless you are making - // comparisons and you know what you are doing. In this case just uncomment the - // ITS geometry you want to use and run Aliroot. - // - // Detailed geometries: - // - // - //AliITS *ITS = new AliITSv5symm("ITS","Updated ITS TDR detailed version with symmetric services"); - // - //AliITS *ITS = new AliITSv5asymm("ITS","Updates ITS TDR detailed version with asymmetric services"); - // - AliITSvPPRasymmFMD *ITS = new AliITSvPPRasymmFMD("ITS","New ITS PPR detailed version with asymmetric services"); - ITS->SetMinorVersion(2); // don't touch this parameter if you're not an ITS developer - ITS->SetReadDet(kFALSE); // don't touch this parameter if you're not an ITS developer - // ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det"); // don't touch this parameter if you're not an ITS developer - ITS->SetThicknessDet1(200.); // detector thickness on layer 1 must be in the range [100,300] - ITS->SetThicknessDet2(200.); // detector thickness on layer 2 must be in the range [100,300] - ITS->SetThicknessChip1(150.); // chip thickness on layer 1 must be in the range [150,300] - ITS->SetThicknessChip2(150.); // chip thickness on layer 2 must be in the range [150,300] - ITS->SetRails(0); // 1 --> rails in ; 0 --> rails out - ITS->SetCoolingFluid(1); // 1 --> water ; 0 --> freon - - - // Coarse geometries (warning: no hits are produced with these coarse geometries and they unuseful - // for reconstruction !): - // - // - //AliITSvPPRcoarseasymm *ITS = new AliITSvPPRcoarseasymm("ITS","New ITS PPR coarse version with asymmetric services"); - //ITS->SetRails(0); // 1 --> rails in ; 0 --> rails out - //ITS->SetSupportMaterial(0); // 0 --> Copper ; 1 --> Aluminum ; 2 --> Carbon - // - //AliITS *ITS = new AliITSvPPRcoarsesymm("ITS","New ITS PPR coarse version with symmetric services"); - //ITS->SetRails(0); // 1 --> rails in ; 0 --> rails out - //ITS->SetSupportMaterial(0); // 0 --> Copper ; 1 --> Aluminum ; 2 --> Carbon - // - // - // - // Geant3 <-> EUCLID conversion - // ============================ - // - // SetEUCLID is a flag to output (=1) or not to output (=0) both geometry and - // media to two ASCII files (called by default ITSgeometry.euc and - // ITSgeometry.tme) in a format understandable to the CAD system EUCLID. - // The default (=0) means that you dont want to use this facility. - // - ITS->SetEUCLID(0); - } - - - if (iTPC) - { - //============================ TPC parameters ===================== - AliTPC *TPC = new AliTPCv2("TPC", "Default"); - } - - - - - if (iTOF) { - //=================== TOF parameters ============================ - AliTOF *TOF = new AliTOFv5T0("TOF", "normal TOF"); - // Partial geometry: modules at 2,3,4,6,7,11,12,14,15,16 - // starting at 6h in positive direction - // Int_t TOFSectors[18]={-1,-1,0,0,0,-1,0,0,-1,-1,-1,0,0,-1,0,0,0,0}; - // Partial geometry: modules at 1,2,6,7,9,10,11,12,15,16,17 - // (ALICE numbering convention) - Int_t TOFSectors[18]={-1,0,0,-1,-1,-1,0,0,-1,0,0,0,0,-1,-1,0,0,0}; - TOF->SetTOFSectors(TOFSectors); - } - - - - - if (iHMPID) - { - //=================== HMPID parameters =========================== - AliHMPID *HMPID = new AliHMPIDv1("HMPID", "normal HMPID"); - - - } - - - - - if (iZDC) - { - //=================== ZDC parameters ============================ - - - AliZDC *ZDC = new AliZDCv2("ZDC", "normal ZDC"); - } - - - if (iTRD) - { - //=================== TRD parameters ============================ - - - AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator"); - AliTRDgeometry *geoTRD = TRD->GetGeometry(); - // Partial geometry: modules at 2,3,4,6,11,12,14,15 - // starting at 6h in positive direction - geoTRD->SetSMstatus(0,0); - geoTRD->SetSMstatus(1,0); - geoTRD->SetSMstatus(5,0); - geoTRD->SetSMstatus(7,0); - geoTRD->SetSMstatus(8,0); - geoTRD->SetSMstatus(9,0); - geoTRD->SetSMstatus(10,0); - geoTRD->SetSMstatus(13,0); - geoTRD->SetSMstatus(16,0); - geoTRD->SetSMstatus(17,0); - } - - - if (iFMD) - { - //=================== FMD parameters ============================ - AliFMD *FMD = new AliFMDv1("FMD", "normal FMD"); - } - - - if (iMUON) - { - //=================== MUON parameters =========================== - // New MUONv1 version (geometry defined via builders) - AliMUON *MUON = new AliMUONv1("MUON", "default"); - } - //=================== PHOS parameters =========================== - - - if (iPHOS) - { - AliPHOS *PHOS = new AliPHOSv1("PHOS", "IHEP"); - } - - - - - if (iPMD) - { - //=================== PMD parameters ============================ - AliPMD *PMD = new AliPMDv1("PMD", "normal PMD"); - } - - - if (iT0) - { - //=================== T0 parameters ============================ - AliT0 *T0 = new AliT0v1("T0", "T0 Detector"); - } - - - if (iEMCAL) - { - //=================== EMCAL parameters ============================ - AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE"); - } - - - if (iACORDE) - { - //=================== ACORDE parameters ============================ - AliACORDE *ACORDE = new AliACORDEv1("ACORDE", "normal ACORDE"); - // ACORDE->SetITSGeometry(kTRUE); - // ACORDE->SetCreateCavern(kFALSE); - } - - - if (iVZERO) - { - //=================== VZERO parameters ============================= - AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO"); - } - } - - - void ProcessEnvironmentVars() - { - // Run type - if (gSystem->Getenv("CONFIG_RUN_TYPE")) { - for (Int_t iRun = 0; iRun < kRunMax; iRun++) { - if (strcmp(gSystem->Getenv("CONFIG_RUN_TYPE"), pprRunName[iRun])==0) { - proc = (PDC06Proc_t)iRun; - cout<<"Run type set to "<Getenv("CONFIG_SEED")) { - seed = atoi(gSystem->Getenv("CONFIG_SEED")); - } - } - - - - - - - diff --git a/BCM/AliBCM.cxx b/BCM/AliBCM.cxx index 2838a7eec82..5fda6f7b4e8 100644 --- a/BCM/AliBCM.cxx +++ b/BCM/AliBCM.cxx @@ -22,16 +22,17 @@ // andreas.morsch@cern.ch // /////////////////////////////////////////////////////////////////////////////// -#include #include +#include +#include +#include #include -#include -#include #include +#include #include +#include #include -#include -#include +#include #include "AliBCM.h" #include "AliBCMHit.h" @@ -169,8 +170,8 @@ void AliBCM::CreateMaterials() Float_t tmaxfd = -20. ; // Maximum angle due to field deflection Float_t deemax = -.01; // Maximum fractional energy loss, DLS Float_t stmin = -.8; - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); AliMaterial(1, "PCD", 12.011, 6., rho, radl, absl); // diff --git a/BCM/Config_BCM.C b/BCM/Config_BCM.C index 7041c580fd3..8f037ce0bae 100644 --- a/BCM/Config_BCM.C +++ b/BCM/Config_BCM.C @@ -16,7 +16,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" @@ -153,10 +153,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); - - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 1; Int_t iACORDE = 0; diff --git a/EMCAL/AliEMCAL.cxx b/EMCAL/AliEMCAL.cxx index 781edf41baf..b030d72638f 100644 --- a/EMCAL/AliEMCAL.cxx +++ b/EMCAL/AliEMCAL.cxx @@ -60,11 +60,12 @@ // --- ROOT system --- class TFile; #include -#include -#include +#include +#include #include #include -#include +#include +#include // --- Standard library --- @@ -244,8 +245,8 @@ void AliEMCAL::CreateMaterials() // DEFINITION OF THE TRACKING MEDIA // for EMCAL: idtmed[1599->1698] equivalent to fIdtmed[0->100] - Int_t isxfld = gAlice->Field()->Integ() ; - Float_t sxmgmx = gAlice->Field()->Max() ; + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ() ; + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max() ; // Air -> idtmed[1599] AliMedium(0, "Air$", 0, 0, diff --git a/EMCAL/AliEMCALTrack.cxx b/EMCAL/AliEMCALTrack.cxx index e293378c887..ce2098f1e65 100755 --- a/EMCAL/AliEMCALTrack.cxx +++ b/EMCAL/AliEMCALTrack.cxx @@ -30,7 +30,6 @@ #include "TVector3.h" #include "AliLog.h" -#include "AliTracker.h" #include "AliESDtrack.h" #include "AliEMCALTrack.h" @@ -165,25 +164,6 @@ Int_t AliEMCALTrack::Compare(const TObject *obj) const // //------------------------------------------------------------------------------ // -Double_t AliEMCALTrack::GetBz() const -{ - // - // Returns Z-component of the magnetic field in kG. - // In case it B is not constant, its value is returned - // at the current position of the track (local X,Y,Z) - // - - // if magnetic field is constant... - if (AliTracker::UniformField()) return AliTracker::GetBz(); - - // ...else: - Double_t r[3]; - GetXYZ(r); - return AliTracker::GetBz(r); -} -// -//------------------------------------------------------------------------------ -// Bool_t AliEMCALTrack::PropagateTo(Double_t xk, Double_t d, Double_t x0) { // diff --git a/EMCAL/AliEMCALTrack.h b/EMCAL/AliEMCALTrack.h index 947339f797a..fa92de7bf4b 100755 --- a/EMCAL/AliEMCALTrack.h +++ b/EMCAL/AliEMCALTrack.h @@ -31,8 +31,6 @@ public: AliEMCALTrack& operator=(const AliEMCALTrack &t); Int_t Compare(const TObject *o) const; - - Double_t GetBz() const; Int_t GetClusterIndex() const {return fClusterIndex;} Double_t GetClusterDist() const {return fClusterDist;} Double_t GetMass() const {return fMass;} diff --git a/EMCAL/beamtest07/Rec.C b/EMCAL/beamtest07/Rec.C index 451654139bc..2a53633c091 100644 --- a/EMCAL/beamtest07/Rec.C +++ b/EMCAL/beamtest07/Rec.C @@ -11,8 +11,6 @@ void Rec(TString file="/scratch/alicehp2/commun/testbeam07/LHC07a_EMCAL/00000019 AliCDBManager::Instance()->SetSpecificStorage("EMCAL/Calib/Data","local://$ALICE_ROOT/EMCAL/beamtest07/"); //AliLog::SetGlobalDebugLevel(2); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - AliTracker::SetFieldMap(field,kFALSE); AliReconstruction rec ; rec.SetOption("EMCAL","OldRCUFormat"); diff --git a/EMCAL/jetfinder/AliEMCALJetFinder.cxx b/EMCAL/jetfinder/AliEMCALJetFinder.cxx index 4869ed3fd05..2f7478bb5e3 100644 --- a/EMCAL/jetfinder/AliEMCALJetFinder.cxx +++ b/EMCAL/jetfinder/AliEMCALJetFinder.cxx @@ -48,7 +48,6 @@ #include "AliEMCALJetFinder.h" #include "AliHeader.h" #include "AliMagF.h" -#include "AliMagFCM.h" #include "AliRun.h" #include "AliGenerator.h" #include "AliRunLoader.h" @@ -1654,7 +1653,7 @@ Float_t AliEMCALJetFinder::PropagatePhi(Float_t pt, Float_t charge, Bool_t& curl // static Float_t b = 0.0, rEMCAL = -1.0; // Get field in kGS - b = gAlice->Field()->SolenoidField(); + b = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->SolenoidField(); // Get EMCAL radius in cm rEMCAL = AliEMCALGeometry::GetInstance()->GetIPDistance(); Float_t dPhi = 0.; diff --git a/EMCAL/jetfinder/AliEMCALJetFinderAlgo.cxx b/EMCAL/jetfinder/AliEMCALJetFinderAlgo.cxx index 16a3ec2bc10..e63feea2f71 100644 --- a/EMCAL/jetfinder/AliEMCALJetFinderAlgo.cxx +++ b/EMCAL/jetfinder/AliEMCALJetFinderAlgo.cxx @@ -94,7 +94,7 @@ Float_t AliEMCALJetFinderAlgo::PropagatePhi(Float_t pt, Float_t charge, Bool_t& Float_t b = 0.0, rEMCAL = -1.0; if(rEMCAL<0) { - b = gAlice->Field()->SolenoidField(); + b = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->SolenoidField(); rEMCAL = AliEMCALGeometry::GetInstance()->GetIPDistance(); } Float_t dPhi = 0.; diff --git a/EMCAL/jetfinder/AliEMCALJetFinderInputSimPrep.cxx b/EMCAL/jetfinder/AliEMCALJetFinderInputSimPrep.cxx index 6a0973d0ba2..ad08fb6d1d0 100644 --- a/EMCAL/jetfinder/AliEMCALJetFinderInputSimPrep.cxx +++ b/EMCAL/jetfinder/AliEMCALJetFinderInputSimPrep.cxx @@ -272,8 +272,8 @@ void AliEMCALJetFinderInputSimPrep::FillTracks() } } - if (gAlice && gAlice->Field()) - bfield = gAlice->Field()->SolenoidField(); + if (gAlice && ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())) + bfield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->SolenoidField(); else bfield = 0.4; rEMCAL = AliEMCALGeometry::GetInstance()->GetIPDistance(); diff --git a/EMCAL/macros/Config.C b/EMCAL/macros/Config.C index 228e40a8d79..4868042b625 100755 --- a/EMCAL/macros/Config.C +++ b/EMCAL/macros/Config.C @@ -17,7 +17,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -152,9 +152,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 0; Int_t iDIPO = 0; diff --git a/EMCAL/macros/TestEMCALReconstruction.C b/EMCAL/macros/TestEMCALReconstruction.C index 683e4b3b0c2..782cde17743 100644 --- a/EMCAL/macros/TestEMCALReconstruction.C +++ b/EMCAL/macros/TestEMCALReconstruction.C @@ -24,11 +24,6 @@ void TestEMCALReconstruction(Int_t nev =-1) { //rec.SetInput("raw.root"); //rec.SetRunQA(":"); - // **** The field map settings must be the same as in Config.C ! - AliMagFMaps *field=new AliMagFMaps("Maps","Maps",2,1.,10.,AliMagFMaps::k5kG); - Bool_t uniform=kFALSE; - AliTracker::SetFieldMap(field,uniform); - TStopwatch timer; timer.Start(); diff --git a/EVE/EveBase/AliEveEventManager.cxx b/EVE/EveBase/AliEveEventManager.cxx index 2e487cabf29..6dc80cd58e8 100644 --- a/EVE/EveBase/AliEveEventManager.cxx +++ b/EVE/EveBase/AliEveEventManager.cxx @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include #include @@ -77,8 +77,6 @@ TString AliEveEventManager::fgAODFileName("AliAOD.root"); TString AliEveEventManager::fgRawFileName("raw.root"); TString AliEveEventManager::fgCdbUri("local://$ALICE_ROOT"); -AliMagF* AliEveEventManager::fgMagField = 0; - TList* AliEveEventManager::fgAODfriends = 0; AliEveEventManager* AliEveEventManager::fgMaster = 0; @@ -944,33 +942,6 @@ AliRawReader* AliEveEventManager::AssertRawReader() return fgCurrent->fRawReader; } -AliMagF* AliEveEventManager::AssertMagField() -{ - // Make sure AliMagF is initialized and returns it. - // Run-loader must be initialized to get the correct magnetic field! - // Throws exception in case magnetic field is not available. - // Static utility for macros. - - // !!!! This should be fixed ... get field also in some other way, - // not only via run-loader. - - static const TEveException kEH("AliEveEventManager::AssertMagField "); - - if (fgMagField == 0) - { - if (fgMaster && fgMaster->fRunLoader && fgMaster->fRunLoader->GetAliRun()) - { - ::Info(kEH, "Retrieving magnetic field from AliRun."); - fgMagField = fgMaster->fRunLoader->GetAliRun()->Field(); - } - else - { - ::Warning(kEH, "Instantiating default magnetic field (5kG)."); - fgMagField = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - } - } - return fgMagField; -} TGeoManager* AliEveEventManager::AssertGeometry() { diff --git a/EVE/EveBase/AliEveEventManager.h b/EVE/EveBase/AliEveEventManager.h index f79842a6117..9a5a47a34a5 100644 --- a/EVE/EveBase/AliEveEventManager.h +++ b/EVE/EveBase/AliEveEventManager.h @@ -90,8 +90,6 @@ public: static AliAODEvent* AssertAOD(); static AliRawReader* AssertRawReader(); - static AliMagF* AssertMagField(); - static TGeoManager* AssertGeometry(); static AliEveEventManager* AddDependentManager(const TString& name, const TString& path); @@ -161,8 +159,6 @@ protected: static Bool_t fgAssertAOD; // Global flag specifying if AODEvent must be asserted during opening of the event-data. static Bool_t fgAssertRaw; // Global flag specifying if raw-data presence must be asserted during opening of the event-data. - static AliMagF *fgMagField; // Global pointer to magnetic field. - static TList *fgAODfriends; // Global list of AOD friend names to be attached during opening of the event-data (empty by default). private: diff --git a/EVE/EveDet/AliEveMUONTrack.cxx b/EVE/EveDet/AliEveMUONTrack.cxx index 20ca3c75598..d157f97a590 100644 --- a/EVE/EveDet/AliEveMUONTrack.cxx +++ b/EVE/EveDet/AliEveMUONTrack.cxx @@ -12,7 +12,6 @@ #include #include -#include #include #include #include @@ -28,10 +27,11 @@ #include #include -#include -#include +#include #include #include +#include +#include #include @@ -45,7 +45,6 @@ ClassImp(AliEveMUONTrack) -AliMagF* AliEveMUONTrack::fgFieldMap = 0; //______________________________________________________________________________ AliEveMUONTrack::AliEveMUONTrack(TEveRecTrack* t, TEveTrackPropagator* rs) : @@ -62,9 +61,6 @@ AliEveMUONTrack::AliEveMUONTrack(TEveRecTrack* t, TEveTrackPropagator* rs) : // // constructor // - - if (fgFieldMap == 0) - fgFieldMap = AliEveEventManager::AssertMagField(); } //______________________________________________________________________________ @@ -813,37 +809,6 @@ void AliEveMUONTrack::Propagate(Float_t *xr, Float_t *yr, Float_t *zr, Int_t i1, } -//______________________________________________________________________________ -void AliEveMUONTrack::GetField(Double_t *position, Double_t *field) -{ - // - // returns field components at position, for a give field map - // - - /// interface for arguments in double precision (Why ? ChF) - Float_t x[3], b[3]; - - x[0] = position[0]; x[1] = position[1]; x[2] = position[2]; - - if (fgFieldMap) { - fgFieldMap->Field(x,b); - } - else { - AliWarning("No field map"); - field[0] = field[1] = field[2] = 0.0; - return; - } - - // force components - //b[1] = 0.0; - //b[2] = 0.0; - - field[0] = b[0]; field[1] = b[1]; field[2] = b[2]; - - return; - -} - //______________________________________________________________________________ void AliEveMUONTrack::OneStepRungekutta(Double_t charge, Double_t step, Double_t* vect, Double_t* vout) @@ -922,8 +887,7 @@ void AliEveMUONTrack::OneStepRungekutta(Double_t charge, Double_t step, rest = step - tl; if (TMath::Abs(h) > TMath::Abs(rest)) h = rest; //cmodif: call gufld(vout,f) changed into: - - GetField(vout,f); + TGeoGlobalMagField::Instance()->Field(vout,f); // * // * start of integration @@ -967,7 +931,7 @@ void AliEveMUONTrack::OneStepRungekutta(Double_t charge, Double_t step, xyzt[2] = zt; //cmodif: call gufld(xyzt,f) changed into: - GetField(xyzt,f); + TGeoGlobalMagField::Instance()->Field(xyzt,f); at = a + secxs[0]; bt = b + secys[0]; @@ -1004,7 +968,7 @@ void AliEveMUONTrack::OneStepRungekutta(Double_t charge, Double_t step, xyzt[2] = zt; //cmodif: call gufld(xyzt,f) changed into: - GetField(xyzt,f); + TGeoGlobalMagField::Instance()->Field(xyzt,f); z = z + (c + (seczs[0] + seczs[1] + seczs[2]) * kthird) * h; y = y + (b + (secys[0] + secys[1] + secys[2]) * kthird) * h; diff --git a/EVE/EveDet/AliEveMUONTrack.h b/EVE/EveDet/AliEveMUONTrack.h index 4092c9bb501..e4729d5b33c 100644 --- a/EVE/EveDet/AliEveMUONTrack.h +++ b/EVE/EveDet/AliEveMUONTrack.h @@ -37,7 +37,6 @@ class AliEveMUONTrack: public TEveTrack void MakeESDTrack(AliESDMuonTrack *mtrack); void MakeMCTrack(TParticle *part); void MakeRefTrack(AliMUONTrack *mtrack); - void GetField(Double_t *position, Double_t *field); void Propagate(Float_t *xr, Float_t *yr, Float_t *zr, Int_t i1, Int_t i2); void OneStepRungekutta(Double_t charge, Double_t step, Double_t* vect, Double_t* vout); @@ -71,8 +70,6 @@ class AliEveMUONTrack: public TEveTrack Bool_t fIsMCTrack; // track from Kinematics.root Bool_t fIsRefTrack; // track from TrackRefs.root - static AliMagF *fgFieldMap; // pointer to the magnetic field map - ClassDef(AliEveMUONTrack, 0); // Produce TEveUtil:TEveTrack from AliMUONTrack }; diff --git a/EVE/alice-macros/MUON_displayData.C b/EVE/alice-macros/MUON_displayData.C index ea09a82fd1d..185338fdf64 100644 --- a/EVE/alice-macros/MUON_displayData.C +++ b/EVE/alice-macros/MUON_displayData.C @@ -15,8 +15,6 @@ AliEveMUONData *g_muon_data = 0; Int_t g_currentEvent = -1; Bool_t g_fromRaw = kFALSE; -AliMagFMaps *g_field = 0; - void MUON_displayData(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t clustersFromESD = kTRUE) { // @@ -27,12 +25,13 @@ void MUON_displayData(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t if (!AliMpSegmentation::Instance()) AliMpCDB::LoadMpSegmentation(); if (!AliMpDDLStore::Instance()) AliMpCDB::LoadDDLStore(); - if (g_field == 0) { + if (!TGeoGlobalMagField::Instance()->GetField()) { printf("Loading field map...\n"); - g_field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(g_field, kFALSE); - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); } + // set the magnetic field for track extrapolations + AliMUONTrackExtrap::SetField(); TTree* dt = 0; TTree* ct = 0; diff --git a/EVE/alice-macros/MUON_displaySimu.C b/EVE/alice-macros/MUON_displaySimu.C index abd20375f04..3c8e74ff8b5 100644 --- a/EVE/alice-macros/MUON_displaySimu.C +++ b/EVE/alice-macros/MUON_displaySimu.C @@ -15,7 +15,6 @@ AliEveMUONData *g_muon_data = 0; Int_t g_currentEvent = -1; Bool_t g_fromRaw = kFALSE; -AliMagFMaps *g_field = 0; void MUON_displaySimu(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t clustersFromESD = kTRUE) { @@ -27,12 +26,13 @@ void MUON_displaySimu(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t if (!AliMpSegmentation::Instance()) AliMpCDB::LoadMpSegmentation(); if (!AliMpDDLStore::Instance()) AliMpCDB::LoadDDLStore(); - if (g_field == 0) { + if (!TGeoGlobalMagField::Instance()->GetField()) { printf("Loading field map...\n"); - g_field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(g_field, kFALSE); - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); } + // set the magnetic field for track extrapolations + AliMUONTrackExtrap::SetField(); TTree* dt = 0; TTree* ct = 0; diff --git a/EVE/alice-macros/kine_tracks.C b/EVE/alice-macros/kine_tracks.C index 902cc680c02..3f381538210 100644 --- a/EVE/alice-macros/kine_tracks.C +++ b/EVE/alice-macros/kine_tracks.C @@ -30,17 +30,8 @@ kine_tracks(Double_t min_pt = 0, Double_t min_p = 0, TEveTrackList* cont = new TEveTrackList("Kine Tracks"); cont->SetMainColor(3); TEveTrackPropagator* rnrStyle = cont->GetPropagator(); - Float_t mag_field = 0; - if (gAlice && gAlice->Field()) - { - // !!! Watch the '-', apparently different sign convention then for ESD. - mag_field = -0.1*gAlice->Field()->SolenoidField(); - } - else - { - Warning("kine_tracks.C", "Could not determine magnetic field from gAlice - using zero."); - } - rnrStyle->SetMagField(mag_field); + AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + rnrStyle->SetMagField(fld ? -0.1*fld->SolenoidField() : 0); gEve->AddElement(cont); Int_t count = 0; @@ -229,7 +220,8 @@ kine_track(Int_t label, TEveTrackPropagator* rnrStyle = tlist->GetPropagator(); // !!! Watch the '-', apparently different sign convention then for ESD. - rnrStyle->SetMagField( -0.1*gAlice->Field()->SolenoidField() ); + AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + rnrStyle->SetMagField( fld ? -0.1*fld->SolenoidField() : 0 ); char tooltip[1000]; sprintf(tooltip,"Ndaughters=%d", p->GetNDaughters()); tlist->SetTitle(tooltip); diff --git a/EVE/alice-macros/trd_qaRec.C b/EVE/alice-macros/trd_qaRec.C index 2d085304350..312a40ba3de 100644 --- a/EVE/alice-macros/trd_qaRec.C +++ b/EVE/alice-macros/trd_qaRec.C @@ -16,8 +16,6 @@ void trd_qaRec() cdb->SetDefaultStorage("local://$ALICE_ROOT"); cdb->SetRun(0); AliEveEventManager::AssertGeometry(); - AliMagFMaps *field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kTRUE); AliTRDReconstructor *reco = new AliTRDReconstructor(); reco->SetRecoParam(AliTRDrecoParam::GetLowFluxParam()); @@ -41,4 +39,4 @@ void trd_qaRec() } gEve->AddElement(tracks); gEve->Redraw3D(); -} \ No newline at end of file +} diff --git a/FMD/AliFMD.cxx b/FMD/AliFMD.cxx index 8e778889eba..37a28200b66 100644 --- a/FMD/AliFMD.cxx +++ b/FMD/AliFMD.cxx @@ -84,14 +84,15 @@ // These files are not in the same directory, so there's no reason to // ask the preprocessor to search in the current directory for these // files by including them with `#include "..."' -#include // __CMATH__ +#include // ROOT_TBrowser #include // ROOT_TClonesArray +#include // ROOT_TGeoGlobalMagField +#include // ROOT_TGeoManager #include // ROOT_TRotMatrix #include // ROOT_TTree -#include // ROOT_TBrowser -#include // ROOT_TVirtualMC #include // ROOT_TVector2 -#include // ROOT_TGeoManager +#include // ROOT_TVirtualMC +#include // __CMATH__ #include // ALIRUNDIGITIZER_H #include // ALILOADER_H @@ -264,8 +265,8 @@ void AliFMD::CreateMaterials() Double_t density = 0; Double_t radiationLength = 0; Double_t absorbtionLength = 999; - Int_t fieldType = gAlice->Field()->Integ(); // Field type - Double_t maxField = gAlice->Field()->Max(); // Field max. + Int_t fieldType = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); // Field type + Double_t maxField = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Field max. Double_t maxBending = 0; // Max Angle Double_t maxStepSize = 0.001; // Max step size Double_t maxEnergyLoss = 1; // Max Delta E diff --git a/FMD/Config.C b/FMD/Config.C index 8e4105e328e..2e19aebfd68 100644 --- a/FMD/Config.C +++ b/FMD/Config.C @@ -151,13 +151,6 @@ enum Rad_t { kNoGluonRadiation // }; -//____________________________________________________________________ -enum Mag_t { - k2kG, // - k4kG, // - k5kG // -}; - //____________________________________________________________________ enum MC_t { kFLUKA, @@ -188,7 +181,7 @@ Config() // EG_t eg = kFMD2Flat; Geo_t geo = kNoHoles; Rad_t rad = kGluonRadiation; - Mag_t mag = k5kG; + AliMagF::BMap_t mag = AliMagF::k5kG; Int_t seed = 12345; //Set 0 to use the current time MC_t mc = kGEANT3TGEO; @@ -373,10 +366,12 @@ Config() //__________________________________________________________________ // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); - gAlice->SetField(field); + TFile* magF = TFile::Open("mag.root", "RECREATE"); field->Write("mag"); magF->Close(); diff --git a/FMD/scripts/DummyConfig.C b/FMD/scripts/DummyConfig.C index fd66eaca8e9..a1f6a6d118b 100644 --- a/FMD/scripts/DummyConfig.C +++ b/FMD/scripts/DummyConfig.C @@ -150,13 +150,6 @@ enum Rad_t { kNoGluonRadiation // }; -//____________________________________________________________________ -enum Mag_t { - k2kG, // - k4kG, // - k5kG // -}; - //____________________________________________________________________ enum MC_t { kFLUKA, @@ -185,7 +178,7 @@ Config() // EG_t eg = kFMDFlat; Geo_t geo = kNoHoles; Rad_t rad = kGluonRadiation; - Mag_t mag = k5kG; + AliMagF::BMap_t mag = AliMagF::k5kG; Int_t seed = 12345; //Set 0 to use the current time MC_t mc = kGEANT3TGEO; @@ -372,9 +365,8 @@ Config() // Comments // switch (mag) { - case k2kG: comment = comment.Append(" | L3 field 0.2 T"); break; - case k4kG: comment = comment.Append(" | L3 field 0.4 T"); break; - case k5kG: comment = comment.Append(" | L3 field 0.5 T"); break; + case AliMagF::k2kG: comment = comment.Append(" | L3 field 0.2 T"); break; + case AliMagF::k5kG: comment = comment.Append(" | L3 field 0.5 T"); break; } switch (rad) { @@ -393,10 +385,11 @@ Config() //__________________________________________________________________ // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); - gAlice->SetField(field); //__________________________________________________________________ // diff --git a/FMD/scripts/pdc06_config.C b/FMD/scripts/pdc06_config.C index 5d174b15ed3..2ec6debd97a 100644 --- a/FMD/scripts/pdc06_config.C +++ b/FMD/scripts/pdc06_config.C @@ -44,7 +44,7 @@ #include "STEER/AliConfig.h" #include "PYTHIA6/AliDecayerPythia.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" @@ -101,12 +101,6 @@ enum YCut_t { kFull, kBarrel, kMuonArm }; -//--- Magnetic Field --- -enum Mag_t -{ - k2kG, k4kG, k5kG -}; - //--- Trigger config --- enum TrigConf_t { @@ -127,7 +121,7 @@ void ProcessEnvironmentVars(); static PDC06Proc_t proc = kPyOmegaPlus; static DecayHvFl_t decHvFl = kNature; static YCut_t ycut = kFull; -static Mag_t mag = k5kG; +static AliMagF::BMap_t mag = AliMagF::k5kG; static TrigConf_t trig = kDefaultPPTrig; // default pp trigger configuration static Int_t runNumber= 0; //========================// @@ -350,19 +344,16 @@ void Config() if (mag == k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (mag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); } else if (mag == k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } printf("\n \n Comment: %s \n \n", comment.Data()); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,mag); field->SetL3ConstField(0); //Using const. field in the barrel - rl->CdGAFile(); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); Int_t iABSO = 1; Int_t iCRT = 0; diff --git a/GRP/UpdateCDBGRPEntryMC.C b/GRP/UpdateCDBGRPEntryMC.C index 9e66496a0c8..0d5cb620df2 100644 --- a/GRP/UpdateCDBGRPEntryMC.C +++ b/GRP/UpdateCDBGRPEntryMC.C @@ -128,7 +128,7 @@ TString ParseConfig(char * option) while (getline(in, line)) { sline = line ; sline.ReplaceAll(" ", "") ; - if (sline.Contains("AliMagFMaps*field=newAliMagFMaps(")) { + if (sline.Contains("AliMagF*field=newAliMagF(")) { sarg = sline(sline.Last(',')+1, sline.Last(')')-sline.Last(',')-1) ; break ; } @@ -143,8 +143,6 @@ TString ParseConfig(char * option) rv = "30000" ; else if (sarg == "k2kG") rv = "12000" ; - else if (sarg == "k4kG") - rv = "24000"; break ; } } diff --git a/HLT/ITS/AliHLTITStracker.cxx b/HLT/ITS/AliHLTITStracker.cxx index 711ef0fc1ad..567a5f6bde6 100644 --- a/HLT/ITS/AliHLTITStracker.cxx +++ b/HLT/ITS/AliHLTITStracker.cxx @@ -134,7 +134,7 @@ Int_t AliHLTITStracker::Clusters2Tracks(AliESDEvent *event) { fBestTrack.UpdateESDtrack(AliESDtrack::kITSin); { AliESDtrack *esdTrack =fBestTrack.GetESDtrack(); - Float_t r[3]={0.,0.,0.}; + Double_t r[3]={0.,0.,0.}; Double_t maxD=3.; esdTrack->RelateToVertex(event->GetVertex(),GetBz(r),maxD); } diff --git a/HLT/ITS/RunHLTITS.C b/HLT/ITS/RunHLTITS.C index e79c75d8e9c..8ea894e6cd2 100644 --- a/HLT/ITS/RunHLTITS.C +++ b/HLT/ITS/RunHLTITS.C @@ -30,7 +30,6 @@ #include "AliITStrackerV2.h" #include "AliRun.h" #include "AliESD.h" - #include "AliMagF.h" #include "AliGenEventHeader.h" #include "AliHLTITStrack.h" diff --git a/HLT/TPCLib/AliHLTTPCTransform.cxx b/HLT/TPCLib/AliHLTTPCTransform.cxx index d54f838dbed..3351b294434 100644 --- a/HLT/TPCLib/AliHLTTPCTransform.cxx +++ b/HLT/TPCLib/AliHLTTPCTransform.cxx @@ -16,10 +16,11 @@ #include #endif #ifdef use_root +#include #include -#include +#include #include -#include +#include #endif #include "AliHLTTPCLogging.h" @@ -971,11 +972,12 @@ Bool_t AliHLTTPCTransform::Init(AliRunLoader *runLoader) } fgVersion=kValiroot; - SetBFieldFactor((Double_t)runLoader->GetAliRun()->Field()->Factor()); - SetSolenoidBField(- - (Double_t)runLoader->GetAliRun()->Field()->SolenoidField()/ - (Double_t)runLoader->GetAliRun()->Field()->Factor() - ); + AliMagF* mag = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + double fc = mag ? mag->GetFactorSol() : 0; + double bz = mag ? -mag->SolenoidField() : 0; + if (fc!=0) bz/=fc; + SetBFieldFactor( fc ); + SetSolenoidBField( bz ); fgPadPitchWidthLow=param->GetInnerPadPitchWidth(); fgPadPitchWidthUp=param->GetOuterPadPitchWidth(); fgZWidth=param->GetZWidth(); @@ -1318,11 +1320,18 @@ Bool_t AliHLTTPCTransform::MakeInitFile(Char_t *rootfilename,Char_t *filename) } fgVersion=kValiroot; - SetBFieldFactor((Double_t)lgAlice->Field()->Factor()); - SetSolenoidBField(- - (Double_t)lgAlice->Field()->SolenoidField()/ - (Double_t)lgAlice->Field()->Factor() - ); + AliMagF* mag = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + double fc = mag ? mag->GetFactorSol() : 0; + double bz = mag ? -mag->SolenoidField() : 0; + if (fc!=0) bz/=fc; + SetBFieldFactor( fc ); + SetSolenoidBField( bz ); + + // SetBFieldFactor((Double_t)l((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Factor()); + // SetSolenoidBField(- + // (Double_t)l((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->SolenoidField()/ + // (Double_t)l((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Factor() + // ); fgPadPitchWidthLow=param->GetInnerPadPitchWidth(); fgPadPitchWidthUp=param->GetOuterPadPitchWidth(); fgZWidth=param->GetZWidth(); diff --git a/HLT/TPCLib/macros/activePadsTest.C b/HLT/TPCLib/macros/activePadsTest.C index a30db0618cd..7db0ea24996 100644 --- a/HLT/TPCLib/macros/activePadsTest.C +++ b/HLT/TPCLib/macros/activePadsTest.C @@ -153,8 +153,6 @@ void activePadsTest(const char* input="./"){ rec.SetRunTracking(""); rec.SetLoadAlignFromCDB(0); rec.SetRunQA(":"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,kTRUE); //rec.SetFillESD("HLT"); rec.SetFillESD(""); rec.SetFillTriggerESD(false); diff --git a/HLT/TPCLib/macros/cal-hlt-tpc-offline.C b/HLT/TPCLib/macros/cal-hlt-tpc-offline.C index eb392c0b7f6..461e4ed5a40 100644 --- a/HLT/TPCLib/macros/cal-hlt-tpc-offline.C +++ b/HLT/TPCLib/macros/cal-hlt-tpc-offline.C @@ -138,8 +138,6 @@ void cal_hlt_tpc_offline(const char* input="./") rec.SetFillESD(""); rec.SetRunQA(":"); rec.SetRunGlobalQA(kFALSE); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,kFALSE); rec.SetFillTriggerESD(kFALSE); rec.SetOption("HLT", "libAliHLTUtil.so libAliHLTRCU.so libANALYSIS.so libANALYSISalice.so libTPCcalib.so libAliHLTTPC.so loglevel=0x7c chains=sink1"); rec.Run(); diff --git a/HLT/TPCLib/macros/histogramHandlerTest.C b/HLT/TPCLib/macros/histogramHandlerTest.C index de6d0107f40..076ccc7116f 100644 --- a/HLT/TPCLib/macros/histogramHandlerTest.C +++ b/HLT/TPCLib/macros/histogramHandlerTest.C @@ -140,8 +140,6 @@ void histogramHandlerTest(const char* input="./"){ rec.SetRunTracking(""); rec.SetLoadAlignFromCDB(0); rec.SetRunQA(":"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,kTRUE); //rec.SetFillESD("HLT"); rec.SetFillESD(""); rec.SetFillTriggerESD(false); diff --git a/HLT/TPCLib/macros/rec-hlt-tpc-ca.C b/HLT/TPCLib/macros/rec-hlt-tpc-ca.C index e48209e6cc4..111817bf0fc 100644 --- a/HLT/TPCLib/macros/rec-hlt-tpc-ca.C +++ b/HLT/TPCLib/macros/rec-hlt-tpc-ca.C @@ -113,8 +113,6 @@ void rec_hlt_tpc_ca(const char* input="./", bool bUseClusterFinderDecoder=true) rec.SetRunTracking(""); rec.SetLoadAlignFromCDB(0); rec.SetRunQA(":"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,kTRUE); rec.SetFillESD("HLT"); rec.SetOption("HLT", "libAliHLTUtil.so libAliHLTRCU.so libAliHLTTPC.so chains=sink1"); rec.Run(); diff --git a/HLT/TPCLib/macros/rec-hlt-tpc-offline.C b/HLT/TPCLib/macros/rec-hlt-tpc-offline.C index 17f562894b5..53a2de9fdb1 100644 --- a/HLT/TPCLib/macros/rec-hlt-tpc-offline.C +++ b/HLT/TPCLib/macros/rec-hlt-tpc-offline.C @@ -126,8 +126,6 @@ void rec_hlt_tpc_offline(const char* input="./") rec.SetFillESD(""); rec.SetRunQA(":"); rec.SetRunGlobalQA(kFALSE); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,kFALSE); rec.SetFillTriggerESD(kFALSE); rec.SetOption("HLT", "libAliHLTUtil.so libAliHLTRCU.so libAliHLTTPC.so loglevel=0x7c chains=sink1"); rec.Run(); diff --git a/HLT/TPCLib/macros/rec-hlt-tpc-tracks.C b/HLT/TPCLib/macros/rec-hlt-tpc-tracks.C index 541268e7af5..c0ea263e6ad 100644 --- a/HLT/TPCLib/macros/rec-hlt-tpc-tracks.C +++ b/HLT/TPCLib/macros/rec-hlt-tpc-tracks.C @@ -110,8 +110,6 @@ void rec_hlt_tpc_tracks(const char* input="./") rec.SetRunTracking(""); rec.SetLoadAlignFromCDB(0); rec.SetRunQA(":"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,kTRUE); rec.SetFillESD("HLT"); rec.SetFillTriggerESD(false); rec.SetOption("HLT", "libAliHLTUtil.so libAliHLTRCU.so libAliHLTTPC.so loglevel=0x7c chains=globalmerger"); diff --git a/HLT/TPCLib/macros/rec-hlt-tpc.C b/HLT/TPCLib/macros/rec-hlt-tpc.C index 7a789fe4125..25c451a9a37 100644 --- a/HLT/TPCLib/macros/rec-hlt-tpc.C +++ b/HLT/TPCLib/macros/rec-hlt-tpc.C @@ -268,8 +268,6 @@ void rec_hlt_tpc(const char* input="./", char* opt="decoder ESD") rec.SetRunTracking(""); rec.SetLoadAlignFromCDB(0); rec.SetRunQA(":"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,kTRUE); // NOTE: FillESD is a step in the AliReconstruction sequence and has // nothing to do with the fact that this macro writes ESD output diff --git a/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx b/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx index 16b4a6f8a15..05deaf9e07a 100644 --- a/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx +++ b/HLT/TPCLib/offline/AliHLTTPCOfflineClustererComponent.cxx @@ -31,7 +31,7 @@ #include "AliRawReaderMemory.h" #include "AliTPCclustererMI.h" #include "AliTPCClustersRow.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTracker.h" #include "AliDAQ.h" #include "TString.h" diff --git a/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerCalibComponent.cxx b/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerCalibComponent.cxx index b0af5dea0b3..d3f988b9657 100644 --- a/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerCalibComponent.cxx +++ b/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerCalibComponent.cxx @@ -30,7 +30,7 @@ #include "AliCDBManager.h" #include "AliCDBEntry.h" #include "AliGeomManager.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTPCReconstructor.h" #include "AliTPCParam.h" #include "AliTPCRecoParam.h" @@ -304,28 +304,30 @@ int AliHLTTPCOfflineTrackerCalibComponent::Configure(const char* arguments) // TODO: check if there is common functionality in the AliMagF* classes float SolenoidBz=((TObjString*)pTokens->At(i))->GetString().Atof(); if (SolenoidBz=3. && SolenoidBz<4.5) { + } /*else if (SolenoidBz>=3. && SolenoidBz<4.5) { map=AliMagFMaps::k4kG; factor=SolenoidBz/4; - } else { + } + else { map=AliMagFMaps::k5kG; factor=SolenoidBz/5; - } + } */ + // // the magnetic field map is not supposed to change // field initialization should be done once in the beginning // TODO: does the factor need adjustment? - const AliMagF* currentMap=AliTracker::GetFieldMap(); + const AliMagF* currentMap = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); if (!currentMap) { - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., map); - AliTracker::SetFieldMap(field,kFALSE); + AliMagF* field = new AliMagF("MagneticFieldMap", "BMap", 2, 1., 1., 10., map); + TGeoGlobalMagField::Instance()->SetField(field); HLTInfo("Solenoid Field set to: %f map %d", SolenoidBz, map); - } else if (currentMap->Map()!=map) { - HLTWarning("omitting request to override field map %s with %s", currentMap->Map(), map); + } else if (currentMap->GetMapType()!=map) { + HLTWarning("omitting request to override field map %d with %d", currentMap->GetMapType(), map); } continue; } else { diff --git a/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.cxx b/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.cxx index 2c801c7f76c..cc31a4347f4 100644 --- a/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.cxx +++ b/HLT/TPCLib/offline/AliHLTTPCOfflineTrackerComponent.cxx @@ -30,7 +30,7 @@ #include "AliCDBManager.h" #include "AliCDBEntry.h" #include "AliGeomManager.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTPCReconstructor.h" #include "AliTPCParam.h" #include "AliTPCRecoParam.h" @@ -296,28 +296,30 @@ int AliHLTTPCOfflineTrackerComponent::Configure(const char* arguments) // TODO: check if there is common functionality in the AliMagF* classes float SolenoidBz=((TObjString*)pTokens->At(i))->GetString().Atof(); if (SolenoidBz=3. && SolenoidBz<4.5) { + } /*else if (SolenoidBz>=3. && SolenoidBz<4.5) { map=AliMagFMaps::k4kG; factor=SolenoidBz/4; - } else { + } + else { map=AliMagFMaps::k5kG; factor=SolenoidBz/5; - } + } */ // the magnetic field map is not supposed to change // field initialization should be done once in the beginning // TODO: does the factor need adjustment? - const AliMagF* currentMap=AliTracker::GetFieldMap(); + const AliMagF* currentMap = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); if (!currentMap) { - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., map); - AliTracker::SetFieldMap(field,kFALSE); + AliMagF* field = new AliMagF("MagneticFieldMap", "BMap", 2, 1., 1., 10., map); + TGeoGlobalMagField::Instance()->SetField(field); HLTInfo("Solenoid Field set to: %f map %d", SolenoidBz, map); - } else if (currentMap->Map()!=map) { - HLTWarning("omitting request to override field map %s with %s", currentMap->Map(), map); + } else if (currentMap->GetMapType()!=map) { + HLTWarning("omitting request to override field map %d with %d", currentMap->GetMapType(), map); } continue; } else { diff --git a/HLT/TRD/AliHLTTRDTrackerComponent.cxx b/HLT/TRD/AliHLTTRDTrackerComponent.cxx index 5991104a77b..570e107d528 100644 --- a/HLT/TRD/AliHLTTRDTrackerComponent.cxx +++ b/HLT/TRD/AliHLTTRDTrackerComponent.cxx @@ -38,7 +38,7 @@ using namespace std; //#include "AliTRDtrackerHLT.h" #include "AliTRDtracker.h" #include "AliTRDCalibraFillHisto.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTRDcluster.h" #include "AliESDfriend.h" #include @@ -55,7 +55,6 @@ AliHLTTRDTrackerComponent::AliHLTTRDTrackerComponent() , fOutputPercentage(100) // By default we copy to the output exactly what we got as input , fStrorageDBpath("local://$ALICE_ROOT") , fCDB(NULL) - , fField(NULL) , fGeometryFileName("") , fGeometryFile(NULL) , fGeoManager(NULL) @@ -163,12 +162,6 @@ int AliHLTTRDTrackerComponent::DoInit( int argc, const char** argv ) return EINVAL; } - //init alifield map - temporarly fixed - should come from a DB - fField = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - if (fField) - AliTracker::SetFieldMap(fField,1); - else - HLTError("Unable to init the field"); fCDB = AliCDBManager::Instance(); if (!fCDB) @@ -224,9 +217,6 @@ int AliHLTTRDTrackerComponent::DoDeinit() { // Deinitialization of the component - delete fField; - fField = 0; - delete fTracker; fTracker = 0; diff --git a/HLT/TRD/AliHLTTRDTrackerComponent.h b/HLT/TRD/AliHLTTRDTrackerComponent.h index e4069d11ebb..fcd89c0dde3 100644 --- a/HLT/TRD/AliHLTTRDTrackerComponent.h +++ b/HLT/TRD/AliHLTTRDTrackerComponent.h @@ -17,7 +17,7 @@ class TFile; class TGeoManager; //class AliTRDtrackerHLT; class AliTRDtracker; -class AliMagFMaps; +class AliMagF; /** * @class AliHLTTRDTrackerComponent @@ -71,8 +71,6 @@ class AliHLTTRDTrackerComponent : public AliHLTProcessor string fStrorageDBpath; // Default path for OCDB AliCDBManager *fCDB; //! Pointer to OCDB - AliMagFMaps* fField; //! magn. field settings - string fGeometryFileName; // Path to geometry file TFile *fGeometryFile; //! // Pointer to the geom root file TGeoManager *fGeoManager; //! Pointer to geometry manager diff --git a/HLT/TRD/AliHLTTRDTrackerV1Component.cxx b/HLT/TRD/AliHLTTRDTrackerV1Component.cxx index 52cab27526e..204fba649fd 100644 --- a/HLT/TRD/AliHLTTRDTrackerV1Component.cxx +++ b/HLT/TRD/AliHLTTRDTrackerV1Component.cxx @@ -36,7 +36,7 @@ using namespace std; #include "AliGeomManager.h" #include "AliCDBManager.h" #include "AliESDEvent.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliESDfriend.h" #include "AliTRDcalibDB.h" @@ -62,7 +62,6 @@ AliHLTTRDTrackerV1Component::AliHLTTRDTrackerV1Component(): fOutputPercentage(100), // By default we copy to the output exactly what we got as input fStrorageDBpath("local://$ALICE_ROOT"), fCDB(NULL), - fField(NULL), fGeometryFileName(""), fUseHLTClusters(kFALSE), fUseHLTTracks(kFALSE), @@ -332,28 +331,26 @@ int AliHLTTRDTrackerV1Component::DoInit( int argc, const char** argv ) HLTWarning("No magnetic field switch stated. Use -magnetic_field_ON or -magnetic_field_OFF flag. Defaulting to OFF = NO MAGNETIC FIELD"); } - if (iMagneticField == 0) - { - // magnetic field OFF - fField = new AliMagFMaps("Maps","Maps", 2, 0., 10., 1); - HLTDebug("Magnetic field is OFF."); - } - - if (iMagneticField == 1) - { - // magnetic field ON - fField = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - HLTDebug("Magnetic field is ON."); - } - - if (fField == 0) - { - HLTError("Unable to init the field. Trouble at this point."); - return -1; - } - - // kTRUE sets the map uniform - AliTracker::SetFieldMap(fField,kTRUE); + if (!TGeoGlobalMagField::Instance()->IsLocked()) { + if (iMagneticField == 0) + { + // magnetic field OFF + AliMagF* field = new AliMagF("Maps","Maps",2,0.,0., 10.,AliMagF::k5kGUniform); + TGeoGlobalMagField::Instance()->SetField(field); + HLTDebug("Magnetic field is OFF."); + } + + if (iMagneticField == 1) + { + // magnetic field ON + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + HLTDebug("Magnetic field is ON."); + } + } + else { + HLTError("Magnetic field is already set and locked, cannot redefine it." ); + } // reconstruction parameters if (iRecoParamType < 0 || iRecoParamType > 2) @@ -443,9 +440,6 @@ int AliHLTTRDTrackerV1Component::DoInit( int argc, const char** argv ) int AliHLTTRDTrackerV1Component::DoDeinit() { // Deinitialization of the component - - delete fField; - fField = 0x0; fTracker->SetClustersOwner(kFALSE); delete fTracker; diff --git a/HLT/TRD/AliHLTTRDTrackerV1Component.h b/HLT/TRD/AliHLTTRDTrackerV1Component.h index f211b158d15..68bea65dc75 100644 --- a/HLT/TRD/AliHLTTRDTrackerV1Component.h +++ b/HLT/TRD/AliHLTTRDTrackerV1Component.h @@ -15,7 +15,7 @@ class TTree; class TGeoManager; class AliCDBManager; -class AliMagFMaps; +class AliMagF; class AliTRDtrackerV1; class AliTRDrecoParam; class AliTRDReconstructor; @@ -76,8 +76,6 @@ class AliHLTTRDTrackerV1Component : public AliHLTProcessor string fStrorageDBpath; // Default path for OCDB AliCDBManager *fCDB; //! Pointer to OCDB - AliMagFMaps* fField; //! magn. field settings - string fGeometryFileName; // Path to geometry file Bool_t fUseHLTClusters; Bool_t fUseHLTTracks; diff --git a/HLT/global/macros/rec-hlt-global-merger.C b/HLT/global/macros/rec-hlt-global-merger.C index f737662df44..18a3a5637e8 100644 --- a/HLT/global/macros/rec-hlt-global-merger.C +++ b/HLT/global/macros/rec-hlt-global-merger.C @@ -192,8 +192,6 @@ void rec_hlt_global_merger(const char* input="./", bool bUseClusterFinderDecoder rec.SetRunTracking(""); rec.SetLoadAlignFromCDB(0); rec.SetRunQA(":"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,kTRUE); rec.SetFillESD("HLT"); rec.SetOption("HLT", "libAliHLTUtil.so libAliHLTRCU.so libAliHLTTRD.so libAliHLTTPC.so libAliHLTGlobal.so chains=sink1"); rec.Run(); diff --git a/HLT/sim/AliHLTSimulation.cxx b/HLT/sim/AliHLTSimulation.cxx index e68d9c8fbc8..653d93c400e 100644 --- a/HLT/sim/AliHLTSimulation.cxx +++ b/HLT/sim/AliHLTSimulation.cxx @@ -154,8 +154,6 @@ int AliHLTSimulation::Init(AliRunLoader* pRunLoader, const char* options) } // init solenoid field - Bool_t bUniformField=kTRUE; - AliTracker::SetFieldMap(pRunLoader->GetAliRun()->Field(),bUniformField); Double_t solenoidBz=AliTracker::GetBz(); AliCDBManager* man = AliCDBManager::Instance(); if (man && man->IsDefaultStorageSet()) diff --git a/HMPID/AliHMPIDtrack.cxx b/HMPID/AliHMPIDtrack.cxx index a19b177aacf..16ff9751213 100644 --- a/HMPID/AliHMPIDtrack.cxx +++ b/HMPID/AliHMPIDtrack.cxx @@ -201,17 +201,7 @@ Bool_t AliHMPIDtrack::PropagateTo(const AliCluster3D *c) { } return kTRUE; }//PropagateTo() -//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -Double_t AliHMPIDtrack::GetBz() const { - // - // Arguments: none - // Returns: Bz component of the magnetic field (kG) - // - if (AliTracker::UniformField()) return AliTracker::GetBz(); - Double_t r[3]; GetXYZ(r); - return AliTracker::GetBz(r); -}//GetBz() -//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Bool_t AliHMPIDtrack::Intersect(Double_t pnt[3], Double_t norm[3], Double_t bz) const { //+++++++++++++++++++++++++++++++++++++++++ // Origin: K. Shileev (Kirill.Shileev@cern.ch) diff --git a/HMPID/AliHMPIDtrack.h b/HMPID/AliHMPIDtrack.h index df9fd9030e2..2ae5d483689 100644 --- a/HMPID/AliHMPIDtrack.h +++ b/HMPID/AliHMPIDtrack.h @@ -35,7 +35,6 @@ public: Int_t GetProlongation(Double_t xk, Double_t &y, Double_t &z); Bool_t Intersect(Double_t pnt[3], Double_t norm[3], Double_t bz) const; //HMPID method moved from AliExternalTrackParam Bool_t Intersect(AliHMPIDtrack *pTrk,Double_t pnt[3], Double_t norm[3]) ; //just for test - Double_t GetBz() const; Bool_t Update(const AliHMPIDCluster *pClu, Double_t chi2, Int_t index); protected: diff --git a/HMPID/AliHMPIDv1.cxx b/HMPID/AliHMPIDv1.cxx index 0a03db382d5..e1fb5fe8710 100644 --- a/HMPID/AliHMPIDv1.cxx +++ b/HMPID/AliHMPIDv1.cxx @@ -29,11 +29,12 @@ #include //CreateMaterials() #include //CreateMaterials() //#include //CreateGeometry() +#include //CreateMaterials() +#include //CreateMaterials() #include //DefineOpticalProperties() #include //DefineOpticalProperties() +#include #include //IsLostByFresnel() -#include //CreateMaterials() -#include //CreateMaterials() ClassImp(AliHMPIDv1) //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -66,8 +67,8 @@ void AliHMPIDv1::CreateMaterials() Int_t matId=0; //tmp material id number Int_t unsens = 0, sens=1; //sensitive or unsensitive medium - Int_t itgfld = gAlice->Field()->Integ(); //type of field intergration 0 no field -1 user in guswim 1 Runge Kutta 2 helix 3 const field along z - Float_t maxfld = gAlice->Field()->Max(); //max field value + Int_t itgfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); //type of field intergration 0 no field -1 user in guswim 1 Runge Kutta 2 helix 3 const field along z + Float_t maxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); //max field value Float_t tmaxfd = -10.0; //max deflection angle due to magnetic field in one step Float_t deemax = - 0.2; //max fractional energy loss in one step Float_t stemax = - 0.1; //mas step allowed [cm] diff --git a/HMPID/AliHMPIDv2.cxx b/HMPID/AliHMPIDv2.cxx index 94807477d3f..0e36b96a20e 100644 --- a/HMPID/AliHMPIDv2.cxx +++ b/HMPID/AliHMPIDv2.cxx @@ -29,13 +29,14 @@ #include //StepManager() #include //CreateMaterials() #include //CreateMaterials() +#include "AliGeomManager.h" //AddAlignableVolumes() +#include //CreateMaterials() +#include //CreateMaterials() #include //DefineOpticalProperties() #include //DefineOpticalProperties() -#include //IsLostByFresnel() -#include //CreateMaterials() -#include //CreateMaterials() +#include #include //AddAlignableVolumes() -#include "AliGeomManager.h" //AddAlignableVolumes() +#include //IsLostByFresnel() ClassImp(AliHMPIDv2) //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -95,8 +96,8 @@ void AliHMPIDv2::CreateMaterials() Int_t matId=0; //tmp material id number Int_t unsens = 0, sens=1; //sensitive or unsensitive medium - Int_t itgfld = gAlice->Field()->Integ(); //type of field intergration 0 no field -1 user in guswim 1 Runge Kutta 2 helix 3 const field along z - Float_t maxfld = gAlice->Field()->Max(); //max field value + Int_t itgfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); //type of field intergration 0 no field -1 user in guswim 1 Runge Kutta 2 helix 3 const field along z + Float_t maxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); //max field value Float_t tmaxfd = -10.0; //max deflection angle due to magnetic field in one step Float_t deemax = - 0.2; //max fractional energy loss in one step Float_t stemax = - 0.1; //max step allowed [cm] diff --git a/HMPID/AliHMPIDv3.cxx b/HMPID/AliHMPIDv3.cxx index 73cfeb6d10e..60bd7a78ba9 100644 --- a/HMPID/AliHMPIDv3.cxx +++ b/HMPID/AliHMPIDv3.cxx @@ -29,16 +29,17 @@ #include //StepManager() #include //CreateMaterials() #include //CreateMaterials() +#include "AliGeomManager.h" //AddAlignableVolumes() +#include //CreateMaterials() +#include //CreateMaterials() #include //DefineOpticalProperties() #include //DefineOpticalProperties() -#include //IsLostByFresnel() -#include //CreateMaterials() -#include //CreateMaterials() +#include //CradleBaseVolume() +#include #include //AddAlignableVolumes() #include //CradleBaseVolume() -#include //CradleBaseVolume() +#include //IsLostByFresnel() #include //StepManager() -#include "AliGeomManager.h" //AddAlignableVolumes() ClassImp(AliHMPIDv3) //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -99,8 +100,8 @@ void AliHMPIDv3::CreateMaterials() Int_t matId=0; //tmp material id number Int_t unsens = 0, sens=1; //sensitive or unsensitive medium - Int_t itgfld = gAlice->Field()->Integ(); //type of field intergration 0 no field -1 user in guswim 1 Runge Kutta 2 helix 3 const field along z - Float_t maxfld = gAlice->Field()->Max(); //max field value + Int_t itgfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); //type of field intergration 0 no field -1 user in guswim 1 Runge Kutta 2 helix 3 const field along z + Float_t maxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); //max field value Float_t tmaxfd = -10.0; //max deflection angle due to magnetic field in one step Float_t deemax = - 0.2; //max fractional energy loss in one step Float_t stemax = - 0.1; //max step allowed [cm] diff --git a/HMPID/Hconfig.C b/HMPID/Hconfig.C index 594ae588a50..f29efa535d0 100644 --- a/HMPID/Hconfig.C +++ b/HMPID/Hconfig.C @@ -692,13 +692,13 @@ void HmpConfig::WriteBatch() if(fRecB->GetState()){ - if(fMagBG->GetButton(kFld0)->GetState()) fprintf(fp," AliMagFMaps *field=new AliMagFMaps(\"Maps\",\"Maps\",2,0,10.,2);//no field\n"); - else if(fMagBG->GetButton(kFld2)->GetState()) fprintf(fp," AliMagFMaps *field=new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,0);//0.2 Tesla field\n"); - else if(fMagBG->GetButton(kFld4)->GetState()) fprintf(fp," AliMagFMaps *field=new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,1);//0.4 Tesla field\n"); - else if(fMagBG->GetButton(kFld5)->GetState()) fprintf(fp," AliMagFMaps *field=new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,2);//0.5 Tesla field\n"); - else if(fMagBG->GetButton(kFld_2)->GetState()) fprintf(fp," AliMagFMaps *field=new AliMagFMaps(\"Maps\",\"Maps\",2,-1,10,0);//-0.2 Tesla field\n"); - else if(fMagBG->GetButton(kFld_4)->GetState()) fprintf(fp," AliMagFMaps *field=new AliMagFMaps(\"Maps\",\"Maps\",2,-1,10,1);//-0.4 Tesla field\n"); - else if(fMagBG->GetButton(kFld_5)->GetState()) fprintf(fp," AliMagFMaps *field=new AliMagFMaps(\"Maps\",\"Maps\",2,-1,10,2);//-0.5 Tesla field\n"); + if(fMagBG->GetButton(kFld0)->GetState()) fprintf(fp," AliMagF *field=new AliMagF(\"Maps\",\"Maps\",2,0,1,10.,2);//no field\n"); + else if(fMagBG->GetButton(kFld2)->GetState()) fprintf(fp," AliMagF *field=new AliMagF(\"Maps\",\"Maps\",2,1,1,10,0);//0.2 Tesla field\n"); + else if(fMagBG->GetButton(kFld4)->GetState()) fprintf(fp," AliMagF *field=new AliMagF(\"Maps\",\"Maps\",2,1,1,10,1);//0.4 Tesla field\n"); + else if(fMagBG->GetButton(kFld5)->GetState()) fprintf(fp," AliMagF *field=new AliMagF(\"Maps\",\"Maps\",2,1,1,10,2);//0.5 Tesla field\n"); + else if(fMagBG->GetButton(kFld_2)->GetState()) fprintf(fp," AliMagF *field=new AliMagF(\"Maps\",\"Maps\",2,-1,1,10,0);//-0.2 Tesla field\n"); + else if(fMagBG->GetButton(kFld_4)->GetState()) fprintf(fp," AliMagF *field=new AliMagF(\"Maps\",\"Maps\",2,-1,1,10,1);//-0.4 Tesla field\n"); + else if(fMagBG->GetButton(kFld_5)->GetState()) fprintf(fp," AliMagF *field=new AliMagF(\"Maps\",\"Maps\",2,-1,1,10,2);//-0.5 Tesla field\n"); fprintf(fp," Bool_t uniform=kTRUE;\n"); fprintf(fp," AliTracker::SetFieldMap(field,uniform);\n\n"); @@ -797,13 +797,13 @@ void HmpConfig::WriteConfig() WritePhys(pF); //physics processes //Field - if(fMagBG->GetButton(kFld0)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,0,10,2)); //no field\n\n"); - else if(fMagBG->GetButton(kFld2)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,0));//0.2 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld4)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,1));//0.4 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld5)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,2));//0.5 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld_2)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,-1,10,0));//-0.2 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld_4)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,-1,10,1));//-0.4 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld_5)->GetState()) fprintf(pF," gAlice->SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,-1,10,2));//-0.5 Tesla field\n\n"); + if(fMagBG->GetButton(kFld0)->GetState()) fprintf(pF," gAlice->SetField(new AliMagF(\"Maps\",\"Maps\",2,0,0,10,2)); //no field\n\n"); + else if(fMagBG->GetButton(kFld2)->GetState()) fprintf(pF," gAlice->SetField(new AliMagF(\"Maps\",\"Maps\",2,1,1,10,0));//0.2 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld4)->GetState()) fprintf(pF," gAlice->SetField(new AliMagF(\"Maps\",\"Maps\",2,1,1,10,1));//0.4 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld5)->GetState()) fprintf(pF," gAlice->SetField(new AliMagF(\"Maps\",\"Maps\",2,1,1,10,2));//0.5 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld_2)->GetState()) fprintf(pF," gAlice->SetField(new AliMagF(\"Maps\",\"Maps\",2,-1,1,10,0));//-0.2 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld_4)->GetState()) fprintf(pF," gAlice->SetField(new AliMagF(\"Maps\",\"Maps\",2,-1,1,10,1));//-0.4 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld_5)->GetState()) fprintf(pF," gAlice->SetField(new AliMagF(\"Maps\",\"Maps\",2,-1,1,10,2));//-0.5 Tesla field\n\n"); fprintf(pF," pAL->CdGAFile();\n\n"); //???? //Generator diff --git a/HMPID/Hnew.C b/HMPID/Hnew.C index 47b394f4cb7..335abb10684 100644 --- a/HMPID/Hnew.C +++ b/HMPID/Hnew.C @@ -231,13 +231,13 @@ void HmpGui::CreateConfigC() f<SetExternalDecayer(pDecayer);\n\n"); //Field - if(fMagBG->GetButton(kFld0)->GetState()) f<SetField(new AliMagFMaps(\"Maps\",\"Maps\",0,1,10,0)); //no field\n\n"); - else if(fMagBG->GetButton(kFld2)->GetState()) f<SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,0));//0.2 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld4)->GetState()) f<SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,1));//0.4 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld5)->GetState()) f<SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,1,10,2));//0.5 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld_2)->GetState()) f<SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,-1,10,0));//-0.2 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld_4)->GetState()) f<SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,-1,10,1));//-0.4 Tesla field\n\n"); - else if(fMagBG->GetButton(kFld_5)->GetState()) f<SetField(new AliMagFMaps(\"Maps\",\"Maps\",2,-1,10,2));//-0.5 Tesla field\n\n"); + if(fMagBG->GetButton(kFld0)->GetState()) f<SetField(new AliMagF(\"Maps\",\"Maps\",0,1,1,10,0)); //no field\n\n"); + else if(fMagBG->GetButton(kFld2)->GetState()) f<SetField(new AliMagF(\"Maps\",\"Maps\",2,1,1,10,0));//0.2 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld4)->GetState()) f<SetField(new AliMagF(\"Maps\",\"Maps\",2,1,1,10,1));//0.4 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld5)->GetState()) f<SetField(new AliMagF(\"Maps\",\"Maps\",2,1,1,10,2));//0.5 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld_2)->GetState()) f<SetField(new AliMagF(\"Maps\",\"Maps\",2,-1,1,10,0));//-0.2 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld_4)->GetState()) f<SetField(new AliMagF(\"Maps\",\"Maps\",2,-1,1,10,1));//-0.4 Tesla field\n\n"); + else if(fMagBG->GetButton(kFld_5)->GetState()) f<SetField(new AliMagF(\"Maps\",\"Maps\",2,-1,1,10,2));//-0.5 Tesla field\n\n"); if(fProBG->GetButton(kDCAY)->GetState()) f<SetProcess(\"DCAY\",1); ");else f<SetProcess(\"DCAY\",0); "); if(fProBG->GetButton(kPAIR)->GetState()) f<SetProcess(\"PAIR\",1); ");else f<SetProcess(\"PAIR\",0); "); diff --git a/ITS/AliCascadeFindVertices.C b/ITS/AliCascadeFindVertices.C index b16ba769b3e..a1e070accef 100644 --- a/ITS/AliCascadeFindVertices.C +++ b/ITS/AliCascadeFindVertices.C @@ -6,7 +6,6 @@ #include "TStopwatch.h" #include "AliRun.h" - #include "AliMagF.h" #include "AliESD.h" #include "AliTracker.h" #include "AliRunLoader.h" diff --git a/ITS/AliITSFindTracksANN.C b/ITS/AliITSFindTracksANN.C index 861f2fc6fc6..db2254cc358 100644 --- a/ITS/AliITSFindTracksANN.C +++ b/ITS/AliITSFindTracksANN.C @@ -5,7 +5,6 @@ #include "TStopwatch.h" #include "AliRun.h" - #include "AliMagF.h" #include "AliRunLoader.h" #include "AliTPCLoader.h" #include "AliITSLoader.h" diff --git a/ITS/AliITSFindTracksSA.C b/ITS/AliITSFindTracksSA.C index de55c1a6af0..89fc50dc36a 100644 --- a/ITS/AliITSFindTracksSA.C +++ b/ITS/AliITSFindTracksSA.C @@ -9,7 +9,6 @@ // #include "AliTPCLoader.h" #include "AliITSLoader.h" #include "TStopwatch.h" - #include "AliMagF.h" #endif Int_t AliITSFindTracksSA(Int_t evin=0,Int_t nevents=1,char *opt="onlyITS+6/6",const Char_t *clusterFileName="clusters.root", const Char_t *tracksFileName="ITS.TracksSA.root") { diff --git a/ITS/AliITSTrackV1.cxx b/ITS/AliITSTrackV1.cxx index 056c4f3d46b..7a6bb811f9b 100644 --- a/ITS/AliITSTrackV1.cxx +++ b/ITS/AliITSTrackV1.cxx @@ -65,7 +65,7 @@ AliITSTrackV1::AliITSTrackV1(Double_t fieldfactor) { //////////////////////////////////////// gets magnetic field factor //////////////////////////////// - // AliMagF * fieldPointer = gAlice->Field(); + // AliMagF * fieldPointer = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField()); // fFieldFactor =(Double_t)fieldPointer-> SolenoidField()/10/.2; fFieldFactor = fieldfactor; //cout<< " field factor = "<Field(); + // AliMagF * fieldPointer = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField()); // fFieldFactor =(Double_t)fieldPointer-> SolenoidField()/10/.2; fFieldFactor = fieldfactor; // cout<< " field factor dentro alitrack = "<Field(); - // fFieldFactor = (Double_t)fieldPointer->Factor(); - fFieldFactor =(Double_t)fieldPointer-> SolenoidField()/10/.2; + AliMagF * fieldPointer = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + fFieldFactor = fieldPointer ? fieldPointer->SolenoidField()/10/.2 : 0; // cout<< " field factor = "<GetEvent(evNumber); //modificato per gestire hbt - AliKalmanTrack::SetFieldMap(gAlice->Field()); - // cout<<" field = "<Field()->SolenoidField()<Get("75x40_100x60_150x60"); if (!digp) { cerr<<"TPC parameters have not been found !\n"; getchar();} diff --git a/ITS/AliITSsimulationSPD.cxx b/ITS/AliITSsimulationSPD.cxx index a7e3ee97ed0..eb6ec2108fe 100644 --- a/ITS/AliITSsimulationSPD.cxx +++ b/ITS/AliITSsimulationSPD.cxx @@ -18,6 +18,7 @@ $Id$ */ #include +#include #include #include #include "AliITS.h" @@ -145,10 +146,9 @@ Bool_t AliITSsimulationSPD::SetTanLorAngle(Double_t WeightHole) { } Double_t WeightEle=1.-WeightHole; AliITSSimuParam* simpar = fDetType->GetSimuParam(); - AliMagF *mf = gAlice->Field(); - Float_t pos[3]={0.,0.,0.}; - Float_t B[3]={0.,0.,0.}; - mf->Field(pos,B); + Double_t pos[3]={0.,0.,0.}; + Double_t B[3]={0.,0.,0.}; + TGeoGlobalMagField::Instance()->Field(pos,B); fTanLorAng = TMath::Tan(WeightHole*simpar->LorentzAngleHole(B[2]) + WeightEle*simpar->LorentzAngleElectron(B[2])); fTanLorAng*=-1.; // this only for the old geometry diff --git a/ITS/AliITStrackV2.cxx b/ITS/AliITStrackV2.cxx index 0fcfe39678b..1d2c3b64cf2 100644 --- a/ITS/AliITStrackV2.cxx +++ b/ITS/AliITStrackV2.cxx @@ -24,11 +24,11 @@ #include #include "AliCluster.h" -#include "AliTracker.h" #include "AliESDtrack.h" #include "AliESDVertex.h" #include "AliITSReconstructor.h" #include "AliITStrackV2.h" +#include "AliTracker.h" const Int_t AliITStrackV2::fgkWARN = 5; @@ -151,7 +151,7 @@ GetGlobalXYZat(Double_t xloc, Double_t &x, Double_t &y, Double_t &z) const { //This function returns a track position in the global system //------------------------------------------------------------------ Double_t r[3]; - Bool_t rc=GetXYZAt(xloc, AliTracker::GetBz(), r); + Bool_t rc=GetXYZAt(xloc, GetBz(), r); x=r[0]; y=r[1]; z=r[2]; return rc; } @@ -449,15 +449,6 @@ void AliITStrackV2::CookdEdx(Double_t low, Double_t up) { SetdEdx(dedx); } -Double_t AliITStrackV2::GetBz() const { - // - // returns Bz component of the magnetic field (kG) - // - if (AliTracker::UniformField()) return AliTracker::GetBz(); - Double_t r[3]; GetXYZ(r); - return AliTracker::GetBz(r); -} - //____________________________________________________________________________ Bool_t AliITStrackV2:: GetPhiZat(Double_t r, Double_t &phi, Double_t &z) const { diff --git a/ITS/AliITStrackV2.h b/ITS/AliITStrackV2.h index ddce1fc687c..62fb3e33e80 100644 --- a/ITS/AliITStrackV2.h +++ b/ITS/AliITStrackV2.h @@ -18,6 +18,7 @@ class AliESDtrack; class AliESDVertex; +class AliTracker; //_____________________________________________________________________________ class AliITStrackV2 : public AliKalmanTrack { @@ -90,7 +91,6 @@ public: Int_t GetExtraModule(Int_t ilayer) const {return fModule[AliITSgeomTGeo::kNLayers+ilayer];} protected: - Double_t GetBz() const ; Double_t fdEdx; // dE/dx static const Int_t fgkWARN; //! used for debugging purposes diff --git a/ITS/AliITStrackerMI.cxx b/ITS/AliITStrackerMI.cxx index 0e392310ae7..8490d38dc0d 100644 --- a/ITS/AliITStrackerMI.cxx +++ b/ITS/AliITStrackerMI.cxx @@ -744,7 +744,7 @@ Int_t AliITStrackerMI::RefitInward(AliESDEvent *event) { AliESDtrack *esdTrack =fTrackToFollow.GetESDtrack(); //printf(" %d\n",esdTrack->GetITSModuleIndex(0)); //esdTrack->UpdateTrackParams(&fTrackToFollow,AliESDtrack::kITSrefit); //original line - Float_t r[3]={0.,0.,0.}; + Double_t r[3]={0.,0.,0.}; Double_t maxD=3.; esdTrack->RelateToVertex(event->GetVertex(),GetBz(r),maxD); ntrk++; diff --git a/ITS/AliITStrackerV2.cxx b/ITS/AliITStrackerV2.cxx index e3896eaeefd..9a3fd95af3f 100644 --- a/ITS/AliITStrackerV2.cxx +++ b/ITS/AliITStrackerV2.cxx @@ -452,7 +452,7 @@ Int_t AliITStrackerV2::RefitInward(AliESDEvent *event) { if (fTrackToFollow.PropagateTo(3.,0.0028,65.19)) {//The beam pipe AliESDtrack *esdTrack =fTrackToFollow.GetESDtrack(); esdTrack->UpdateTrackParams(&fTrackToFollow,AliESDtrack::kITSrefit); - Float_t r[3]={0.,0.,0.}; + Double_t r[3]={0.,0.,0.}; Double_t maxD=3.; esdTrack->RelateToVertex(event->GetVertex(),GetBz(r),maxD); ntrk++; diff --git a/ITS/AliITSv11Geometry.cxx b/ITS/AliITSv11Geometry.cxx index 097055fdd23..b1a1e85b04c 100644 --- a/ITS/AliITSv11Geometry.cxx +++ b/ITS/AliITSv11Geometry.cxx @@ -968,8 +968,8 @@ void AliITSv11Geometry::CreateDefaultMaterials(){ itsFreon->SetTemperature(22.0*fgkCelsius); itsFreon->SetState(TGeoMaterial::kMatStateLiquid); // - // Int_t ifield = gAlice->Field()->Integ(); - // Float_t fieldm = gAlice->Field()->Max(); + // Int_t ifield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + // Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Float_t tmaxfd = 0.1;// 1.0;// Degree // Float_t stemax = 1.0;// cm diff --git a/ITS/AliITSv11GeometrySPD.cxx b/ITS/AliITSv11GeometrySPD.cxx index 66fa292bbfe..2844e4e0f33 100644 --- a/ITS/AliITSv11GeometrySPD.cxx +++ b/ITS/AliITSv11GeometrySPD.cxx @@ -69,14 +69,15 @@ #include // Root Geometry includes -#include -#include // contains TGeoTubeSeg +#include #include -#include -#include +#include #include +#include #include -#include +#include // contains TGeoTubeSeg +#include +#include // AliRoot includes #include "AliLog.h" @@ -273,8 +274,8 @@ Int_t AliITSv11GeometrySPD::CreateSPDCentralMaterials(Int_t &medOffset, TGeoMixture *mix; TGeoMedium *med; // - Int_t ifield = (gAlice->Field()->Integ()); - Double_t fieldm = (gAlice->Field()->Max()); + Int_t ifield = (((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ()); + Double_t fieldm = (((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max()); Double_t params[8] = {8 * 0.0}; params[1] = (Double_t) ifield; diff --git a/ITS/AliITSv11Hybrid.cxx b/ITS/AliITSv11Hybrid.cxx index 8cd7c4eb78e..3ec260d91b5 100644 --- a/ITS/AliITSv11Hybrid.cxx +++ b/ITS/AliITSv11Hybrid.cxx @@ -70,8 +70,8 @@ // Updates concerning the geometry: versioning system, new V11hybrid version, bug fixes (B.Nilsend and L. Gaudichet // - #include +#include #include #include #include @@ -5091,8 +5091,8 @@ void AliITSv11Hybrid::CreateMaterials(){ // Return: // none. - Int_t ifield = gAlice->Field()->Integ(); - Float_t fieldm = gAlice->Field()->Max(); + Int_t ifield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t tmaxfd = 0.1; // 1.0; // Degree Float_t stemax = 1.0; // cm diff --git a/ITS/AliITSvBeamTestITS04.cxx b/ITS/AliITSvBeamTestITS04.cxx index 9dd394fb0e5..076d08f3dd1 100644 --- a/ITS/AliITSvBeamTestITS04.cxx +++ b/ITS/AliITSvBeamTestITS04.cxx @@ -4,23 +4,25 @@ // Author: mercedes.lopez.noriega@cern.ch // //////////////////////////////////////////////////////// -#include +#include "AliITS.h" +#include "AliITSgeom.h" +#include "AliITShit.h" +#include "AliITSvBeamTestITS04.h" +#include "AliMC.h" +#include "AliMagF.h" +#include "AliRun.h" +#include "AliTrackReference.h" + +#include +#include +#include #include -#include #include #include -#include "AliRun.h" -#include "AliITSvBeamTestITS04.h" -#include +#include +#include #include -#include "AliITS.h" -#include "AliMagF.h" -#include "TVirtualMC.h" -#include "AliMC.h" -#include "AliTrackReference.h" -#include "AliITSgeom.h" -#include "AliITShit.h" const Int_t AliITSvBeamTestITS04::fgkNumberOfSPD = 4; const Int_t AliITSvBeamTestITS04::fgkNumberOfSDD = 2; @@ -139,8 +141,8 @@ void AliITSvBeamTestITS04::CreateMaterials(){ // Media defined here should correspond to the one defined in galice.cuts // This file is read in (AliMC*) fMCApp::Init() { ReadTransPar(); } // Create ITS materials - Int_t ifield = gAlice->Field()->Integ(); - Float_t fieldm = gAlice->Field()->Max(); + Int_t ifield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t tmaxfdSi = 0.1; Float_t stemaxSi = 0.0075; diff --git a/ITS/AliITSvPPRasymmFMD.cxx b/ITS/AliITSvPPRasymmFMD.cxx index 7de81b999c2..ba3267e8a4e 100644 --- a/ITS/AliITSvPPRasymmFMD.cxx +++ b/ITS/AliITSvPPRasymmFMD.cxx @@ -29,15 +29,16 @@ // See AliITSvPPRasymmFMD::StepManager(). -#include -#include -#include -#include #include #include -#include +#include +#include #include +#include +#include #include +#include +#include #include #include "AliITS.h" @@ -5285,8 +5286,8 @@ void AliITSvPPRasymmFMD::CreateMaterials(){ // Return: // none. - Int_t ifield = gAlice->Field()->Integ(); - Float_t fieldm = gAlice->Field()->Max(); + Int_t ifield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t tmaxfd = 0.1; // 1.0; // Degree Float_t stemax = 1.0; // cm diff --git a/ITS/AliITSvPPRcoarseasymm.cxx b/ITS/AliITSvPPRcoarseasymm.cxx index 931749c010a..69101c2961b 100644 --- a/ITS/AliITSvPPRcoarseasymm.cxx +++ b/ITS/AliITSvPPRcoarseasymm.cxx @@ -31,12 +31,13 @@ // // /////////////////////////////////////////////////////////////////////////////// #include +#include +#include #include #include #include #include #include -#include #include "AliMagF.h" #include "AliConst.h" @@ -899,8 +900,8 @@ void AliITSvPPRcoarseasymm::CreateMaterials(){ Float_t wsteel[4] = { .715,.18,.1,.005 }; - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // --- Define the various materials for GEANT --- diff --git a/ITS/AliITSvSDD03.cxx b/ITS/AliITSvSDD03.cxx index fe49cbcfe5b..2bde3773b69 100644 --- a/ITS/AliITSvSDD03.cxx +++ b/ITS/AliITSvSDD03.cxx @@ -22,10 +22,11 @@ // // ///////////////////////////////////////////////////////////////// +#include #include +#include #include #include -#include #include "AliMC.h" #include "AliRun.h" @@ -393,8 +394,8 @@ void AliITSvSDD03::CreateMaterials(){ Float_t deemaxAir = 0.1; // Fraction of particle's energy 0Field()->Integ(); - Float_t fieldm = gAlice->Field()->Max(); + Int_t ifield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // // AIR diff --git a/ITS/AliITSvSPD02.cxx b/ITS/AliITSvSPD02.cxx index dd42accaa3c..1e28e115a0f 100644 --- a/ITS/AliITSvSPD02.cxx +++ b/ITS/AliITSvSPD02.cxx @@ -15,10 +15,11 @@ /* $Id$ */ -#include -#include #include +#include +#include #include +#include #include #include "AliRun.h" @@ -349,8 +350,8 @@ void AliITSvSPD02::CreateMaterials2002(){ Float_t deemaxAir = 0.1; // Fraction of particle's energy 0Field()->Integ(); - Float_t fieldm = gAlice->Field()->Max(); + Int_t ifield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); AliMaterial(1,"AIR$",0.14610E+02,0.73000E+01,0.12050E-02, 0.30423E+05,0.99900E+03); diff --git a/ITS/AliITSvSSD03.cxx b/ITS/AliITSvSSD03.cxx index e2339ccdbe9..f793f900358 100644 --- a/ITS/AliITSvSSD03.cxx +++ b/ITS/AliITSvSSD03.cxx @@ -16,11 +16,12 @@ // Enrico Fragiacomo - 15/03/2004 // Geometry for the June 2003 SSD beam test -#include #include -#include -#include +#include #include +#include +#include +#include #include "AliRun.h" #include "AliMagF.h" @@ -329,8 +330,8 @@ void AliITSvSSD03::CreateMaterials2003(){ // none. ///////////////////////////////////////////////////////////////////////// - Int_t ifield = gAlice->Field()->Integ(); - Float_t fieldm = gAlice->Field()->Max(); + Int_t ifield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Scintillator CH Float_t ascin[2]={1.01,12.01}; diff --git a/ITS/ConfigSDD03.C b/ITS/ConfigSDD03.C index ae79a87b408..bb936c61f5c 100644 --- a/ITS/ConfigSDD03.C +++ b/ITS/ConfigSDD03.C @@ -12,9 +12,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" #include "STRUCT/AliBODY.h" -#include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" #include "STRUCT/AliDIPOv2.h" #include "STRUCT/AliHALL.h" diff --git a/ITS/ConfigSPD02.C b/ITS/ConfigSPD02.C index d07e20d0ed5..4402d958f35 100644 --- a/ITS/ConfigSPD02.C +++ b/ITS/ConfigSPD02.C @@ -12,9 +12,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" #include "STRUCT/AliBODY.h" -#include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" #include "STRUCT/AliDIPOv2.h" #include "STRUCT/AliHALL.h" diff --git a/ITS/ConfigSSD03.C b/ITS/ConfigSSD03.C index dc98a475a11..b7bc9d71c65 100644 --- a/ITS/ConfigSSD03.C +++ b/ITS/ConfigSSD03.C @@ -11,9 +11,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" #include "STRUCT/AliBODY.h" -#include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" #include "STRUCT/AliDIPOv2.h" #include "STRUCT/AliHALL.h" diff --git a/ITS/oldmacros/AliITSVertexerTracksTest2.C b/ITS/oldmacros/AliITSVertexerTracksTest2.C index 470909e541a..320855c40ac 100644 --- a/ITS/oldmacros/AliITSVertexerTracksTest2.C +++ b/ITS/oldmacros/AliITSVertexerTracksTest2.C @@ -42,7 +42,7 @@ void AliITSVertexerTracksTest2(Int_t evFirst=0,Int_t evLast=0, if(!gSystem->AccessPathName(galiceName,kFileExists)) { galice = new TFile(galiceName); gAlice = (AliRun*)galice->Get("gAlice"); - AliMagF *fiel = (AliMagF*)gAlice->Field(); + AliMagF *fiel = TGeoGlobalMagField::Instance()->GetField(); field=(Double_t)fiel->SolenoidField()/10.; AliKalmanTrack::SetConvConst(100/0.299792458/field); printf(" B = %3.1f read from gAlice and set\n",field); diff --git a/MONITOR/galice.C b/MONITOR/galice.C index 7794a22d045..adc0742a416 100644 --- a/MONITOR/galice.C +++ b/MONITOR/galice.C @@ -18,8 +18,7 @@ void Config() new TGeant3("C++ Interface to Geant3"); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k4kG); - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 0; Int_t iDIPO = 0; diff --git a/MONITOR/monitorGDC.cxx b/MONITOR/monitorGDC.cxx index d09f8827af5..924a5c1819a 100644 --- a/MONITOR/monitorGDC.cxx +++ b/MONITOR/monitorGDC.cxx @@ -53,8 +53,6 @@ #include #include "AliITSgeomTGeo.h" #include "AliITSgeom.h" -#include "AliMagF.h" -#include "AliMagFMaps.h" #endif //_____________________________________________________________________________ @@ -120,19 +118,14 @@ int main(int argc, char** argv) // Int_t sfield = 0; // switch ((Int_t)(AliHLTTransform::GetSolenoidField()+0.5)) { // case 2: - // sfield = AliMagFMaps::k2kG; - // break; - // case 4: - // sfield = AliMagFMaps::k4kG; + // sfield = AliMagF::k2kG; // break; // case 5: - // sfield = AliMagFMaps::k5kG; + // sfield = AliMagF::k5kG; // break; // default: // ::Fatal("AliHLTTransform::GetSolenoidField", "Incorrect magnetic field"); // } - AliMagF* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,kTRUE); // Init PID AliPID pid; diff --git a/MUON/AliMUONCheck.cxx b/MUON/AliMUONCheck.cxx index 086c0f157bb..4b28ce62533 100644 --- a/MUON/AliMUONCheck.cxx +++ b/MUON/AliMUONCheck.cxx @@ -49,7 +49,7 @@ #include "AliESDEvent.h" #include "AliESDMuonTrack.h" #include "AliESDVertex.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliLog.h" #include diff --git a/MUON/AliMUONCommonGeometryBuilder.cxx b/MUON/AliMUONCommonGeometryBuilder.cxx index 308f851f172..15c27d83414 100644 --- a/MUON/AliMUONCommonGeometryBuilder.cxx +++ b/MUON/AliMUONCommonGeometryBuilder.cxx @@ -24,6 +24,7 @@ //----------------------------------------------------------------------------- +#include #include #include "AliMUONCommonGeometryBuilder.h" @@ -104,8 +105,8 @@ void AliMUONCommonGeometryBuilder::CreateMaterials() Float_t wbak[3] = {6. , 6. , 1.}; Float_t dbak = 1.4; - Int_t iSXFLD = gAlice->Field()->PrecInteg(); - Float_t sXMGMX = gAlice->Field()->Max(); + Int_t iSXFLD = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->PrecInteg(); + Float_t sXMGMX = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // // --- Define the various materials for GEANT --- fMUON->AliMaterial(9, "ALUMINIUM0$", 26.98, 13., 2.7, 8.9, 37.2); diff --git a/MUON/AliMUONSt1GeometryBuilderV2.cxx b/MUON/AliMUONSt1GeometryBuilderV2.cxx index 61aaca93719..b2049b48946 100644 --- a/MUON/AliMUONSt1GeometryBuilderV2.cxx +++ b/MUON/AliMUONSt1GeometryBuilderV2.cxx @@ -47,18 +47,19 @@ #include "AliMagF.h" #include "AliLog.h" -#include -#include -#include -#include #include -#include -#include +#include +#include +#include #include -#include +#include #include +#include #include -#include +#include +#include +#include +#include #ifdef WITH_STL #include @@ -2227,8 +2228,8 @@ void AliMUONSt1GeometryBuilderV2::CreateMaterials() GReal_t maxStepAlu = fMUON->GetMaxStepAlu(); GReal_t maxDestepAlu = fMUON->GetMaxDestepAlu(); // GReal_t maxStepGas = fMUON->GetMaxStepGas(); - Int_t iSXFLD = gAlice->Field()->PrecInteg(); - Float_t sXMGMX = gAlice->Field()->Max(); + Int_t iSXFLD = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->PrecInteg(); + Float_t sXMGMX = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); fMUON->AliMedium(21, "ALU_II$", 41, 0, iSXFLD, sXMGMX, tmaxfd, maxStepAlu, maxDestepAlu, epsil, stmin); diff --git a/MUON/AliMUONTrackExtrap.cxx b/MUON/AliMUONTrackExtrap.cxx index 19c34641ebc..2830ca04723 100644 --- a/MUON/AliMUONTrackExtrap.cxx +++ b/MUON/AliMUONTrackExtrap.cxx @@ -29,8 +29,9 @@ #include "AliMagF.h" -#include +#include #include +#include #include @@ -38,7 +39,6 @@ ClassImp(AliMUONTrackExtrap) // Class implementation in ROOT context /// \endcond -const AliMagF* AliMUONTrackExtrap::fgkField = 0x0; const Double_t AliMUONTrackExtrap::fgkSimpleBPosition = 0.5 * (AliMUONConstants::CoilZ() + AliMUONConstants::YokeZ()); const Double_t AliMUONTrackExtrap::fgkSimpleBLength = 0.5 * (AliMUONConstants::CoilL() + AliMUONConstants::YokeL()); Double_t AliMUONTrackExtrap::fgSimpleBValue = 0.; @@ -49,26 +49,15 @@ const Double_t AliMUONTrackExtrap::fgkHelixStepLength = 6.; const Double_t AliMUONTrackExtrap::fgkRungeKuttaMaxResidue = 0.002; //__________________________________________________________________________ -void AliMUONTrackExtrap::SetField(const AliMagF* magField) +void AliMUONTrackExtrap::SetField() { - /// set magnetic field - - // set field map - fgkField = magField; - if (!fgkField) { - cout<<"E-AliMUONTrackExtrap::SetField: fgkField = 0x0"<Factor() == 0.) ? kFALSE : kTRUE; - + // set field on/off flag // set field at the centre of the dipole - if (fgFieldON) { - Float_t b[3] = {0.,0.,0.}, x[3] = {50.,50.,(Float_t) fgkSimpleBPosition}; - fgkField->Field(x,b); - fgSimpleBValue = (Double_t) b[0]; - } else fgSimpleBValue = 0.; + const Double_t x[3] = {50.,50.,fgkSimpleBPosition}; + Double_t b[3] = {0.,0.,0.}; + TGeoGlobalMagField::Instance()->Field(x,b); + fgSimpleBValue = b[0]; + fgFieldON = fgSimpleBValue ? kTRUE : kFALSE; } @@ -82,11 +71,6 @@ Double_t AliMUONTrackExtrap::GetImpactParamFromBendingMomentum(Double_t bendingM if (bendingMomentum == 0.) return 1.e10; - if (!fgkField) { - cout<<"F-AliMUONTrackExtrap::GetField: fgkField = 0x0"<Field(xyz,h); h2xy = h[0]*h[0] + h[1]*h[1]; h[3] = h[2]*h[2]+ h2xy; @@ -1230,8 +1209,7 @@ void AliMUONTrackExtrap::ExtrapOneStepRungekutta(Double_t charge, Double_t step, rest = step - tl; if (TMath::Abs(h) > TMath::Abs(rest)) h = rest; //cmodif: call gufld(vout,f) changed into: - - GetField(vout,f); + TGeoGlobalMagField::Instance()->Field(vout,f); // * // * start of integration @@ -1275,7 +1253,7 @@ void AliMUONTrackExtrap::ExtrapOneStepRungekutta(Double_t charge, Double_t step, xyzt[2] = zt; //cmodif: call gufld(xyzt,f) changed into: - GetField(xyzt,f); + TGeoGlobalMagField::Instance()->Field(xyzt,f); at = a + secxs[0]; bt = b + secys[0]; @@ -1312,7 +1290,7 @@ void AliMUONTrackExtrap::ExtrapOneStepRungekutta(Double_t charge, Double_t step, xyzt[2] = zt; //cmodif: call gufld(xyzt,f) changed into: - GetField(xyzt,f); + TGeoGlobalMagField::Instance()->Field(xyzt,f); z = z + (c + (seczs[0] + seczs[1] + seczs[2]) * kthird) * h; y = y + (b + (secys[0] + secys[1] + secys[2]) * kthird) * h; @@ -1397,21 +1375,3 @@ void AliMUONTrackExtrap::ExtrapOneStepRungekutta(Double_t charge, Double_t step, return; } -//___________________________________________________________ -void AliMUONTrackExtrap::GetField(Double_t *Position, Double_t *Field) -{ - /// interface for arguments in double precision (Why ? ChF) - Float_t x[3], b[3]; - - x[0] = Position[0]; x[1] = Position[1]; x[2] = Position[2]; - - if (fgkField) fgkField->Field(x,b); - else { - cout<<"F-AliMUONTrackExtrap::GetField: fgkField = 0x0"< +#include #include #include -#include +#include +#include +#include #include #include -#include #include @@ -406,7 +407,7 @@ void AliMUONv1::StepManager() Float_t thetawires = TMath::ASin( TMath::Sin(TMath::Pi()-theta) * TMath::Sin(phi) ) ;// We use Pi-theta because z is negative Double_t bField[3] = {0}; fTrackPosition.Vect().GetXYZ(tmp); - gAlice->Field(tmp,bField); + TGeoGlobalMagField::Instance()->Field(tmp,bField); if (fAngleEffect && !fMagEffect){ thetawires = TMath::Abs(thetawires); diff --git a/MUON/Config.C b/MUON/Config.C index cbf9f4f2cc8..e2f67adc47d 100644 --- a/MUON/Config.C +++ b/MUON/Config.C @@ -174,8 +174,7 @@ void Config(char directory[100]="", char option[6]="param", const char* digitsto } //============================================================= // Field (L3 0.5 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1, 10., AliMagF::k5kG)); //============================================================= //=================== Alice BODY parameters ============================= AliBODY *BODY = new AliBODY("BODY","Alice envelop"); diff --git a/MUON/DecodeRecoCocktail.C b/MUON/DecodeRecoCocktail.C index be8f88c39ce..6f00fe90d44 100644 --- a/MUON/DecodeRecoCocktail.C +++ b/MUON/DecodeRecoCocktail.C @@ -57,12 +57,12 @@ #include "AliESDVertex.h" #include "AliMCEventHandler.h" #include "AliMCEvent.h" +#include "AliMagF.h" /*TODO: need to update this with changes made to ITS #include "AliITSVertexerPPZ.h" #include "AliITSLoader.h" */ #include "AliTracker.h" -#include "AliMagFMaps.h" #endif @@ -103,11 +103,13 @@ void DecodeRecoCocktail( // set mag field // waiting for mag field in CDB - printf("Loading field map...\n"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); + if (!TGeoGlobalMagField::Instance()->GetField()) { + printf("Loading field map...\n"); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + } // set the magnetic field for track extrapolations - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + AliMUONTrackExtrap::SetField(); AliMUONRecoCheck *rc = new AliMUONRecoCheck("AliESDs.root", simdir); Int_t nev = rc->NumberOfEvents(); diff --git a/MUON/Doxymodules_STEER.h b/MUON/Doxymodules_STEER.h index 6f95f724141..4ce99bbdc71 100644 --- a/MUON/Doxymodules_STEER.h +++ b/MUON/Doxymodules_STEER.h @@ -86,12 +86,6 @@ class AliDigit {}; class AliHit {}; class AliDisplay {}; - class AliMagFC {}; - class AliMagFCM {}; - class AliMagFMaps {}; - class AliMagFMapsV1 {}; - class AliMagFDM {}; - class AliMagFCheb {}; class AliCheb3DCalc {}; class AliCheb3D {}; class AliMagWrapCheb {}; diff --git a/MUON/MUONAlignment.C b/MUON/MUONAlignment.C index 6acd0409f63..36244b06686 100644 --- a/MUON/MUONAlignment.C +++ b/MUON/MUONAlignment.C @@ -47,7 +47,7 @@ #include "AliESDEvent.h" #include "AliESDMuonTrack.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTracker.h" #include "AliCDBManager.h" #include "AliCDBMetaData.h" @@ -81,11 +81,13 @@ void MUONAlignment(Int_t nEvents = 100000, char* geoFilename = "geometry.root", // set mag field // waiting for mag field in CDB - printf("Loading field map...\n"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); + if (!TGeoGlobalMagField::Instance()->GetField()) { + printf("Loading field map...\n"); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + } // set the magnetic field for track extrapolations - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + AliMUONTrackExtrap::SetField(); Double_t parameters[3*156]; Double_t errors[3*156]; diff --git a/MUON/MUONClusterInfo.C b/MUON/MUONClusterInfo.C index 02f8e796407..cee85ca08a3 100644 --- a/MUON/MUONClusterInfo.C +++ b/MUON/MUONClusterInfo.C @@ -33,7 +33,7 @@ #include // STEER includes -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTracker.h" #include "AliESDEvent.h" #include "AliESDMuonTrack.h" @@ -237,9 +237,11 @@ void Prepare() } // set mag field - printf("Loading field map...\n"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); + if (!TGeoGlobalMagField::Instance()->GetField()) { + printf("Loading field map...\n"); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + } // Load mapping AliCDBManager* man = AliCDBManager::Instance(); diff --git a/MUON/MUONRecoCheck.C b/MUON/MUONRecoCheck.C index fada01fea47..4bea8943ed1 100644 --- a/MUON/MUONRecoCheck.C +++ b/MUON/MUONRecoCheck.C @@ -36,7 +36,7 @@ #include "AliHeader.h" #include "AliMC.h" #include "AliStack.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTracker.h" // MUON includes @@ -89,12 +89,14 @@ void MUONRecoCheck (Int_t nEvent = 1, char* geoFilename = "geometry.root", // set mag field // waiting for mag field in CDB - printf("Loading field map...\n"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); + if (!TGeoGlobalMagField::Instance()->GetField()) { + printf("Loading field map...\n"); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + } // set the magnetic field for track extrapolations - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); - + AliMUONTrackExtrap::SetField(); + AliMUONRecoCheck rc(esdFileName, pathSim); Int_t nevents = rc.NumberOfEvents(); diff --git a/MUON/MUONRefit.C b/MUON/MUONRefit.C index d53a35394a8..34176ebc08c 100644 --- a/MUON/MUONRefit.C +++ b/MUON/MUONRefit.C @@ -32,7 +32,7 @@ #include // STEER includes -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTracker.h" #include "AliESDEvent.h" #include "AliESDMuonTrack.h" @@ -212,11 +212,15 @@ void Prepare() } } - // set mag field - printf("Loading field map...\n"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + // set mag field + // waiting for mag field in CDB + if (!TGeoGlobalMagField::Instance()->GetField()) { + printf("Loading field map...\n"); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + } + // set the magnetic field for track extrapolations + AliMUONTrackExtrap::SetField(); // Load mapping AliCDBManager* man = AliCDBManager::Instance(); diff --git a/MUON/MUONResoEffChamber.C b/MUON/MUONResoEffChamber.C index 6e0c37b305d..19500204935 100644 --- a/MUON/MUONResoEffChamber.C +++ b/MUON/MUONResoEffChamber.C @@ -58,7 +58,7 @@ #include "AliLoader.h" #include "AliTracker.h" #include "AliStack.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" // MUON includes @@ -245,15 +245,15 @@ void efficiencyThetaPhi( Int_t event2Check=0, char * filename="galice.root" ) //-------------------------------------------------------------------------------------------------------------- //Set mag field; waiting for mag field in CDB - printf("Loading field map...\n"); - if (!AliTracker::GetFieldMap()) { - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE);} - + if (!TGeoGlobalMagField::Instance()->GetField()) { + printf("Loading field map...\n"); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + } //-------------------------------------------------------------------------------------------------------------- //Set Field Map for track extrapolation - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + AliMUONTrackExtrap::SetField() //Creating a MUON data container @@ -510,15 +510,16 @@ void efficiencyThetaI( Int_t event2Check=0, char * filename="galice.root" ) //-------------------------------------------------------------------------------------------------------------- //Set mag field; waiting for mag field in CDB - printf("Loading field map...\n"); - if (!AliTracker::GetFieldMap()) { - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE);} - + if (!TGeoGlobalMagField::Instance()->GetField()) { + printf("Loading field map...\n"); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + } printf("Loading field map...\n"); + //-------------------------------------------------------------------------------------------------------------- //Set Field Map for track extrapolation - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + AliMUONTrackExtrap::SetField(); //Creating a MUON data container diff --git a/MUON/MUONefficiency.C b/MUON/MUONefficiency.C index e4326ccc4f7..ce752fed8ba 100644 --- a/MUON/MUONefficiency.C +++ b/MUON/MUONefficiency.C @@ -43,7 +43,7 @@ #include "AliHeader.h" #include "AliLoader.h" #include "AliStack.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliESDEvent.h" #include "AliESDVertex.h" #include "AliTracker.h" @@ -205,9 +205,14 @@ Bool_t MUONefficiency( char* filename = "galice.root", char* geoFilename = "geom // set mag field // waiting for mag field in CDB - printf("Loading field map...\n"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); + if (!TGeoGlobalMagField::Instance()->GetField()) { + printf("Loading field map...\n"); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + } + // set the magnetic field for track extrapolations + AliMUONTrackExtrap::SetField(); + // open run loader and load gAlice, kinematics and header AliRunLoader* runLoader = AliRunLoader::Open(filename); @@ -347,7 +352,7 @@ Bool_t MUONefficiency( char* filename = "galice.root", char* geoFilename = "geom } // set the magnetic field for track extrapolations - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + AliMUONTrackExtrap::SetField(); // loop over all reconstructed tracks (also first track of combination) for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) { diff --git a/MUON/MUONmassPlot_ESD.C b/MUON/MUONmassPlot_ESD.C index 7237e48b3e3..3acd495f518 100644 --- a/MUON/MUONmassPlot_ESD.C +++ b/MUON/MUONmassPlot_ESD.C @@ -15,7 +15,7 @@ // STEER includes #include "AliLog.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliESDEvent.h" #include "AliESDVertex.h" #include "AliTracker.h" @@ -139,9 +139,14 @@ Bool_t MUONmassPlot(Int_t ExtrapToVertex = -1, char* geoFilename = "geometry.roo // set mag field // waiting for mag field in CDB - printf("Loading field map...\n"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); + if (!TGeoGlobalMagField::Instance()->GetField()) { + printf("Loading field map...\n"); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); + TGeoGlobalMagField::Instance()->SetField(field); + } + // set the magnetic field for track extrapolations + AliMUONTrackExtrap::SetField(); + // open the ESD file TFile* esdFile = TFile::Open(esdFileName); @@ -189,8 +194,6 @@ Bool_t MUONmassPlot(Int_t ExtrapToVertex = -1, char* geoFilename = "geometry.roo // printf("\n Nb of events analysed: %d\r",iEvent); // cout << " number of tracks: " << nTracks < @@ -62,8 +62,9 @@ void runDataReconstruction(Int_t calib = 1) gRandom->SetSeed(seed); // no magnetic field --> factor (4th parameter) = 0 - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 0., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); + TGeoGlobalMagField::Instance()->GetField()->SetFactorSol(0); + TGeoGlobalMagField::Instance()->GetField()->SetFactorDip(0); + AliReconstruction *MuonRec = new AliReconstruction(); MuonRec->SetInput(input.Data()); diff --git a/MUON/runReconstruction.C b/MUON/runReconstruction.C index e7cec7c5fe3..a42ce7848f8 100644 --- a/MUON/runReconstruction.C +++ b/MUON/runReconstruction.C @@ -28,7 +28,6 @@ #include "AliMUONRecoParam.h" #include "AliRecoParam.h" #include "AliCDBManager.h" -#include "AliMagFMaps.h" #include "AliTracker.h" #include "AliReconstruction.h" #include @@ -42,9 +41,6 @@ void runReconstruction(int seed, const char* input, const char* recoptions) gRandom->SetSeed(seed); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); - AliReconstruction* MuonRec = new AliReconstruction("galice.root"); MuonRec->SetInput(input); MuonRec->SetRunVertexFinder(kFALSE); diff --git a/PHOS/AliPHOS.cxx b/PHOS/AliPHOS.cxx index dde85f477cb..faf122dfcac 100644 --- a/PHOS/AliPHOS.cxx +++ b/PHOS/AliPHOS.cxx @@ -66,12 +66,13 @@ // --- ROOT system --- class TFile; +#include #include -#include -#include +#include #include -#include #include +#include +#include // --- Standard library --- @@ -291,8 +292,8 @@ void AliPHOS::CreateMaterials() // DEFINITION OF THE TRACKING MEDIA // for PHOS: idtmed[699->798] equivalent to fIdtmed[0->100] - Int_t isxfld = gAlice->Field()->Integ() ; - Float_t sxmgmx = gAlice->Field()->Max() ; + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ() ; + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max() ; // The scintillator of the calorimeter made of PBW04 -> idtmed[699] AliMedium(0, "PHOS Xtal $", 0, 1, diff --git a/PHOS/ConfigTestSuite.C b/PHOS/ConfigTestSuite.C index 027ab17e371..8533ed521be 100644 --- a/PHOS/ConfigTestSuite.C +++ b/PHOS/ConfigTestSuite.C @@ -129,9 +129,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 0; Int_t iDIPO = 0; diff --git a/PHOS/macros/AlignmentDB/Config.C b/PHOS/macros/AlignmentDB/Config.C index a22bd90eb86..e775cb06c12 100644 --- a/PHOS/macros/AlignmentDB/Config.C +++ b/PHOS/macros/AlignmentDB/Config.C @@ -17,7 +17,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" @@ -158,9 +158,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 0; Int_t iDIPO = 0; diff --git a/PHOS/macros/Embed/Config.C b/PHOS/macros/Embed/Config.C index 76c9aaebe38..5c856cbdcb4 100644 --- a/PHOS/macros/Embed/Config.C +++ b/PHOS/macros/Embed/Config.C @@ -11,16 +11,10 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - - // This part for configuration static PprGeo_t sgeo = kNoHoles; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; // Comment line static TString comment; @@ -146,11 +140,9 @@ void Config() - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -175,12 +167,12 @@ void Config() // Field (L3 0.4 T) -// AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., smag); //Zero magnetic field - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 0., 10., smag); + AliMagF* field = new AliMagF("Maps","Maps", 2, 0., 1., 10., AliMagF::k5kG); field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); - gAlice->SetField(field); Int_t iABSO = 0; Int_t iCRT = 0; diff --git a/PHOS/macros/testSuite/ConfigTestSuite.C b/PHOS/macros/testSuite/ConfigTestSuite.C index 37df54f7e18..88ef9c771cf 100644 --- a/PHOS/macros/testSuite/ConfigTestSuite.C +++ b/PHOS/macros/testSuite/ConfigTestSuite.C @@ -130,9 +130,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 0; Int_t iDIPO = 0; diff --git a/PHOS/macros/testSuite/ConfigTestSuiteHij.C b/PHOS/macros/testSuite/ConfigTestSuiteHij.C index b7f32896c47..2bbe0faae2b 100644 --- a/PHOS/macros/testSuite/ConfigTestSuiteHij.C +++ b/PHOS/macros/testSuite/ConfigTestSuiteHij.C @@ -106,9 +106,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 0; Int_t iDIPO = 0; diff --git a/PMD/AliPMDRec.C b/PMD/AliPMDRec.C index e6608868977..a3e3120087b 100644 --- a/PMD/AliPMDRec.C +++ b/PMD/AliPMDRec.C @@ -10,9 +10,6 @@ void AliPMDRec() Int_t firstEvent = 0; Int_t lastEvent = 1; - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - AliTracker::SetFieldMap(field,1); - AliReconstruction rec; rec.SetRunReconstruction("PMD"); rec.SetRunVertexFinder(kFALSE); diff --git a/PMD/AliPMDv0.cxx b/PMD/AliPMDv0.cxx index 5ee8ce8d1cb..1b8e5c9b348 100644 --- a/PMD/AliPMDv0.cxx +++ b/PMD/AliPMDv0.cxx @@ -29,8 +29,10 @@ /////////////////////////////////////////////////////////////////////////////// //// -#include "Riostream.h" +#include +#include #include + #include "AliConst.h" #include "AliMagF.h" #include "AliPMDv0.h" @@ -776,8 +778,8 @@ void AliPMDv0::CreateMaterials() // cout << " Inside create materials " << endl; - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // --- Define the various materials for GEANT --- diff --git a/PMD/AliPMDv1.cxx b/PMD/AliPMDv1.cxx index 71e8c156497..cec288039e5 100644 --- a/PMD/AliPMDv1.cxx +++ b/PMD/AliPMDv1.cxx @@ -29,7 +29,8 @@ /////////////////////////////////////////////////////////////////////////////// //// -#include "Riostream.h" +#include +#include #include #include "AliConst.h" @@ -1334,8 +1335,8 @@ void AliPMDv1::CreateMaterials() // // cout << " Inside create materials " << endl; - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // --- Define the various materials for GEANT --- diff --git a/PMD/AliPMDv2008.cxx b/PMD/AliPMDv2008.cxx index c6fce8d82f4..afc9e146d4c 100644 --- a/PMD/AliPMDv2008.cxx +++ b/PMD/AliPMDv2008.cxx @@ -29,7 +29,8 @@ /////////////////////////////////////////////////////////////////////////////// //// -#include "Riostream.h" +#include +#include #include #include "AliConst.h" @@ -1356,8 +1357,8 @@ void AliPMDv2008::CreateMaterials() // // cout << " Inside create materials " << endl; - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // --- Define the various materials for GEANT --- diff --git a/PMD/AliPMDv3.cxx b/PMD/AliPMDv3.cxx index 1f0ca266aa1..2afbed4dbbd 100644 --- a/PMD/AliPMDv3.cxx +++ b/PMD/AliPMDv3.cxx @@ -575,8 +575,8 @@ void AliPMDv3::CreateMaterials() Float_t wsteel[4] = { .715,.18,.1,.005 }; Int_t *idtmed = fIdtmed->GetArray()-599; - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // --- Define the various materials for GEANT --- AliMaterial(1, "Pb $", 207.19, 82., 11.35, .56, 18.5); diff --git a/PWG1/AliComparisonEff.cxx b/PWG1/AliComparisonEff.cxx index 1c79035bd89..9cce74d519b 100644 --- a/PWG1/AliComparisonEff.cxx +++ b/PWG1/AliComparisonEff.cxx @@ -56,7 +56,7 @@ // #include "AliMathBase.h" #include "AliTreeDraw.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliESDVertex.h" #include "AliExternalTrackParam.h" #include "AliTracker.h" diff --git a/PWG1/AliComparisonEff.h b/PWG1/AliComparisonEff.h index 2c2da9f74e7..f5342222c23 100644 --- a/PWG1/AliComparisonEff.h +++ b/PWG1/AliComparisonEff.h @@ -26,7 +26,7 @@ class TGraph; class TGeoManager; class TString; class TStatToolkit; -class AliMagFMaps; +class AliMagF; class AliESDVertex; #include "TNamed.h" diff --git a/PWG1/AliComparisonTask.cxx b/PWG1/AliComparisonTask.cxx index f9f1a369f7d..eb3bb4381b8 100644 --- a/PWG1/AliComparisonTask.cxx +++ b/PWG1/AliComparisonTask.cxx @@ -41,7 +41,7 @@ #include "AliESDEvent.h" #include "AliESDInputHandler.h" #include "AliESDVertex.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTracker.h" #include "AliGeomManager.h" diff --git a/PWG1/AliComparisonTask.h b/PWG1/AliComparisonTask.h index 11b0a3d5618..1c2ed35c2f7 100644 --- a/PWG1/AliComparisonTask.h +++ b/PWG1/AliComparisonTask.h @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ class AliComparisonObject; -class AliMagFMaps; +class AliMagF; class TList; #include "AliAnalysisTask.h" diff --git a/PWG1/AliRecInfoMaker.cxx b/PWG1/AliRecInfoMaker.cxx index 57c61ec9a6b..319c5e89dd6 100644 --- a/PWG1/AliRecInfoMaker.cxx +++ b/PWG1/AliRecInfoMaker.cxx @@ -319,8 +319,6 @@ AliRecInfoMaker::AliRecInfoMaker(const char* fnGenTracks, fEventNr = nall-firstEvent; cerr<<"restricted number of events availaible"<Field(); - AliTracker::SetFieldMap(magf,0); TGeoManager::Import("geometry.root"); diff --git a/PWG1/Macros/RunAliComparisonTask.C b/PWG1/Macros/RunAliComparisonTask.C index 0937503a12a..548d6baa37e 100644 --- a/PWG1/Macros/RunAliComparisonTask.C +++ b/PWG1/Macros/RunAliComparisonTask.C @@ -3,9 +3,7 @@ void RunAliComparisonTask(TChain *chain = 0, Bool_t aProof = kTRUE, Bool_t aDeb // // Set mag field map (needed to propagate track to the DCA) // - Int_t magField = 2; // 0 - 0.2 T, 1 = 0.4 T, 2 - 0.5 T - magFMap = new AliMagFMaps("Maps","Maps", 2, 1., 10., magField); - AliTracker::SetFieldMap(magFMap,kFALSE); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); // // Create global cuts objects @@ -80,8 +78,6 @@ void RunAliComparisonTask(TChain *chain = 0, Bool_t aProof = kTRUE, Bool_t aDeb // Create, add task task = new AliComparisonTask; - //task->SetMagField(magField); - task->AddComparisonObject( pCompRes ); task->AddComparisonObject( pCompEff ); task->AddComparisonObject( pCompDEdx ); diff --git a/PWG3/muondep/AliAnalysisTaskMuonTrackingEff.cxx b/PWG3/muondep/AliAnalysisTaskMuonTrackingEff.cxx index 937aed88069..7e810be52c0 100644 --- a/PWG3/muondep/AliAnalysisTaskMuonTrackingEff.cxx +++ b/PWG3/muondep/AliAnalysisTaskMuonTrackingEff.cxx @@ -35,7 +35,7 @@ #include "AliESDEvent.h" #include "AliESDMuonTrack.h" #include "AliESDInputHandler.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTracker.h" #include "AliAnalysisManager.h" @@ -209,16 +209,10 @@ void AliAnalysisTaskMuonTrackingEff::CreateOutputObjects() void AliAnalysisTaskMuonTrackingEff::ConnectInputData(Option_t */*option*/) { -//Set mag field; waiting for mag field in CDB -//------------------------------------------- - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field, kFALSE); - -//Set Field Map for track extrapolation -//------------------------------------- - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + //Set Field Map for track extrapolation + AliMUONTrackExtrap::SetField(); -//Connect input + //Connect input AliESDInputHandler* esdHandler = (AliESDInputHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler()); if (!esdHandler) { diff --git a/PWG3/muondep/AliAnalysisTaskRecoCheck.cxx b/PWG3/muondep/AliAnalysisTaskRecoCheck.cxx index c4a2bdaf03d..7555104c52c 100644 --- a/PWG3/muondep/AliAnalysisTaskRecoCheck.cxx +++ b/PWG3/muondep/AliAnalysisTaskRecoCheck.cxx @@ -4,7 +4,7 @@ #include "TIterator.h" #include "AliStack.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTracker.h" #include "AliAnalysisTask.h" @@ -68,14 +68,7 @@ void AliAnalysisTaskRecoCheck::ConnectInputData(Option_t *) } // calculate the filed map in the L3 magnet using the current value - AliMagFMaps* field = 0x0; - if (fL3Current == 30000.0) { - field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - } - - // set the tracker field map - AliTracker::SetFieldMap(field, kFALSE); - AliMUONTrackExtrap::SetField(AliTracker::GetFieldMap()); + AliMUONTrackExtrap::SetField(); } diff --git a/RAW/AliHoughFilter.cxx b/RAW/AliHoughFilter.cxx index 7a3e123bd9e..d5a650580b6 100644 --- a/RAW/AliHoughFilter.cxx +++ b/RAW/AliHoughFilter.cxx @@ -36,7 +36,6 @@ #include "AliRawReaderRoot.h" #include -#include #include #include #include @@ -65,7 +64,7 @@ fITSgeom(NULL) AliError("HLT initialization failed!"); // Init magnetic field - AliMagF* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); + AliMagF* field = (AliMagF*)TGeoGlobalMagField::Instance(); AliTracker::SetFieldMap(field,kTRUE); fPtmin = 0.1*AliHLTTransform::GetSolenoidField(); diff --git a/STEER/AliESDComparisonMI.C b/STEER/AliESDComparisonMI.C index f87ecf74396..a03d69d737f 100644 --- a/STEER/AliESDComparisonMI.C +++ b/STEER/AliESDComparisonMI.C @@ -169,7 +169,6 @@ TProfile prof("prof","prof",10,0.5,5); #include "AliTPCParamSR.h" #include "AliTracker.h" #include "AliComplexCluster.h" -#include "AliMagF.h" #include "AliESDEvent.h" #include "AliESDtrack.h" #include "AliITStrackMI.h" @@ -838,8 +837,6 @@ ESDCmpTr::ESDCmpTr(const char* fnGenTracks, fEventNr = nall-firstEvent; cerr<<"restricted number of events availaible"<Field(); - AliTracker::SetFieldMap(magf,0); } diff --git a/STEER/AliMC.cxx b/STEER/AliMC.cxx index 9a3df4dfac0..17500460cc8 100644 --- a/STEER/AliMC.cxx +++ b/STEER/AliMC.cxx @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -692,13 +693,6 @@ void AliMC::FinishEvent() AliDebug(1, "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"); } -//_______________________________________________________________________ -void AliMC::Field(const Double_t* x, Double_t* b) const -{ - // Calculates field "b" at point "x" - gAlice->Field(x,b); -} - //_______________________________________________________________________ void AliMC::Init() { @@ -1132,7 +1126,7 @@ void AliMC::FixParticleDecaytime() // Transverse velocity Double_t vt = p.Pt() / p.E(); - if ((b = gAlice->Field()->SolenoidField()) > 0.) { // [kG] + if ((b = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->SolenoidField()) > 0.) { // [kG] // Radius of helix diff --git a/STEER/AliMC.h b/STEER/AliMC.h index 3e434f834c8..f5de1698fa4 100644 --- a/STEER/AliMC.h +++ b/STEER/AliMC.h @@ -49,7 +49,6 @@ public: virtual void FinishEvent(); virtual Double_t TrackingZmax() const {return fTrZmax;} virtual Double_t TrackingRmax() const {return fTrRmax;} - virtual void Field(const Double_t* x, Double_t* b) const; virtual Int_t DetFromMate(Int_t i) const { return (*fImedia)[i];} // diff --git a/STEER/AliMagFC.cxx b/STEER/AliMagFC.cxx deleted file mode 100644 index 0cd875b16c7..00000000000 --- a/STEER/AliMagFC.cxx +++ /dev/null @@ -1,421 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - -//------------------------------------------------------------------------- -// Constant magnetic field class -// Used by AliRun class -// Author: -//------------------------------------------------------------------------- - -#include - -#include "AliLog.h" -#include "AliMagFC.h" - -ClassImp(AliMagFC) - -//________________________________________ -AliMagFC::AliMagFC() - :AliMagF(), - fCompensator(kFALSE), - fBeamType(kBeamTypepp), - fBeamEnergy(0), - fQuadGradient(0), - fDipoleField(0), - fCCorrField(0), - fACorr1Field(0), - fACorr2Field(0) -{ - // - // Default constructor - // -} - -//________________________________________ -AliMagFC::AliMagFC(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax) - : AliMagF(name,title,integ,factor,fmax), - fCompensator(kFALSE), - fBeamType(kBeamTypepp), - fBeamEnergy(7000.), - fQuadGradient(0), - fDipoleField(0), - fCCorrField(0), - fACorr1Field(0), - fACorr2Field(0) - -{ - // - // Standard constructor - // - fType = kConst; - fMap = 1; - -} - -//________________________________________ -void AliMagFC::Field(const float *x, float *b) const -{ - // - // Method to return the field in a point - // - b[0]=b[1]=b[2]=0; - if(fMap==1) { - if(TMath::Abs(x[2])<700 && x[0]*x[0]+(x[1]+30)*(x[1]+30) < 560*560) { - b[2]=2; - } - else { - if(-725 >= x[2] && x[2] >= -1225 ){ - Float_t dz = TMath::Abs(-975-x[2])*0.01; - b[0] = - (1-0.1*dz*dz)*7; - if(fFactor!=1) { - b[0]*=fFactor; - b[1]*=fFactor; - b[2]*=fFactor; - } - } - else { - ZDCField(x, b); - } - } - - } - else { - AliFatal(Form("Invalid field map for constant field %d",fMap)); - } -} -//________________________________________ -void AliMagFC::Field(const double *x, double *b) const -{ - // - // Method to return the field in a point - // - b[0]=b[1]=b[2]=0; - if(fMap==1) { - if(TMath::Abs(x[2])<700 && x[0]*x[0]+(x[1]+30)*(x[1]+30) < 560*560) { - b[2]=2; - } - else { - if(-725 >= x[2] && x[2] >= -1225 ){ - Float_t dz = TMath::Abs(-975-x[2])*0.01; - b[0] = - (1-0.1*dz*dz)*7; - if(fFactor!=1) { - b[0]*=fFactor; - b[1]*=fFactor; - b[2]*=fFactor; - } - } - else { - ZDCField(x, b); - } - } - - } - else { - AliFatal(Form("Invalid field map for constant field %d",fMap)); - } -} - -//___________________________________________________ -void AliMagFC::ZDCField(const float *x, float *b) const -{ - // ---- This is the ZDC part - - float rad2 = x[0] * x[0] + x[1] * x[1]; - static Bool_t init = kFALSE; - - if (! init) { - init = kTRUE; - ////////////////////////////////////////////////////////////////////// - // ---- Magnetic field values (according to beam type and energy) ---- - if(fBeamType==kBeamTypepp && fBeamEnergy == 5000.){ - // p-p @ 5+5 TeV - fQuadGradient = 15.7145; - fDipoleField = 27.0558; - // SIDE C - fCCorrField = 9.7017; - // SIDE A - fACorr1Field = -13.2143; - fACorr2Field = -11.9909; - } else if (fBeamType == kBeamTypepp && fBeamEnergy == 450.) { - // p-p 0.45+0.45 TeV - Float_t const kEnergyRatio = fBeamEnergy / 7000.; - - fQuadGradient = 22.0002 * kEnergyRatio; - fDipoleField = 37.8781 * kEnergyRatio; - // SIDE C - fCCorrField = 9.6908; - // SIDE A - fACorr1Field = -13.2014; - fACorr2Field = -9.6908; - } else if ((fBeamType == kBeamTypepp && fBeamEnergy == 7000.) || - (fBeamType == kBeamTypeAA)) - { - // Pb-Pb @ 2.7+2.7 TeV or p-p @ 7+7 TeV - fQuadGradient = 22.0002; - fDipoleField = 37.8781; - // SIDE C - fCCorrField = 9.6908; - // SIDE A - fACorr1Field = -13.2014; - fACorr2Field = -9.6908; - } - } - - - // SIDE C ************************************************** - if(x[2]<0.){ - if(x[2] < kCCorrBegin && x[2] > kCCorrEnd && rad2 < kCCorrSqRadius){ - if (fFactor != 0.) { - b[0] = fCCorrField; - b[1] = 0.; - b[2] = 0.; - } - } - else if(x[2] < kCQ1Begin && x[2] > kCQ1End && rad2 < kCQ1SqRadius){ - b[0] = fQuadGradient*x[1]; - b[1] = fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] < kCQ2Begin && x[2] > kCQ2End && rad2 < kCQ2SqRadius){ - b[0] = -fQuadGradient*x[1]; - b[1] = -fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] < kCQ3Begin && x[2] > kCQ3End && rad2 < kCQ3SqRadius){ - b[0] = -fQuadGradient*x[1]; - b[1] = -fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] < kCQ4Begin && x[2] > kCQ4End && rad2 < kCQ4SqRadius){ - b[0] = fQuadGradient*x[1]; - b[1] = fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] < kCD1Begin && x[2] > kCD1End && rad2 < kCD1SqRadius){ - b[1] = fDipoleField; - b[2] = 0.; - b[2] = 0.; - } - else if(x[2] < kCD2Begin && x[2] > kCD2End){ - if(((x[0]-kCD2XCentre1)*(x[0]-kCD2XCentre1)+(x[1]*x[1])) kACorr1Begin && x[2] < kACorr1End) && rad2 < kCCorr1SqRadius) { - // Compensator magnet at z = 1075 m - if (fFactor != 0.) { - b[0] = fACorr1Field; - b[1] = 0.; - b[2] = 0.; - } - return; - } - - if(x[2] > kACorr2Begin && x[2] < kACorr2End && rad2 < kCCorr2SqRadius){ - if (fFactor != 0.) { - b[0] = fACorr2Field; - b[1] = 0.; - b[2] = 0.; - } - } - else if(x[2] > kAQ1Begin && x[2] < kAQ1End && rad2 < kAQ1SqRadius){ - // First quadrupole of inner triplet de-focussing in x-direction - b[0] = -fQuadGradient*x[1]; - b[1] = -fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] > kAQ2Begin && x[2] < kAQ2End && rad2 < kAQ2SqRadius){ - b[0] = fQuadGradient*x[1]; - b[1] = fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] > kAQ3Begin && x[2] < kAQ3End && rad2 < kAQ3SqRadius){ - b[0] = fQuadGradient*x[1]; - b[1] = fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] > kAQ4Begin && x[2] < kAQ4End && rad2 < kAQ4SqRadius){ - b[0] = -fQuadGradient*x[1]; - b[1] = -fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] > kAD1Begin && x[2] < kAD1End && rad2 < kAD1SqRadius){ - b[0] = 0.; - b[1] = -fDipoleField; - b[2] = 0.; - } - else if(x[2] > kAD2Begin && x[2] < kAD2End){ - if(((x[0]-kAD2XCentre1)*(x[0]-kAD2XCentre1)+(x[1]*x[1])) < kAD2SqRadius - || ((x[0]-kAD2XCentre2)*(x[0]-kAD2XCentre2)+(x[1]*x[1])) < kAD2SqRadius){ - b[1] = fDipoleField; - } - } - } -} - -void AliMagFC::ZDCField(const double *x, double *b) const -{ - // ---- This is the ZDC part - - double rad2 = x[0] * x[0] + x[1] * x[1]; - static Bool_t init = kFALSE; - - if (! init) { - init = kTRUE; - ////////////////////////////////////////////////////////////////////// - // ---- Magnetic field values (according to beam type and energy) ---- - if(fBeamType==kBeamTypepp && fBeamEnergy == 5000.){ - // p-p @ 5+5 TeV - fQuadGradient = 15.7145; - fDipoleField = 27.0558; - // SIDE C - fCCorrField = 9.7017; - // SIDE A - fACorr1Field = -13.2143; - fACorr2Field = -11.9909; - } else if (fBeamType == kBeamTypepp && fBeamEnergy == 450.) { - // p-p 0.45+0.45 TeV - Float_t const kEnergyRatio = fBeamEnergy / 7000.; - - fQuadGradient = 22.0002 * kEnergyRatio; - fDipoleField = 37.8781 * kEnergyRatio; - // SIDE C - fCCorrField = 9.6908; - // SIDE A - fACorr1Field = -13.2014; - fACorr2Field = -9.6908; - } else if ((fBeamType == kBeamTypepp && fBeamEnergy == 7000.) || - (fBeamType == kBeamTypeAA)) - { - // Pb-Pb @ 2.7+2.7 TeV or p-p @ 7+7 TeV - fQuadGradient = 22.0002; - fDipoleField = 37.8781; - // SIDE C - fCCorrField = 9.6908; - // SIDE A - fACorr1Field = -13.2014; - fACorr2Field = -9.6908; - } - } - - - // SIDE C ************************************************** - if(x[2]<0.){ - if(x[2] < kCCorrBegin && x[2] > kCCorrEnd && rad2 < kCCorrSqRadius){ - if (fFactor != 0.) { - b[0] = fCCorrField; - b[1] = 0.; - b[2] = 0.; - } - } - else if(x[2] < kCQ1Begin && x[2] > kCQ1End && rad2 < kCQ1SqRadius){ - b[0] = fQuadGradient*x[1]; - b[1] = fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] < kCQ2Begin && x[2] > kCQ2End && rad2 < kCQ2SqRadius){ - b[0] = -fQuadGradient*x[1]; - b[1] = -fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] < kCQ3Begin && x[2] > kCQ3End && rad2 < kCQ3SqRadius){ - b[0] = -fQuadGradient*x[1]; - b[1] = -fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] < kCQ4Begin && x[2] > kCQ4End && rad2 < kCQ4SqRadius){ - b[0] = fQuadGradient*x[1]; - b[1] = fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] < kCD1Begin && x[2] > kCD1End && rad2 < kCD1SqRadius){ - b[1] = fDipoleField; - b[2] = 0.; - b[2] = 0.; - } - else if(x[2] < kCD2Begin && x[2] > kCD2End){ - if(((x[0]-kCD2XCentre1)*(x[0]-kCD2XCentre1)+(x[1]*x[1])) kACorr1Begin && x[2] < kACorr1End) && rad2 < kCCorr1SqRadius) { - // Compensator magnet at z = 1075 m - if (fFactor != 0.) { - b[0] = fACorr1Field; - b[1] = 0.; - b[2] = 0.; - } - return; - } - - if(x[2] > kACorr2Begin && x[2] < kACorr2End && rad2 < kCCorr2SqRadius){ - if (fFactor != 0.) { - b[0] = fACorr2Field; - b[1] = 0.; - b[2] = 0.; - } - } - else if(x[2] > kAQ1Begin && x[2] < kAQ1End && rad2 < kAQ1SqRadius){ - // First quadrupole of inner triplet de-focussing in x-direction - b[0] = -fQuadGradient*x[1]; - b[1] = -fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] > kAQ2Begin && x[2] < kAQ2End && rad2 < kAQ2SqRadius){ - b[0] = fQuadGradient*x[1]; - b[1] = fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] > kAQ3Begin && x[2] < kAQ3End && rad2 < kAQ3SqRadius){ - b[0] = fQuadGradient*x[1]; - b[1] = fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] > kAQ4Begin && x[2] < kAQ4End && rad2 < kAQ4SqRadius){ - b[0] = -fQuadGradient*x[1]; - b[1] = -fQuadGradient*x[0]; - b[2] = 0.; - } - else if(x[2] > kAD1Begin && x[2] < kAD1End && rad2 < kAD1SqRadius){ - b[0] = 0.; - b[1] = -fDipoleField; - b[2] = 0.; - } - else if(x[2] > kAD2Begin && x[2] < kAD2End){ - if(((x[0]-kAD2XCentre1)*(x[0]-kAD2XCentre1)+(x[1]*x[1])) < kAD2SqRadius - || ((x[0]-kAD2XCentre2)*(x[0]-kAD2XCentre2)+(x[1]*x[1])) < kAD2SqRadius){ - b[1] = fDipoleField; - } - } - } -} - diff --git a/STEER/AliMagFC.h b/STEER/AliMagFC.h deleted file mode 100644 index d17e0de1931..00000000000 --- a/STEER/AliMagFC.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef ALIMAGFC_H -#define ALIMAGFC_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * -*See cxx source for full Copyright notice */ - -/* $Id$ */ - -//------------------------------------------------------------------------- -// Constant magnetic field class -// Used by AliRun class -// Author: -//------------------------------------------------------------------------- - -#include "AliMagF.h" - -enum BeamType_t {kBeamTypeAA, kBeamTypepp}; -class AliMagFC : public AliMagF -{ - //Alice Constant Magnetic Field - -public: - AliMagFC(); - AliMagFC(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax); - virtual ~AliMagFC(){} - virtual void Field(const float *x, float *b) const; - virtual void Field(const double *x, double *b) const; - virtual void ReadField() {} - virtual void ZDCField(const float *x, float *b) const; - virtual void ZDCField(const double *x, double *b) const; - virtual void SetBeamType(BeamType_t type) {fBeamType = type;} - virtual void SetBeamEnergy(Float_t energy) {fBeamEnergy = energy;} - virtual void SetCompensatorMagnet(Bool_t flag) {fCompensator = flag;} - -private: - Bool_t fCompensator; // Flag for compensator magnetic field (kTrue -> ON) - BeamType_t fBeamType; // Beam type: A-A (fBeamType=0) or p-p (fBeamType=1) - Float_t fBeamEnergy; // Beam energy in GeV - mutable Float_t fQuadGradient;// Gradient field for inner triplet quadrupoles - mutable Float_t fDipoleField; // Field value for D1 and D2 dipoles - mutable Float_t fCCorrField; // Side C 2nd compensator field - mutable Float_t fACorr1Field; // Side A 1st compensator field - mutable Float_t fACorr2Field; // Side A 2nd compensator field - - ClassDef(AliMagFC,3) //Class for all Alice Constant MagField -}; - - -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ZDC part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -// ************************ LHC optics v6.5 ***************************** -// ---- Position of the magnetic elements of LHC beam optics ---- -// -> SIDE C -static const Float_t kCCorrBegin = -1972.5, kCCorrEnd = kCCorrBegin - 153., kCCorrSqRadius = 4.5*4.5; -// -static const Float_t kCTripletBegin = -2296.5; -static const Float_t kCQ1Begin = kCTripletBegin, kCQ1End = kCQ1Begin-637., kCQ1SqRadius = 3.5*3.5; -static const Float_t kCQ2Begin = kCTripletBegin-908.5, kCQ2End = kCQ2Begin-550., kCQ2SqRadius = 3.5*3.5; -static const Float_t kCQ3Begin = kCTripletBegin-1558.5, kCQ3End = kCQ3Begin-550., kCQ3SqRadius = 3.5*3.5; -static const Float_t kCQ4Begin = kCTripletBegin-2400., kCQ4End = kCQ4Begin-637., kCQ4SqRadius = 3.5*3.5; -// -static const Float_t kCD1Begin = -5838.3, kCD1End = kCD1Begin-945., kCD1SqRadius = 4.5*4.5; -static const Float_t kCD2Begin = -12167.8, kCD2End = kCD2Begin-945., kCD2SqRadius = 4.5*4.5; -static const Float_t kCD2XCentre1 = -9.7; -static const Float_t kCD2XCentre2 = 9.7; -// -// -> SIDE A -// NB -> kACorr1Begin = 919. to be checked -static const Float_t kACorr1Begin = 919., kACorr1End = kACorr1Begin+260., kCCorr1SqRadius = 4.*4.; -static const Float_t kACorr2Begin = 1972.5, kACorr2End = kACorr2Begin+153., kCCorr2SqRadius = 4.5*4.5; -static const Float_t kATripletBegin = 2296.5; -static const Float_t kAQ1Begin = kATripletBegin, kAQ1End = kAQ1Begin+637., kAQ1SqRadius = 3.5*3.5; -static const Float_t kAQ2Begin = kATripletBegin+908.5, kAQ2End = kAQ2Begin+550., kAQ2SqRadius = 3.5*3.5; -static const Float_t kAQ3Begin = kATripletBegin+1558.5, kAQ3End = kAQ3Begin+550., kAQ3SqRadius = 3.5*3.5; -static const Float_t kAQ4Begin = kATripletBegin+2400., kAQ4End = kAQ4Begin+637., kAQ4SqRadius = 3.5*3.5; -// -static const Float_t kAD1Begin = 5838.3, kAD1End = kAD1Begin+945., kAD1SqRadius = 3.375*3.375; -static const Float_t kAD2Begin = 12167.8, kAD2End = kAD2Begin+945., kAD2SqRadius = 3.75*3.75; -static const Float_t kAD2XCentre1 = -9.4; -static const Float_t kAD2XCentre2 = 9.4; - -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ZDC part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -#endif - diff --git a/STEER/AliMagFCM.cxx b/STEER/AliMagFCM.cxx deleted file mode 100644 index e3b8759a071..00000000000 --- a/STEER/AliMagFCM.cxx +++ /dev/null @@ -1,362 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - -//----------------------------------------------------------------------- -// Class for Alice magnetic field with constant mesh -// Used in the configuration macros (macros/Config.C, etc.) -// Author: -//----------------------------------------------------------------------- - -#include "TSystem.h" - -#include "TVector.h" - -#include "AliLog.h" -#include "AliMagFCM.h" - -ClassImp(AliMagFCM) - -//_______________________________________________________________________ -AliMagFCM::AliMagFCM(): - fXbeg(0), - fYbeg(0), - fZbeg(0), - fXdel(0), - fYdel(0), - fZdel(0), - fSolenoid(0), - fXdeli(0), - fYdeli(0), - fZdeli(0), - fXn(0), - fYn(0), - fZn(0), - fB(0) -{ - // - // Standard constructor - // - fType = kConMesh; - fMap = 2; - SetSolenoidField(); -} - -//_______________________________________________________________________ -AliMagFCM::AliMagFCM(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax): - AliMagFC(name,title,integ,factor,fmax), - fXbeg(0), - fYbeg(0), - fZbeg(0), - fXdel(0), - fYdel(0), - fZdel(0), - fSolenoid(0), - fXdeli(0), - fYdeli(0), - fZdeli(0), - fXn(0), - fYn(0), - fZn(0), - fB(0) -{ - // - // Standard constructor - // - fType = kConMesh; - fMap = 2; - SetSolenoidField(); - - AliDebug(1, Form( - "Constant Mesh Field %s created: map= %d, factor= %f, file= %s", - fName.Data(), fMap, factor,fTitle.Data())); -} - -//_______________________________________________________________________ -AliMagFCM::AliMagFCM(const AliMagFCM &magf): - AliMagFC(magf), - fXbeg(0), - fYbeg(0), - fZbeg(0), - fXdel(0), - fYdel(0), - fZdel(0), - fSolenoid(0), - fXdeli(0), - fYdeli(0), - fZdeli(0), - fXn(0), - fYn(0), - fZn(0), - fB(0) -{ - // - // Copy constructor - // - magf.Copy(*this); -} - -//_______________________________________________________________________ -void AliMagFCM::Field(const float *x, float *b) const -{ - // - // Method to calculate the magnetic field - // - Float_t ratx, raty, ratz, hix, hiy, hiz, ratx1, raty1, ratz1, - bhyhz, bhylz, blyhz, blylz, bhz, blz, xl[3]; - const Float_t kone=1; - Int_t ix, iy, iz; - - // --- find the position in the grid --- - - 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]= fSolenoid; - } else { - // The field map used here was calculated in a coordinate system where the muon arm is at z > 0 - // Transfom x -> -x and z -> -z - Float_t xm = - x[0]; - Float_t ym = x[1]; - Float_t zm = - x[2]; - - Bool_t infield=(fZbeg <= zm && zm < fZbeg+fZdel*(fZn-1) - && ( fXbeg <= TMath::Abs(xm) && TMath::Abs(xm) < fXbeg+fXdel*(fXn-1) ) - && ( fYbeg <= TMath::Abs(ym) && TMath::Abs(ym) < fYbeg+fYdel*(fYn-1) )); - if(infield) { - xl[0]=TMath::Abs(xm)-fXbeg; - xl[1]=TMath::Abs(ym)-fYbeg; - xl[2]=zm-fZbeg; - - // --- start with x - - hix=xl[0]*fXdeli; - ratx=hix-int(hix); - ix=int(hix); - - hiy=xl[1]*fYdeli; - raty=hiy-int(hiy); - iy=int(hiy); - - hiz=xl[2]*fZdeli; - ratz=hiz-int(hiz); - iz=int(hiz); - - if(fMap==2) { - // ... simple interpolation - ratx1=kone-ratx; - raty1=kone-raty; - ratz1=kone-ratz; - bhyhz = Bx(ix ,iy+1,iz+1)*ratx1+Bx(ix+1,iy+1,iz+1)*ratx; - bhylz = Bx(ix ,iy+1,iz )*ratx1+Bx(ix+1,iy+1,iz )*ratx; - blyhz = Bx(ix ,iy ,iz+1)*ratx1+Bx(ix+1,iy ,iz+1)*ratx; - blylz = Bx(ix ,iy ,iz )*ratx1+Bx(ix+1,iy ,iz )*ratx; - bhz = blyhz *raty1+bhyhz *raty; - blz = blylz *raty1+bhylz *raty; - b[0] = blz *ratz1+bhz *ratz; - // - bhyhz = By(ix ,iy+1,iz+1)*ratx1+By(ix+1,iy+1,iz+1)*ratx; - bhylz = By(ix ,iy+1,iz )*ratx1+By(ix+1,iy+1,iz )*ratx; - blyhz = By(ix ,iy ,iz+1)*ratx1+By(ix+1,iy ,iz+1)*ratx; - blylz = By(ix ,iy ,iz )*ratx1+By(ix+1,iy ,iz )*ratx; - bhz = blyhz *raty1+bhyhz *raty; - blz = blylz *raty1+bhylz *raty; - b[1] = blz *ratz1+bhz *ratz; - // - bhyhz = Bz(ix ,iy+1,iz+1)*ratx1+Bz(ix+1,iy+1,iz+1)*ratx; - bhylz = Bz(ix ,iy+1,iz )*ratx1+Bz(ix+1,iy+1,iz )*ratx; - blyhz = Bz(ix ,iy ,iz+1)*ratx1+Bz(ix+1,iy ,iz+1)*ratx; - blylz = Bz(ix ,iy ,iz )*ratx1+Bz(ix+1,iy ,iz )*ratx; - bhz = blyhz *raty1+bhyhz *raty; - blz = blylz *raty1+bhylz *raty; - b[2] = blz *ratz1+bhz *ratz; - //printf("ratx,raty,ratz,b[0],b[1],b[2] %f %f %f %f %f %f\n", - //ratx,raty,ratz,b[0],b[1],b[2]); - // - // ... use the dipole symmetry - if (xm*ym < 0) b[1]=-b[1]; - if (xm<0) b[2]=-b[2]; - b[0] = -b[0]; - b[2] = -b[2]; - - } else { - AliError(Form("Invalid field map for constant mesh %d",fMap)); - } - } else { -//This is the ZDC part - ZDCField(x,b); - } - - if(fFactor!=1) { - b[0]*=fFactor; - b[1]*=fFactor; - b[2]*=fFactor; - } - } -} - -//_______________________________________________________________________ -void AliMagFCM::Field(const double *x, double *b) const -{ - // - // Method to calculate the magnetic field - // - Double_t ratx, raty, ratz, hix, hiy, hiz, ratx1, raty1, ratz1, - bhyhz, bhylz, blyhz, blylz, bhz, blz, xl[3]; - const Double_t kone=1; - Int_t ix, iy, iz; - - // --- find the position in the grid --- - - 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]= fSolenoid; - } else { - // The field map used here was calculated in a coordinate system where the muon arm is at z > 0 - // Transfom x -> -x and z -> -z - Float_t xm = - x[0]; - Float_t ym = x[1]; - Float_t zm = - x[2]; - - Bool_t infield=(fZbeg <= zm && zm < fZbeg+fZdel*(fZn-1) - && ( fXbeg <= TMath::Abs(xm) && TMath::Abs(xm) < fXbeg+fXdel*(fXn-1) ) - && ( fYbeg <= TMath::Abs(ym) && TMath::Abs(ym) < fYbeg+fYdel*(fYn-1) )); - if(infield) { - xl[0]=TMath::Abs(xm)-fXbeg; - xl[1]=TMath::Abs(ym)-fYbeg; - xl[2]=zm-fZbeg; - - // --- start with x - - hix=xl[0]*fXdeli; - ratx=hix-int(hix); - ix=int(hix); - - hiy=xl[1]*fYdeli; - raty=hiy-int(hiy); - iy=int(hiy); - - hiz=xl[2]*fZdeli; - ratz=hiz-int(hiz); - iz=int(hiz); - - if(fMap==2) { - // ... simple interpolation - ratx1=kone-ratx; - raty1=kone-raty; - ratz1=kone-ratz; - bhyhz = Bx(ix ,iy+1,iz+1)*ratx1+Bx(ix+1,iy+1,iz+1)*ratx; - bhylz = Bx(ix ,iy+1,iz )*ratx1+Bx(ix+1,iy+1,iz )*ratx; - blyhz = Bx(ix ,iy ,iz+1)*ratx1+Bx(ix+1,iy ,iz+1)*ratx; - blylz = Bx(ix ,iy ,iz )*ratx1+Bx(ix+1,iy ,iz )*ratx; - bhz = blyhz *raty1+bhyhz *raty; - blz = blylz *raty1+bhylz *raty; - b[0] = blz *ratz1+bhz *ratz; - // - bhyhz = By(ix ,iy+1,iz+1)*ratx1+By(ix+1,iy+1,iz+1)*ratx; - bhylz = By(ix ,iy+1,iz )*ratx1+By(ix+1,iy+1,iz )*ratx; - blyhz = By(ix ,iy ,iz+1)*ratx1+By(ix+1,iy ,iz+1)*ratx; - blylz = By(ix ,iy ,iz )*ratx1+By(ix+1,iy ,iz )*ratx; - bhz = blyhz *raty1+bhyhz *raty; - blz = blylz *raty1+bhylz *raty; - b[1] = blz *ratz1+bhz *ratz; - // - bhyhz = Bz(ix ,iy+1,iz+1)*ratx1+Bz(ix+1,iy+1,iz+1)*ratx; - bhylz = Bz(ix ,iy+1,iz )*ratx1+Bz(ix+1,iy+1,iz )*ratx; - blyhz = Bz(ix ,iy ,iz+1)*ratx1+Bz(ix+1,iy ,iz+1)*ratx; - blylz = Bz(ix ,iy ,iz )*ratx1+Bz(ix+1,iy ,iz )*ratx; - bhz = blyhz *raty1+bhyhz *raty; - blz = blylz *raty1+bhylz *raty; - b[2] = blz *ratz1+bhz *ratz; - //printf("ratx,raty,ratz,b[0],b[1],b[2] %f %f %f %f %f %f\n", - //ratx,raty,ratz,b[0],b[1],b[2]); - // - // ... use the dipole symmetry - if (xm*ym < 0) b[1]=-b[1]; - if (xm<0) b[2]=-b[2]; - b[0] = -b[0]; - b[2] = -b[2]; - - } else { - AliError(Form("Invalid field map for constant mesh %d",fMap)); - } - } else { -//This is the ZDC part - ZDCField(x,b); - } - - if(fFactor!=1) { - b[0]*=fFactor; - b[1]*=fFactor; - b[2]*=fFactor; - } - } -} - -//_______________________________________________________________________ -void AliMagFCM::ReadField() -{ - // - // Method to read the magnetic field map from file - // - FILE *magfile; - Int_t ix, iy, iz, ipx, ipy, ipz; - Float_t bx, by, bz; - char *fname; - AliDebug(1,Form("Reading Magnetic Field %s from file %s",fName.Data(),fTitle.Data())); - fname = gSystem->ExpandPathName(fTitle.Data()); - magfile=fopen(fname,"r"); - delete [] fname; - if (magfile) { - fscanf(magfile,"%d %d %d %f %f %f %f %f %f", - &fXn, &fYn, &fZn, &fXdel, &fYdel, &fZdel, &fXbeg, &fYbeg, &fZbeg); - AliDebug(2,Form("fXn %d, fYn %d, fZn %d, fXdel %f, fYdel %f, fZdel %f, fXbeg %f, fYbeg %f, fZbeg %f", - fXn, fYn, fZn, fXdel, fYdel, fZdel, fXbeg, fYbeg, fZbeg)); - fXdeli=1./fXdel; - fYdeli=1./fYdel; - fZdeli=1./fZdel; - fB = new TVector(3*fXn*fYn*fZn); - for (iz=0; iz - -class AliMagFCM : public AliMagFC -{ - //Alice Magnetic Field with constant mesh - -public: - AliMagFCM(); - AliMagFCM(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax); - AliMagFCM(const AliMagFCM &mag); - virtual ~AliMagFCM() {delete fB;} - virtual void Field(const float *x, float *b) const; - virtual void Field(const double *x, double *b) const; - virtual void ReadField(); - virtual void SetSolenoidField(Float_t field = 2.) {fSolenoid = field;} - virtual Float_t SolenoidField() const { - return -Factor()*fSolenoid; - } - - void Copy(TObject &magf) const; - virtual AliMagFCM & operator=(const AliMagFCM &magf) - {magf.Copy(*this); return *this;} - - Float_t Bx(Int_t ix, Int_t iy, Int_t iz) const { - return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)); - } - Float_t By(Int_t ix, Int_t iy, Int_t iz) const { - return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+1); - } - Float_t Bz(Int_t ix, Int_t iy, Int_t iz) const { - return (*fB)(3*(iz*(fXn*fYn)+iy*fXn+ix)+2); - } - -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 - 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 -}; - -#endif diff --git a/STEER/AliMagFCheb.cxx b/STEER/AliMagFCheb.cxx deleted file mode 100644 index 34a31f4b4cf..00000000000 --- a/STEER/AliMagFCheb.cxx +++ /dev/null @@ -1,160 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - - -#include -#include -#include - -#include "AliMagFCheb.h" -#include "AliMagWrapCheb.h" -#include "AliLog.h" - -ClassImp(AliMagFCheb) - - -//_______________________________________________________________________ -AliMagFCheb::AliMagFCheb(): - AliMagFC(), - fMeasuredMap(0), - fSolenoid(5.) -{ - // Default constructor - // -} - -//_______________________________________________________________________ -AliMagFCheb::AliMagFCheb(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax, Int_t map, - Bool_t dipoleON,const char* path): - AliMagFC(name, title, integ, factor, fmax), - fMeasuredMap(0), - fSolenoid(5.) -{ - // - fMap = map; - char* fname = gSystem->ExpandPathName(path); - TFile* file = TFile::Open(fname); - if (!file) { - AliError(Form("Failed to open magnetic field data file %s\n",fname)); - return; - } - const char* parname = 0; - if (fMap == k2kG) { - fSolenoid = 2.; - parname = dipoleON ? "Sol12_Dip6_Hole":"Sol12_Dip0_Hole"; - } else if (fMap == k5kG) { - fSolenoid = 5.; - parname = dipoleON ? "Sol30_Dip6_Hole":"Sol30_Dip0_Hole"; - } else { - AliError(Form("Unknown field identifier %d is requested\n",fMap)); - return; - } - // - fMeasuredMap = dynamic_cast(file->Get(parname)); - if (!fMeasuredMap) { - AliError(Form("Did not find field %s in %s\n",parname,fname)); - return; - } - file->Close(); - delete file; -} - - -//_______________________________________________________________________ -AliMagFCheb::AliMagFCheb(const AliMagFCheb &src): - AliMagFC(src), - fMeasuredMap(0), - fSolenoid(src.fSolenoid) -{ - if (src.fMeasuredMap) fMeasuredMap = new AliMagWrapCheb(*src.fMeasuredMap); -} - -//_______________________________________________________________________ -AliMagFCheb::~AliMagFCheb() -{ - delete fMeasuredMap; -} - -//_______________________________________________________________________ -void AliMagFCheb::GetTPCInt(const Float_t *xyz, Float_t *b) const -{ - // Method to calculate the integral of magnetic integral from xyz to nearest cathode plane - // - b[0]=b[1]=b[2]=0.0; - if (fMeasuredMap) fMeasuredMap->GetTPCInt(xyz,b); - for (int i=3;i--;) b[i] *= fFactor; -} - -//_______________________________________________________________________ -void AliMagFCheb::GetTPCIntCyl(const Float_t *rphiz, Float_t *b) const -{ - // Method to calculate the integral of magnetic integral from point to nearest cathode plane - // in cylindrical coordiates ( -piGetTPCIntCyl(rphiz,b); - for (int i=3;i--;) b[i] *= fFactor; -} - -//_______________________________________________________________________ -void AliMagFCheb::Field(const Float_t *xyz, Float_t *b) const -{ - // Method to calculate the field at point xyz - // - b[0]=b[1]=b[2]=0.0; - if (xyz[2] > 919. || xyz[2] < -1972.) { - ZDCField(xyz, b); - } else { - if (fMeasuredMap && fFactor !=0.) { - fMeasuredMap->Field(xyz,b); - for (int i=3;i--;) b[i] *= fFactor; - } - } -} - -//_______________________________________________________________________ -void AliMagFCheb::Field(const Double_t *xyz, Double_t *b) const -{ - // Method to calculate the field at point xyz - // - b[0]=b[1]=b[2]=0.0; - if (xyz[2] > 919. || xyz[2] < -1972.) { - ZDCField(xyz, b); - } - else { - if (fMeasuredMap && fFactor !=0.) { - fMeasuredMap->Field(xyz,b); - for (int i=3;i--;) b[i] *= fFactor; - } - } -} - -//_______________________________________________________________________ -AliMagFCheb& AliMagFCheb::operator=(const AliMagFCheb& maps) -{ - fSolenoid=maps.fSolenoid; - if (this != &maps && maps.fMeasuredMap) { - if (fMeasuredMap) delete fMeasuredMap; - fMeasuredMap = new AliMagWrapCheb(*maps.fMeasuredMap); - } - return *this; -} - -//_______________________________________________________________________ -void AliMagFCheb::SetMeasuredMap(AliMagWrapCheb* parm) -{ - if (fMeasuredMap) delete fMeasuredMap; - fMeasuredMap = parm; -} diff --git a/STEER/AliMagFCheb.h b/STEER/AliMagFCheb.h deleted file mode 100644 index 74e706fed89..00000000000 --- a/STEER/AliMagFCheb.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef ALIMAGFCHEB_H -#define ALIMAGFCHEB_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -// -// Interface between the AliMagWrapCheb and AliMagF: set of magnetic field data + Tosca -// parameterization by Chebyshev polynomials -// -// Author: ruben.shahoyan@cern.ch -// - -#include "AliMagFC.h" -class AliMagWrapCheb; - - -class AliMagFCheb : public AliMagFC -{ -public: - enum constants {k2kG, k4kG, k5kG}; - AliMagFCheb(); - AliMagFCheb(const char *name, const char *title, Int_t integ, - Float_t factor=1, Float_t fmax=15, Int_t map = k2kG, - Bool_t dipoleON = kTRUE, - const char* path="$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); - AliMagFCheb(const AliMagFCheb& maps); - AliMagFCheb& operator=(const AliMagFCheb& maps); - virtual ~AliMagFCheb(); - // - virtual void Field(const Float_t *x, Float_t *b) const; - virtual void Field(const Double_t *x, Double_t *b) const; - virtual void GetTPCInt(const Float_t *xyz, Float_t *b) const; - virtual void GetTPCIntCyl(const Float_t *rphiz, Float_t *b) const; - // - AliMagWrapCheb* GetMeasuredMap() const {return fMeasuredMap;} - void SetMeasuredMap(AliMagWrapCheb* parm); - virtual Float_t SolenoidField() const {return -Factor()*fSolenoid;} - // - protected: - AliMagWrapCheb* fMeasuredMap; // Measured part of the field map - Float_t fSolenoid; // Solenoid field setting - // - ClassDef(AliMagFCheb, 2) // Class for all Alice MagField wrapper for measured data + Tosca parameterization -}; - - -#endif diff --git a/STEER/AliMagFDM.cxx b/STEER/AliMagFDM.cxx deleted file mode 100644 index 28c509a86d8..00000000000 --- a/STEER/AliMagFDM.cxx +++ /dev/null @@ -1,919 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - -//------------------------------------------------------------------------- -// Field with Magnetic Field map -// Used by AliRun class -// Author: -//------------------------------------------------------------------------- - -#include -#include - -#include "AliLog.h" -#include "AliMagFDM.h" - -ClassImp(AliMagFDM) - -//_______________________________________________________________________ -AliMagFDM::AliMagFDM(): - fSolenoid(0), - fInd(0), - fZmin(0), - fZmax(0), - fYmax(0), - fYmin(0), - fZpmx(0), - fZpmn(0), - fRmax(0), - fRmin(0), - fXdel(0), - fYdel(0), - fZdel(0), - fRdel(0), - fPhid(0), - fZpdl(0), - fCx1(0), - fCx2(0), - fAx1(0), - fAx2(0), - fXl(0), - fYl(0), - fZl(0), - fRn(0), - fPhin(0), - fZpl(0) -{ - // - // Default constructor for the Dipole field - // -} - -//_______________________________________________________________________ -AliMagFDM::AliMagFDM(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax): - AliMagFC(name,title,integ,factor,fmax), - fSolenoid(0), - fInd(0), - fZmin(0), - fZmax(0), - fYmax(0), - fYmin(0), - fZpmx(0), - fZpmn(0), - fRmax(0), - fRmin(0), - fXdel(0), - fYdel(0), - fZdel(0), - fRdel(0), - fPhid(0), - fZpdl(0), - fCx1(0), - fCx2(0), - fAx1(0), - fAx2(0), - fXl(0), - fYl(0), - fZl(0), - fRn(0), - fPhin(0), - fZpl(0) -{ - // - // Standard constructor for the Dipole field - // - fType = kDipoMap; - fMap = 3; - SetSolenoidField(); - - AliDebug(1, Form( - "Field Map for Muon Arm from IP till muon filter %s created: map= %d, integ= %d, factor= %f, file=%s", - fName.Data(), fMap ,integ,factor,fTitle.Data())); - -} - -//_______________________________________________________________________ -void AliMagFDM::Field(const float *xfi, float *b) const -{ - // - // Main routine to compute the field in a point - // - const Double_t keps=0.1E-06; - const Double_t kPI2=2.*TMath::Pi(); - const Double_t kone=1; - - const Int_t kiip=33; - const Int_t kmiip=0; - const Int_t kliip=0; - - const Int_t kiic=0; - const Int_t kmiic=0; - const Int_t kliic=0; - - const Double_t kfZbg=502.92; // Start of Map using in z - const Double_t kfZL3=600; // Beginning of L3 door in z - - Double_t x[3]; - Double_t xL3[3]; - Double_t bint[3]; - - Double_t r0; - Int_t iKvar,jb; - - Double_t zp1, zp2,xp1,xp2,yp1,yp2; - Double_t zz1, zz2,yy1,yy2,x2,x1; - -// --- start the map fiel from z = 502.92 cm --- -// -// This map has been calculated in a coordinate system in which the muon spectrometer sits at z > 0 -// Transfor correspondingly. - - x[0] = - xfi[0]; - x[1] = xfi[1]; - x[2] = - xfi[2]; - b[0]=b[1]=b[2]=0; -// - // printf("x[0] %f,x[1] %f,x[2] %f\n",x[0],x[1],x[2]); - - Double_t rr=TMath::Sqrt(x[0]*x[0]+x[1]*x[1]); - r0=rr/100; - Double_t rPmax; - rPmax=fRmax; - if ( (-700rPmax*100 && rr< 560)) ) - { - b[0]=b[1]=0; - b[2]=fSolenoid; - } - - xL3[0]=x[0]/100; - xL3[1]=(x[1]+30)/100; - xL3[2]=x[2]/100; - - - if (TMath::Abs(xL3[0])<=0.1E-06) xL3[0]=TMath::Sign(0.1E-05,xL3[0]); - if (TMath::Abs(xL3[1])<=0.1E-06) xL3[1]=TMath::Sign(0.1E-05,xL3[1]); - - Double_t xminn=xL3[2]*fAx1+fCx1; - Double_t xmaxx=xL3[2]*fAx2+fCx2; - Double_t zCmin,zCmax,yCmin,yCmax; - - zCmin=fZmin; - zCmax=fZmax; - yCmin=fYmin; - yCmax=fYmax; -if ((kfZbg/100 kone) { - AliDebug(2,Form("xL3[0] %e, xL3[1] %e, xL3[2] %e, yyp %e, r0 %e, cphi %e",xL3[0],xL3[1],xL3[2],yyp,r0,cphi)); - cphi =kone; - kcphi=777; - } - ph0=TMath::ACos(cphi); - if (xL3[0] < 0 && yyp > 0 ) {ph0=kPI2/2 - ph0;} - if (xL3[0] < 0 && yyp < 0 ) {ph0=kPI2/2 + ph0;} - if (xL3[0] > 0 && yyp < 0 ) {ph0=kPI2 - ph0;} - if (ph0 > kPI2) { ph0=ph0 - kPI2;} - if (kcphi==777) { - AliDebug(2,Form("xL3[0] %e, xL3[1] %e, xL3[2] %e, yyp %e, r0 %e, ph0 %e",xL3[0],xL3[1],xL3[2],yyp,r0,ph0)); - } - fip=ph0; - mp0=FZ(fip,fPhi,fPhid ,mpi,fPhin); - xp2=(fip-fPhi[mp0])/(fPhi[mp0+1]-fPhi[mp0]); - xp1=kone-xp2; - - Double_t rDel; - rDel=fRdel; - - if (r0<= fRdel) - { - - if(r0< keps) - { - - bint[0]=(zp1*fBpx[kp0][0][0] + zp2*fBpx[kp0+1][0][0])*10; - bint[1]=(zp1*fBpy[kp0][0][0] + zp2*fBpy[kp0+1][0][0])*10; - bint[2]=(zp1*fBpz[kp0][0][0] + zp2*fBpz[kp0+1][0][0])*10; - - } else { - - alp2= fB[0][0][mp0]*yyp + fB[0][1][mp0]*xL3[0]; - alp3= fB[1][0][mp0]*yyp + fB[1][1][mp0]*xL3[0]; - alp1= kone - alp2 - alp3; - - for (jb=0; jb<3 ; jb++) - { - iKvar=jb; - bint[jb] = Ba(iKvar,zp1,zp2,alp1,alp2,alp3, kp0,mp0)*10 ; - } - } // end of keps <=r0 - } - else - { - rp=r0; - - lp0=FZ(rp,fR ,fRdel,lpi,fRn); - yp2=(rp-fR[lp0])/(fR[lp0+1]-fR[lp0]); - yp1=kone-yp2; - - for (jb=0; jb<3 ; jb++) - { - iKvar=jb; - bint[jb] = Bb(zp1,zp2,yp1,yp2,xp1,xp2,iKvar,kp0,lp0,mp0)*10 ; - } - } - - b[0]=-bint[0]; - b[1]=bint[1]; - b[2]=-bint[2]; - - } - else - { - //-------------- Cartensian part ------------------ - - Double_t zzc,yyc; - Int_t k0, l0,m0; - Double_t xx1, xx2,dx, xxx ,xXl; - Int_t kci,mci,lci; - - kci=kiic; - lci=kliic; - mci=kmiic; - - xx1 = fAx1*xL3[2] + fCx1; - xx2 = fAx2*xL3[2] + fCx2; - - zzc=xL3[2]; - k0=FZ(zzc, fZc ,fZdel, kci, fZl); - zz2=(zzc-fZc[k0])/(fZc[k0+1]-fZc[k0]); - zz1=kone - zz2;; - - yyc=xL3[1]; - l0=FZ(yyc, fY , fYdel,lci,fYl); - yy2=(yyc-fY[l0])/(fY[l0+1]-fY[l0]);; - yy1=kone - yy2; - xXl = fXl-kone; - dx = (xx2-xx1)/xXl; - xxx= xL3[0]-xx1; - m0 = int(xxx/dx); - - if(xL3[0]<(xx1+m0*dx) || xL3[0] >(xx1+(m0+1)*dx)) - { - m0=m0+1; - AliDebug(2,Form(" m0 %d, m0+1 %d\n",m0,m0+1)); - } - - x2=(xL3[0]-( xx1+m0*dx))/dx; - x1=kone-x2; - m0=m0-1; - for (jb=3; jb<6; jb++) - { - iKvar=jb; - bint[jb-3] = Bb(zz1,zz2,yy1,yy2,x1,x2,iKvar,k0, l0, m0)*10 ; - } - - b[0]=-bint[0]; - b[1]=bint[1]; - b[2]=-bint[2]; - - } - - - } else { - AliError(Form("Unknown map of Dipole region %d",fMap)); - } - -} else { - ZDCField(xfi,b); - - } - - if(fFactor!=1) { - b[0]*=fFactor; - b[1]*=fFactor; - b[2]*=fFactor; - } -} - -//_______________________________________________________________________ -void AliMagFDM::Field(const double *xfi, double *b) const -{ - // - // Main routine to compute the field in a point - // - const Double_t keps=0.1E-06; - const Double_t kPI2=2.*TMath::Pi(); - const Double_t kone=1; - - const Int_t kiip=33; - const Int_t kmiip=0; - const Int_t kliip=0; - - const Int_t kiic=0; - const Int_t kmiic=0; - const Int_t kliic=0; - - const Double_t kfZbg=502.92; // Start of Map using in z - const Double_t kfZL3=600; // Beginning of L3 door in z - - Double_t x[3]; - Double_t xL3[3]; - Double_t bint[3]; - - Double_t r0; - Int_t iKvar,jb; - - Double_t zp1, zp2,xp1,xp2,yp1,yp2; - Double_t zz1, zz2,yy1,yy2,x2,x1; - -// --- start the map fiel from z = 502.92 cm --- -// -// This map has been calculated in a coordinate system in which the muon spectrometer sits at z > 0 -// Transfor correspondingly. - - x[0] = - xfi[0]; - x[1] = xfi[1]; - x[2] = - xfi[2]; - b[0]=b[1]=b[2]=0; -// - // printf("x[0] %f,x[1] %f,x[2] %f\n",x[0],x[1],x[2]); - - Double_t rr=TMath::Sqrt(x[0]*x[0]+x[1]*x[1]); - r0=rr/100; - Double_t rPmax; - rPmax=fRmax; - if ( (-700rPmax*100 && rr< 560)) ) - { - b[0]=b[1]=0; - b[2]=fSolenoid; - } - - xL3[0]=x[0]/100; - xL3[1]=(x[1]+30)/100; - xL3[2]=x[2]/100; - - - if (TMath::Abs(xL3[0])<=0.1E-06) xL3[0]=TMath::Sign(0.1E-05,xL3[0]); - if (TMath::Abs(xL3[1])<=0.1E-06) xL3[1]=TMath::Sign(0.1E-05,xL3[1]); - - Double_t xminn=xL3[2]*fAx1+fCx1; - Double_t xmaxx=xL3[2]*fAx2+fCx2; - Double_t zCmin,zCmax,yCmin,yCmax; - - zCmin=fZmin; - zCmax=fZmax; - yCmin=fYmin; - yCmax=fYmax; -if ((kfZbg/100 kone) { - AliDebug(2,Form("xL3[0] %e, xL3[1] %e, xL3[2] %e, yyp %e, r0 %e, cphi %e",xL3[0],xL3[1],xL3[2],yyp,r0,cphi)); - cphi =kone; - kcphi=777; - } - ph0=TMath::ACos(cphi); - if (xL3[0] < 0 && yyp > 0 ) {ph0=kPI2/2 - ph0;} - if (xL3[0] < 0 && yyp < 0 ) {ph0=kPI2/2 + ph0;} - if (xL3[0] > 0 && yyp < 0 ) {ph0=kPI2 - ph0;} - if (ph0 > kPI2) { ph0=ph0 - kPI2;} - if (kcphi==777) { - AliDebug(2,Form("xL3[0] %e, xL3[1] %e, xL3[2] %e, yyp %e, r0 %e, ph0 %e",xL3[0],xL3[1],xL3[2],yyp,r0,ph0)); - } - fip=ph0; - mp0=FZ(fip,fPhi,fPhid ,mpi,fPhin); - xp2=(fip-fPhi[mp0])/(fPhi[mp0+1]-fPhi[mp0]); - xp1=kone-xp2; - - Double_t rDel; - rDel=fRdel; - - if (r0<= fRdel) - { - - if(r0< keps) - { - - bint[0]=(zp1*fBpx[kp0][0][0] + zp2*fBpx[kp0+1][0][0])*10; - bint[1]=(zp1*fBpy[kp0][0][0] + zp2*fBpy[kp0+1][0][0])*10; - bint[2]=(zp1*fBpz[kp0][0][0] + zp2*fBpz[kp0+1][0][0])*10; - - } else { - - alp2= fB[0][0][mp0]*yyp + fB[0][1][mp0]*xL3[0]; - alp3= fB[1][0][mp0]*yyp + fB[1][1][mp0]*xL3[0]; - alp1= kone - alp2 - alp3; - - for (jb=0; jb<3 ; jb++) - { - iKvar=jb; - bint[jb] = Ba(iKvar,zp1,zp2,alp1,alp2,alp3, kp0,mp0)*10 ; - } - } // end of keps <=r0 - } - else - { - rp=r0; - - lp0=FZ(rp,fR ,fRdel,lpi,fRn); - yp2=(rp-fR[lp0])/(fR[lp0+1]-fR[lp0]); - yp1=kone-yp2; - - for (jb=0; jb<3 ; jb++) - { - iKvar=jb; - bint[jb] = Bb(zp1,zp2,yp1,yp2,xp1,xp2,iKvar,kp0,lp0,mp0)*10 ; - } - } - - b[0]=-bint[0]; - b[1]=bint[1]; - b[2]=-bint[2]; - - } - else - { - //-------------- Cartensian part ------------------ - - Double_t zzc,yyc; - Int_t k0, l0,m0; - Double_t xx1, xx2,dx, xxx ,xXl; - Int_t kci,mci,lci; - - kci=kiic; - lci=kliic; - mci=kmiic; - - xx1 = fAx1*xL3[2] + fCx1; - xx2 = fAx2*xL3[2] + fCx2; - - zzc=xL3[2]; - k0=FZ(zzc, fZc ,fZdel, kci, fZl); - zz2=(zzc-fZc[k0])/(fZc[k0+1]-fZc[k0]); - zz1=kone - zz2;; - - yyc=xL3[1]; - l0=FZ(yyc, fY , fYdel,lci,fYl); - yy2=(yyc-fY[l0])/(fY[l0+1]-fY[l0]);; - yy1=kone - yy2; - xXl = fXl-kone; - dx = (xx2-xx1)/xXl; - xxx= xL3[0]-xx1; - m0 = int(xxx/dx); - - if(xL3[0]<(xx1+m0*dx) || xL3[0] >(xx1+(m0+1)*dx)) - { - m0=m0+1; - AliDebug(2,Form(" m0 %d, m0+1 %d\n",m0,m0+1)); - } - - x2=(xL3[0]-( xx1+m0*dx))/dx; - x1=kone-x2; - m0=m0-1; - for (jb=3; jb<6; jb++) - { - iKvar=jb; - bint[jb-3] = Bb(zz1,zz2,yy1,yy2,x1,x2,iKvar,k0, l0, m0)*10 ; - } - - b[0]=-bint[0]; - b[1]=bint[1]; - b[2]=-bint[2]; - - } - - - } else { - AliError(Form("Unknown map of Dipole region %d",fMap)); - } - -} else { - ZDCField(xfi,b); - - } - - if(fFactor!=1) { - b[0]*=fFactor; - b[1]*=fFactor; - b[2]*=fFactor; - } -} - - -//_______________________________________________________________________ -Int_t AliMagFDM::FZ(Double_t temp, const Float_t *Ar, - Float_t delu, Int_t ik, Int_t nk) const -{ - // - // Quest of a point position at x,y,z (Cartensian) and R,Phi,z (Polar) axises - // - Int_t l,ikj; - Double_t ddu,ar; - - Int_t ku,kf; - kf=0; - ar=Ar[ik]; - ddu=temp-ar; - - ku=int(ddu/delu); - ikj=ik+ku+1; - if (ddu<=0) ikj=0; - - for(l=ikj; lExpandPathName(fTitle.Data()); - magfile=fopen(fname,"r"); - delete [] fname; - - AliDebug(2,"Cartensian part"); - - if (magfile) { - -// Cartensian part - - fscanf(magfile,"%d %d %d ",&fYl, &fXl, &fZl); - - AliDebug(3,Form("fYl %d, fXl %d, fZl %d",fYl, fXl, fZl)); - - for (ik=0; ik -//------------------------------------------------------------------------ - -#include -#include -#include -#include - -#include "AliLog.h" -#include "AliFieldMap.h" -#include "AliMagFMaps.h" - -ClassImp(AliMagFMaps) - - -//_______________________________________________________________________ -AliMagFMaps::AliMagFMaps(): - fSolenoid(0), - fSolenoidUser(0.), - fL3Option(0) -{ - // - // Default constructor - // - // - // Don't replicate field information in gAlice - fFieldMap[0] = fFieldMap[1] = fFieldMap[2] = 0; -} - -//_______________________________________________________________________ -AliMagFMaps::AliMagFMaps(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax, Int_t map, - Int_t l3): - AliMagFC(name,title,integ,factor,fmax), - fSolenoid(0), - fSolenoidUser(0), - fL3Option(l3) -{ - // - // Standard constructor - // - fType = kConMesh; - fFieldMap[0] = 0; - fMap = map; - fL3Option = l3; - ReadField(); - // - // Don't replicate field information in gAlice - for (Int_t i = 0; i < 3; i++) fFieldMap[i]->SetWriteEnable(0); - // -} - -//_______________________________________________________________________ -AliMagFMaps::AliMagFMaps(const AliMagFMaps &magf): - AliMagFC(magf), - fSolenoid(0), - fSolenoidUser(0), - fL3Option(0) -{ - // - // Copy constructor - // - magf.Copy(*this); -} - -//_______________________________________________________________________ -AliMagFMaps::~AliMagFMaps() -{ - // - // Destructor - // - delete fFieldMap[0]; - delete fFieldMap[1]; - delete fFieldMap[2]; -} - -//_______________________________________________________________________ -void AliMagFMaps::ReadField() -{ - // Read Field Map from file - // - // don't read twice - // - if (!fReadField) return; - fReadField = kFALSE; - // - - - char* fname = 0; - TFile* file = 0; - if (fMap == k2kG) { - fSolenoid = 2.; - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/L3B02.root"); - file = new TFile(fname); - fFieldMap[0] = dynamic_cast(file->Get("L3B02")); - file->Close(); - delete file; - delete [] fname; // see documentation to expand filenam - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/DipB02.root"); - file = new TFile(fname); - fFieldMap[1] = dynamic_cast(file->Get("DipB02")); - file->Close(); - delete file;; - delete [] fname; - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/ExtB02.root"); - file = new TFile(fname); - fFieldMap[2] = dynamic_cast(file->Get("ExtB02")); - file->Close(); - delete file; - delete [] fname; - } else if (fMap == k4kG) { - fSolenoid = 4.; - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/L3B04.root"); - file = new TFile(fname); - fFieldMap[0] = dynamic_cast(file->Get("L3B04")); - file->Close(); - delete file; - delete [] fname; - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/DipB04.root"); - file = new TFile(fname); - fFieldMap[1] = dynamic_cast(file->Get("DipB04")); - file->Close(); - delete [] fname; - delete file; - - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/ExtB04.root"); - file = new TFile(fname); - fFieldMap[2] = dynamic_cast(file->Get("ExtB04")); - file->Close(); - delete [] fname; - delete file; - } else if (fMap == k5kG) { - fSolenoid = 5.; - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/L3B05.root"); - file = new TFile(fname); - fFieldMap[0] = dynamic_cast(file->Get("L3B05")); - file->Close(); - delete file; - delete [] fname; - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/DipB05.root"); - file = new TFile(fname); - fFieldMap[1] = dynamic_cast(file->Get("DipB05")); - file->Close(); - delete file; - delete [] fname; - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/ExtB05.root"); - file = new TFile(fname); - fFieldMap[2] = dynamic_cast(file->Get("ExtB05")); - file->Close(); - delete file; - delete [] fname; - } - - if (!fL3Option) fSolenoidUser = fSolenoid; - -} - -//_______________________________________________________________________ -Float_t AliMagFMaps::SolenoidField() const -{ - // - // Returns max. L3 (solenoid) field strength - // according to field map setting - // - return -Factor()*fSolenoid; -} - -//_______________________________________________________________________ -void AliMagFMaps::Field(const float *x, float *b) const -{ - // - // Method to calculate the magnetic field - // - // --- find the position in the grid --- - - - - // if (!fFieldRead) ReadField(); - - // - // Field Maps have been calculated for the coordinate system in which - // the Muon Spectrometer is placed at z > 0 - // Transform coordinates corresponingly - // - - b[0]=b[1]=b[2]=0; - Float_t xm[3]; - xm[0] = - x[0]; - xm[1] = x[1]; - xm[2] = - x[2]; - - AliFieldMap* map = 0; - if (fFieldMap[0]->Inside(xm[0], xm[1], xm[2])) { - map = fFieldMap[0]; - Float_t r = TMath::Sqrt(xm[0] * xm[0] + xm[1] * xm[1]); - - if (!fL3Option && TMath::Abs(xm[2]) < 370. && r < 550.) { - // - // Constant L3 field , if this option was selected - // - b[2] = (- fSolenoid)*fFactor; - return; - } - } else if (fFieldMap[1]->Inside(xm[0], xm[1], xm[2])) { - map = fFieldMap[1]; - } else if (fFieldMap[2]->Inside(xm[0], xm[1], xm[2])) { - map = fFieldMap[2]; - } - - if(map){ - map->Field(xm,b); - b[0] = - b[0]; - b[2] = - b[2]; - - if(fFactor!=1) { - b[0]*=fFactor; - b[1]*=fFactor; - b[2]*=fFactor; - } - } else { - //This is the ZDC part - ZDCField(x, b); - } -} - -//_______________________________________________________________________ -void AliMagFMaps::Field(const double *x, double *b) const -{ - // - // Method to calculate the magnetic field - // - // --- find the position in the grid --- - - // if (!fFieldRead) ReadField(); - - // - // Field Maps have been calculated for the coordinate system in which - // the Muon Spectrometer is placed at z > 0 - // Transform coordinates corresponingly - // - - b[0]=b[1]=b[2]=0; - double xm[3]; - xm[0] = - x[0]; - xm[1] = x[1]; - xm[2] = - x[2]; - - AliFieldMap* map = 0; - if (fFieldMap[0]->Inside(xm[0], xm[1], xm[2])) { - map = fFieldMap[0]; - Float_t r = TMath::Sqrt(xm[0] * xm[0] + xm[1] * xm[1]); - - if (!fL3Option && TMath::Abs(xm[2]) < 370. && r < 550.) { - // - // Constant L3 field , if this option was selected - // - b[2] = (- fSolenoid)*fFactor; - return; - } - } else if (fFieldMap[1]->Inside(xm[0], xm[1], xm[2])) { - map = fFieldMap[1]; - } else if (fFieldMap[2]->Inside(xm[0], xm[1], xm[2])) { - map = fFieldMap[2]; - } - - if(map){ - map->Field(xm,b); - b[0] = - b[0]; - b[2] = - b[2]; - - if(fFactor!=1) { - b[0]*=fFactor; - b[1]*=fFactor; - b[2]*=fFactor; - } - } else { - //This is the ZDC part - ZDCField(x, b); - } -} - -//_______________________________________________________________________ -void AliMagFMaps::Copy(TObject & /* magf */) const -{ - // - // Copy *this onto magf -- Not implemented - // - AliFatal("Not implemented!"); -} - -//_______________________________________________________________________ -void AliMagFMaps::Streamer(TBuffer &R__b) -{ - // Stream an object of class AliMagFMaps. - if (R__b.IsReading()) { - R__b.ReadClassBuffer(AliMagFMaps::Class(), this); - // - fReadField = kTRUE; - ReadField(); - } else { - R__b.WriteClassBuffer(AliMagFMaps::Class(), this); - } -} diff --git a/STEER/AliMagFMaps.h b/STEER/AliMagFMaps.h deleted file mode 100644 index 3256e24cf0b..00000000000 --- a/STEER/AliMagFMaps.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef ALIMAGFMAPS_H -#define ALIMAGFMAPS_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -/* $Id$ */ - -// -// Magnetic field composed by 3 maps: the L3 magnet, extended region, and -// dipole magnet -// Author: Andreas Morsch -// - -#include "AliMagFC.h" -class AliFieldMap; - -class AliMagFMaps : public AliMagFC -{ - //Alice Magnetic Field with constant mesh - -public: - enum constants {k2kG, k4kG, k5kG}; - AliMagFMaps(); - AliMagFMaps(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax, Int_t map = k2kG, - Int_t l3 = 1); - AliMagFMaps(const AliMagFMaps &mag); - virtual ~AliMagFMaps(); - virtual void Field(const float *x, float *b) const; - virtual void Field(const double *x, double *b) const; - AliFieldMap* FieldMap(Int_t i) {return fFieldMap[i];} - virtual void ReadField(); - virtual Float_t SolenoidField() const; - virtual void SetL3ConstField(Int_t flag = 0) {fL3Option = flag;} - virtual void SetL3ConstField(Float_t bsol, Int_t flag = 0) - {fL3Option = flag; fSolenoidUser = bsol;} - - AliMagFMaps & operator=(const AliMagFMaps &magf) - {magf.Copy(*this); return *this;} - -protected: - void Copy(TObject &magf) const; - - AliFieldMap* fFieldMap[3]; // Field maps - Float_t fSolenoid; // Solenoid field setting - Float_t fSolenoidUser; // User set solenoid field setting - Int_t fL3Option; // Option for field inside L3 - ClassDef(AliMagFMaps,4) // Class for all Alice MagField using three Maps with Constant Mesh -}; - -#endif diff --git a/STEER/AliMagFMapsV1.cxx b/STEER/AliMagFMapsV1.cxx deleted file mode 100644 index 6fcc4a1348b..00000000000 --- a/STEER/AliMagFMapsV1.cxx +++ /dev/null @@ -1,174 +0,0 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -/* $Id$ */ - -//------------------------------------------------------------------------ -// Magnetic field composed by 4 maps: the L3 magnet (inside and outside measured region), -// extended region, and dipole magnet. -// Used in the configuration macros (macros/Config.C, etc.) -// Author: Andreas Morsch -//------------------------------------------------------------------------ - -#include -#include -#include -#include - -#include "AliLog.h" -#include "AliFieldMap.h" -#include "AliMagFMapsV1.h" - -ClassImp(AliMagFMapsV1) - - -//_______________________________________________________________________ -AliMagFMapsV1::AliMagFMapsV1(): - AliMagFMaps(), - fMeasuredMap(0) -{ - // - // Default constructor - // -} - -//_______________________________________________________________________ -AliMagFMapsV1::AliMagFMapsV1(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax, Int_t map, - Int_t l3): - AliMagFMaps(name, title, integ, factor, fmax, map, l3), - fMeasuredMap(0) -{ - // - // Constructor - // - char* fname; - fname = gSystem->ExpandPathName("$(ALICE_ROOT)/data/maps/mfcheb.root"); - TFile* file = new TFile(fname); - if (fMap == k2kG) { - fMeasuredMap = dynamic_cast(file->Get("Sol12_Dip6_Hole")); - fSolenoid = 0.2; // T - } else if (fMap == k5kG) { - fMeasuredMap = dynamic_cast(file->Get("Sol30_Dip6_Hole")); - fSolenoid = 0.5; // T - } else if (fMap == k4kG){ - fMeasuredMap = 0; - fSolenoid = 0.4; // T - } - - - - file->Close(); - delete file; -} - - -//_______________________________________________________________________ -AliMagFMapsV1::AliMagFMapsV1(const AliMagFMapsV1 &magf): - AliMagFMaps(magf), - fMeasuredMap(0) -{ - // - // Copy constructor - // - magf.Copy(*this); -} - -//_______________________________________________________________________ -AliMagFMapsV1::~AliMagFMapsV1() -{ - // Destructor - delete fMeasuredMap; -} - -//_______________________________________________________________________ -void AliMagFMapsV1::Field(const float *x, float *b) const -{ - // - // Method to calculate the magnetic field at position x - // - const float kRmax2 = 500. * 500.; - const float kZmax = 550.; - const float kTeslaTokG = 10.; - const float kScale = 0.98838; // matching factor - - // Check if position inside measured map - float r2 = x[0] * x[0] + x[1] * x[1]; - if (fMeasuredMap && - r2 < kRmax2 && - TMath::Abs(x[2]) < kZmax - ) - { - fMeasuredMap->Field(x, b); - b[0] *= kTeslaTokG; - b[1] *= kTeslaTokG; - b[2] *= kTeslaTokG; - } else { - AliMagFMaps::Field(x, b); - // Match to measure map - b[0] = - b[0] * kScale; - b[2] = - b[2] * kScale; - b[1] = - b[1] * kScale; - } -} - -//_______________________________________________________________________ -void AliMagFMapsV1::Field(const double *x, double *b) const -{ - // - // Method to calculate the magnetic field at position x - // - const double kRmax2 = 500. * 500.; - const double kZmax = 550.; - const double kTeslaTokG = 10.; - const double kScale = 0.98838; // matching factor - - // Check if position inside measured map - double r2 = x[0] * x[0] + x[1] * x[1]; - if (fMeasuredMap && - r2 < kRmax2 && - TMath::Abs(x[2]) < kZmax - ) - { - fMeasuredMap->Field(x, b); - b[0] *= kTeslaTokG; - b[1] *= kTeslaTokG; - b[2] *= kTeslaTokG; - } else { - AliMagFMaps::Field(x, b); - // Match to measure map - b[0] = - b[0] * kScale; - b[2] = - b[2] * kScale; - b[1] = - b[1] * kScale; - } -} - - -Float_t AliMagFMapsV1::SolenoidField() const -{ - // - // Returns max. L3 (solenoid) field strength - // according to field map setting - // - return fSolenoid; -} - -void AliMagFMapsV1::Copy(TObject &fm) const -{ - // dummy since the base class constructor is dummy - AliMagFMaps::Copy(fm); - AliMagFMapsV1* fmp = (AliMagFMapsV1*) &fm; - fmp->SetMeasuredMap(fMeasuredMap); -} diff --git a/STEER/AliMagFMapsV1.h b/STEER/AliMagFMapsV1.h deleted file mode 100644 index b94d6422283..00000000000 --- a/STEER/AliMagFMapsV1.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef ALIMAGFMAPSV1_H -#define ALIMAGFMAPSV1_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * See cxx source for full Copyright notice */ - -/* $Id$ */ - -// -// Magnetic field composed by 4 maps: the L3 magnet (inside and outside measured region), extended region, and -// dipole magnet -// Author: Andreas Morsch -// - -#include "AliMagFMaps.h" -#include "AliMagFCheb.h" - - -class AliMagFMapsV1 : public AliMagFMaps -{ -public: - AliMagFMapsV1(); - AliMagFMapsV1(const char *name, const char *title, Int_t integ, - Float_t factor, Float_t fmax, Int_t map = k2kG, - Int_t l3 = 1); - AliMagFMapsV1(const AliMagFMapsV1& maps); - AliMagFMapsV1& operator=(const AliMagFMapsV1& maps) {maps.Copy(*this); return *this;} - virtual ~AliMagFMapsV1(); - virtual void Field(const float *x, float *b) const; - virtual void Field(const double *x, double *b) const; - virtual Float_t SolenoidField() const; - AliMagFCheb* GetMeasuredMap() const {return fMeasuredMap;} - void SetMeasuredMap(AliMagFCheb* parm) {if (parm) delete parm; fMeasuredMap = parm;} - protected: - void Copy(TObject &magf) const; - AliMagFCheb* fMeasuredMap; //! Measured part of the field map - ClassDef(AliMagFMapsV1, 0) // Class for all Alice MagField using three Maps with Constant Mesh + measured L3 region -}; - -#endif diff --git a/STEER/AliReconstruction.cxx b/STEER/AliReconstruction.cxx index 7afd327567a..7666a3b21b9 100644 --- a/STEER/AliReconstruction.cxx +++ b/STEER/AliReconstruction.cxx @@ -108,91 +108,83 @@ // // /////////////////////////////////////////////////////////////////////////////// +#include #include +#include +#include #include -#include -#include -#include -#include +#include #include +#include #include -#include -#include -#include #include -#include +#include +#include +#include +#include #include #include -#include +#include +#include -#include "AliReconstruction.h" +#include "AliAlignObj.h" +#include "AliCDBEntry.h" +#include "AliCDBManager.h" +#include "AliCDBStorage.h" +#include "AliCTPRawStream.h" +#include "AliCascadeVertexer.h" +#include "AliCentralTrigger.h" #include "AliCodeTimer.h" -#include "AliReconstructor.h" -#include "AliLog.h" -#include "AliRunLoader.h" -#include "AliRun.h" -#include "AliRawReaderFile.h" -#include "AliRawReaderDate.h" -#include "AliRawReaderRoot.h" -#include "AliRawEventHeaderBase.h" -#include "AliRawEvent.h" +#include "AliDAQ.h" +#include "AliDetectorRecoParam.h" +#include "AliESDCaloCells.h" +#include "AliESDCaloCluster.h" #include "AliESDEvent.h" #include "AliESDMuonTrack.h" -#include "AliESDfriend.h" +#include "AliESDPmdTrack.h" +#include "AliESDTagCreator.h" #include "AliESDVertex.h" #include "AliESDcascade.h" +#include "AliESDfriend.h" #include "AliESDkink.h" -#include "AliESDtrack.h" -#include "AliESDCaloCluster.h" -#include "AliESDCaloCells.h" -#include "AliMultiplicity.h" -#include "AliTracker.h" -#include "AliVertexer.h" -#include "AliVertexerTracks.h" -#include "AliV0vertexer.h" -#include "AliCascadeVertexer.h" -#include "AliHeader.h" -#include "AliGenEventHeader.h" -#include "AliPID.h" #include "AliESDpid.h" #include "AliESDtrack.h" -#include "AliESDPmdTrack.h" - -#include "AliESDTagCreator.h" - +#include "AliESDtrack.h" +#include "AliEventInfo.h" +#include "AliGRPObject.h" +#include "AliGRPRecoParam.h" +#include "AliGenEventHeader.h" #include "AliGeomManager.h" -#include "AliTrackPointArray.h" -#include "AliCDBManager.h" -#include "AliCDBStorage.h" -#include "AliCDBEntry.h" -#include "AliAlignObj.h" - -#include "AliCentralTrigger.h" -#include "AliTriggerConfiguration.h" -#include "AliTriggerClass.h" -#include "AliTriggerCluster.h" -#include "AliCTPRawStream.h" - -#include "AliQADataMakerRec.h" #include "AliGlobalQADataMaker.h" +#include "AliHeader.h" +#include "AliLog.h" +#include "AliMagF.h" +#include "AliMultiplicity.h" +#include "AliPID.h" +#include "AliPlaneEff.h" #include "AliQA.h" +#include "AliQADataMakerRec.h" #include "AliQADataMakerSteer.h" - -#include "AliPlaneEff.h" - -#include "AliSysInfo.h" // memory snapshots +#include "AliRawEvent.h" +#include "AliRawEventHeaderBase.h" #include "AliRawHLTManager.h" - -#include "AliMagFCheb.h" - -#include "AliDetectorRecoParam.h" -#include "AliGRPRecoParam.h" +#include "AliRawReaderDate.h" +#include "AliRawReaderFile.h" +#include "AliRawReaderRoot.h" +#include "AliReconstruction.h" +#include "AliReconstructor.h" +#include "AliRun.h" #include "AliRunInfo.h" -#include "AliEventInfo.h" - -#include "AliDAQ.h" - -#include "AliGRPObject.h" +#include "AliRunLoader.h" +#include "AliSysInfo.h" // memory snapshots +#include "AliTrackPointArray.h" +#include "AliTracker.h" +#include "AliTriggerClass.h" +#include "AliTriggerCluster.h" +#include "AliTriggerConfiguration.h" +#include "AliV0vertexer.h" +#include "AliVertexer.h" +#include "AliVertexerTracks.h" ClassImp(AliReconstruction) @@ -203,7 +195,6 @@ const char* AliReconstruction::fgkDetectorName[AliReconstruction::kNDetectors] = AliReconstruction::AliReconstruction(const char* gAliceFilename) : TSelector(), fUniformField(kFALSE), - fForcedFieldMap(NULL), fRunVertexFinder(kTRUE), fRunVertexFinderTracks(kTRUE), fRunHLTTracking(kFALSE), @@ -296,7 +287,6 @@ AliReconstruction::AliReconstruction(const char* gAliceFilename) : AliReconstruction::AliReconstruction(const AliReconstruction& rec) : TSelector(), fUniformField(rec.fUniformField), - fForcedFieldMap(NULL), fRunVertexFinder(rec.fRunVertexFinder), fRunVertexFinderTracks(rec.fRunVertexFinderTracks), fRunHLTTracking(rec.fRunHLTTracking), @@ -402,7 +392,6 @@ AliReconstruction& AliReconstruction::operator = (const AliReconstruction& rec) if(&rec == this) return *this; fUniformField = rec.fUniformField; - fForcedFieldMap = NULL; fRunVertexFinder = rec.fRunVertexFinder; fRunVertexFinderTracks = rec.fRunVertexFinderTracks; fRunHLTTracking = rec.fRunHLTTracking; @@ -508,7 +497,6 @@ AliReconstruction::~AliReconstruction() CleanUp(); delete fGRPData; - delete fForcedFieldMap; fOptions.Delete(); if (fAlignObjArray) { fAlignObjArray->Delete(); @@ -798,7 +786,8 @@ void AliReconstruction::SetRecoParam(const char* detector, AliDetectorRecoParam } //_____________________________________________________________________________ -Bool_t AliReconstruction::SetFieldMap(Float_t l3Current, Float_t diCurrent, Float_t factor, const char *path) { +Bool_t AliReconstruction::SetFieldMap(Float_t l3Cur, Float_t diCur, Float_t l3Pol, Float_t diPol, + Float_t beamenergy, Char_t *beamtype,const char *path) { //------------------------------------------------ // The magnetic field map, defined externally... // L3 current 30000 A -> 0.5 T @@ -812,53 +801,69 @@ Bool_t AliReconstruction::SetFieldMap(Float_t l3Current, Float_t diCurrent, Floa const Float_t tolerance=0.03; // relative current tolerance const Float_t zero=77.; // "zero" current (A) - - Int_t map=0; - Bool_t dipoleON=kFALSE; - - TString s=(factor < 0) ? "L3: -" : "L3: +"; - - l3Current = TMath::Abs(l3Current); - if (TMath::Abs(l3Current-l3NominalCurrent1)/l3NominalCurrent1 < tolerance) { - map=AliMagFCheb::k5kG; - s+="0.5 T; "; - } else - if (TMath::Abs(l3Current-l3NominalCurrent2)/l3NominalCurrent2 < tolerance) { - map=AliMagFCheb::k2kG; - s+="0.2 T; "; - } else - if (l3Current < zero) { - map=AliMagFCheb::k2kG; - s+="0.0 T; "; - factor=0.; // in fact, this is a global factor... + // + TString s=(l3Pol < 0) ? "L3: -" : "L3: +"; + // + AliMagF::BMap_t map = AliMagF::k5kG; + // + double fcL3,fcDip; + // + l3Cur = TMath::Abs(l3Cur); + if (TMath::Abs(l3Cur-l3NominalCurrent1)/l3NominalCurrent1 < tolerance) { + fcL3 = l3Cur/l3NominalCurrent1; + map = AliMagF::k5kG; + s += "0.5 T; "; + } else if (TMath::Abs(l3Cur-l3NominalCurrent2)/l3NominalCurrent2 < tolerance) { + fcL3 = l3Cur/l3NominalCurrent2; + map = AliMagF::k2kG; + s += "0.2 T; "; + } else if (l3Cur <= zero) { + fcL3 = 0; + map = AliMagF::k5kGUniform; + s += "0.0 T; "; fUniformField=kTRUE; // track with the uniform (zero) B field } else { - AliError(Form("Wrong L3 current (%f A)!",l3Current)); + AliError(Form("Wrong L3 current (%f A)!",l3Cur)); return kFALSE; } - - diCurrent = TMath::Abs(diCurrent); - if (TMath::Abs(diCurrent-diNominalCurrent)/diNominalCurrent < tolerance) { + // + diCur = TMath::Abs(diCur); + if (TMath::Abs(diCur-diNominalCurrent)/diNominalCurrent < tolerance) { // 3% current tolerance... - dipoleON=kTRUE; - s+="Dipole ON"; - } else - if (diCurrent < zero) { // some small current.. - dipoleON=kFALSE; - s+="Dipole OFF"; + fcDip = diCur/diNominalCurrent; + s += "Dipole ON"; + } else if (diCur <= zero) { // some small current.. + fcDip = 0.; + s += "Dipole OFF"; } else { - AliError(Form("Wrong dipole current (%f A)!",diCurrent)); + AliError(Form("Wrong dipole current (%f A)!",diCur)); return kFALSE; } - - delete fForcedFieldMap; - fForcedFieldMap= - new AliMagFCheb("B field map ",s,2,factor,10.,map,dipoleON,path); - - fForcedFieldMap->Print(); - - AliTracker::SetFieldMap(fForcedFieldMap,fUniformField); - + // + if (l3Pol!=diPol && (map==AliMagF::k5kG || map==AliMagF::k2kG) && fcDip!=0) { + AliError("L3 and Dipole polarities must be the same"); + return kFALSE; + } + // + if (l3Pol<0) fcL3 = -fcL3; + if (diPol<0) fcDip = -fcDip; + // + AliMagF::BeamType_t btype = AliMagF::kNoBeamField; + TString btypestr = beamtype; + btypestr.ToLower(); + TPRegexp protonBeam("(proton|p)\\s*-?\\s*\\1"); + TPRegexp ionBeam("(lead|pb|ion|a)\\s*-?\\s*\\1"); + if (btypestr.Contains(ionBeam)) btype = AliMagF::kBeamTypeAA; + else if (btypestr.Contains(protonBeam)) btype = AliMagF::kBeamTypepp; + else { + AliInfo(Form("Cannot determine the beam type from %s, assume no LHC magnet field",beamtype)); + } + + AliMagF* fld = new AliMagF("MagneticFieldMap", s.Data(), 2, fcL3, fcDip, 10., map, path, + btype,beamenergy,kTRUE); + TGeoGlobalMagField::Instance()->SetField( fld ); + TGeoGlobalMagField::Instance()->Lock(); + // return kTRUE; } @@ -911,6 +916,8 @@ Bool_t AliReconstruction::InitGRP() { AliError("GRP/GRP/Data entry: missing value for the beam energy ! Using 0"); beamEnergy = 0; } + // energy is provided in MeV*120 + beamEnergy /= 120E3; TString runType = fGRPData->GetRunType(); if (runType==AliGRPObject::GetInvalidString()) { @@ -965,20 +972,17 @@ Bool_t AliReconstruction::InitGRP() { AliInfo("==================================================================================="); //*** Dealing with the magnetic field map - if (AliTracker::GetFieldMap()) { - AliInfo("Running with the externally set B field !"); - } else { + if ( TGeoGlobalMagField::Instance()->IsLocked() ) {AliInfo("Running with the externally locked B field !");} + else { // Construct the field map out of the information retrieved from GRP. - Bool_t ok = kTRUE; - // L3 Float_t l3Current = fGRPData->GetL3Current((AliGRPObject::Stats)0); if (l3Current == AliGRPObject::GetInvalidFloat()) { AliError("GRP/GRP/Data entry: missing value for the L3 current !"); ok = kFALSE; } - + Char_t l3Polarity = fGRPData->GetL3Polarity(); if (l3Polarity == AliGRPObject::GetInvalidChar()) { AliError("GRP/GRP/Data entry: missing value for the L3 polarity !"); @@ -1028,27 +1032,14 @@ Bool_t AliReconstruction::InitGRP() { */ if (ok) { - Float_t l3Cur=TMath::Abs(l3Current); - Float_t diCur=TMath::Abs(diCurrent); - Float_t l3Pol=l3Polarity; - // Float_t l3Cur=TMath::Abs(atof(l3Current->GetName())); - //Float_t diCur=TMath::Abs(atof(diCurrent->GetName())); - //Float_t l3Pol=atof(l3Polarity->GetName()); - Float_t factor=1.; - if (l3Pol != 0.) factor=-1.; - - - if (!SetFieldMap(l3Cur, diCur, factor)) { - AliFatal("Failed to creat a B field map ! Exiting..."); - } + if ( !SetFieldMap(l3Current, diCurrent, l3Polarity ? -1:1, diPolarity ? -1:1) ) + AliFatal("Failed to creat a B field map ! Exiting..."); AliInfo("Running with the B field constructed out of GRP !"); } - else { - AliFatal("B field is neither set nor constructed from GRP ! Exitig..."); - } - + else AliFatal("B field is neither set nor constructed from GRP ! Exitig..."); + } - + //*** Get the diamond profiles from OCDB entry = AliCDBManager::Instance()->Get("GRP/Calib/MeanVertexSPD"); if (entry) { @@ -1262,7 +1253,7 @@ void AliReconstruction::Begin(TTree *) gGeoManager = NULL; fInput->Add(const_cast(AliCDBManager::Instance()->GetEntryCache())); fInput->Add(new TParameter("RunNumber",AliCDBManager::Instance()->GetRun())); - AliMagF *magFieldMap = (AliMagF*)AliTracker::GetFieldMap(); + AliMagF *magFieldMap = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); magFieldMap->SetName("MagneticFieldMap"); fInput->Add(magFieldMap); } @@ -1296,7 +1287,7 @@ void AliReconstruction::SlaveBegin(TTree*) } } if (AliMagF *map = (AliMagF*)fInput->FindObject("MagneticFieldMap")) { - AliTracker::SetFieldMap(map,fUniformField); + TGeoGlobalMagField::Instance()->SetField(map); } if (TNamed *outputFileName = (TNamed *) fInput->FindObject("PROOF_OUTPUTFILE")) { outProofFile = new TProofOutputFile(gSystem->BaseName(TUrl(outputFileName->GetTitle()).GetFile())); diff --git a/STEER/AliReconstruction.h b/STEER/AliReconstruction.h index b8cd1af00d3..fd69c785db0 100644 --- a/STEER/AliReconstruction.h +++ b/STEER/AliReconstruction.h @@ -78,10 +78,9 @@ public: //*** Magnetic field setters void SetUniformFieldTracking(Bool_t flag=kTRUE){fUniformField=flag;} - Bool_t - SetFieldMap(Float_t l3Current=30000., Float_t diCurrent=6000., - Float_t factor=1., - const char *path="$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); + Bool_t SetFieldMap(Float_t l3Current=30000., Float_t diCurrent=6000., + Float_t l3Pol=1., Float_t dipPol=1., Float_t benergy=7000., char* btype="pp", + const char *path="$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); //*** Global reconstruction flag setters void SetRunVertexFinder(Bool_t flag=kTRUE) {fRunVertexFinder=flag;}; @@ -200,7 +199,6 @@ private: //*** Magnetic field map settings ******************* Bool_t fUniformField; // uniform field tracking flag - AliMagF *fForcedFieldMap; //! independent, not GRP, field map //*** Global reconstruction flags ******************* Bool_t fRunVertexFinder; // run the vertex finder diff --git a/STEER/AliRun.cxx b/STEER/AliRun.cxx index 71cbe168f21..45c039a0721 100644 --- a/STEER/AliRun.cxx +++ b/STEER/AliRun.cxx @@ -51,9 +51,6 @@ #include "AliDetector.h" #include "AliHeader.h" #include "AliMC.h" -#include "AliMagFC.h" -#include "AliMagFCM.h" -#include "AliMagFDM.h" #include "AliPDG.h" #include "AliRun.h" #include "AliStack.h" @@ -73,7 +70,6 @@ AliRun::AliRun(): fEventNrInRun(-1), fModules(0), fMCApp(0), - fField(0), fNdets(0), fConfigFunction(""), fRandom(0), @@ -100,7 +96,6 @@ AliRun::AliRun(const char *name, const char *title): fEventNrInRun(-1), fModules(new TObjArray(77)), // Support list for the Detectors fMCApp(new AliMC(GetName(),GetTitle())), - fField(0), fNdets(0), fConfigFunction("Config();"), fRandom(new TRandom3()), @@ -130,9 +125,6 @@ AliRun::AliRun(const char *name, const char *title): // Add to list of browsable gROOT->GetListOfBrowsables()->Add(this,name); - // Create default mag field - fField = new AliMagFC("Map1"," ",2.,1.,10.); - } @@ -156,7 +148,6 @@ AliRun::~AliRun() } } - delete fField; delete fMCApp; delete gMC; gMC=0; if (fModules) { @@ -166,15 +157,6 @@ AliRun::~AliRun() } -//_______________________________________________________________________ -void AliRun::SetField(AliMagF* magField) -{ - // - // Set Magnetic Field Map - // - fField = magField; - fField->ReadField(); -} //_______________________________________________________________________ void AliRun::SetRootGeometry(Bool_t flag) @@ -408,30 +390,6 @@ void AliRun::Tree2Tree(Option_t *option, const char *selected) } } -// -// MC Application -// - -//_______________________________________________________________________ -void AliRun::Field(const Double_t* x, Double_t *b) const -{ - // - // Return the value of the magnetic field - // - - if (Field()) Field()->Field(x,b); - - else { - AliError("No mag field defined!"); - b[0]=b[1]=b[2]=0.; - } - - -} - -// -// End of MC Application -// //_______________________________________________________________________ void AliRun::Streamer(TBuffer &R__b) diff --git a/STEER/AliRun.h b/STEER/AliRun.h index f0d24d12add..8071096442c 100644 --- a/STEER/AliRun.h +++ b/STEER/AliRun.h @@ -34,7 +34,6 @@ public: TObjArray *Detectors() const {return fModules;} TObjArray *Modules() const {return fModules;} - virtual AliMagF *Field() const {return fField;} void AddModule(AliModule* mod); Int_t GetEvNumber() const; Int_t GetRunNumber() const {return fRun;} @@ -71,10 +70,6 @@ public: const char* GetTriggerDescriptor() const {return fTriggerDescriptor.Data();} void SetTriggerDescriptor(const char *name) {fTriggerDescriptor = name;} virtual void SetBaseFile(const char *filename="galice.root"); - virtual void SetField(AliMagF* magField); - - virtual void Field(const Double_t* x, Double_t* b) const; - // // End of MC Application @@ -92,7 +87,6 @@ protected: Int_t fEventNrInRun; //! Current unique event number in run TObjArray *fModules; // List of Detectors AliMC *fMCApp; // Pointer to virtual MC Application - AliMagF *fField; // Magnetic Field Map Int_t fNdets; // Number of detectors TString fConfigFunction; // Configuration file to be executed TRandom *fRandom; // Pointer to the random number generator @@ -106,7 +100,7 @@ private: AliRun(const AliRun&); // Not implemented AliRun& operator = (const AliRun&); // Not implemented - ClassDef(AliRun,12) //Supervisor class for all Alice detectors + ClassDef(AliRun,13) //Supervisor class for all Alice detectors }; R__EXTERN AliRun *gAlice; diff --git a/STEER/AliSimulation.cxx b/STEER/AliSimulation.cxx index 8f6562f05ef..599776ba9ea 100644 --- a/STEER/AliSimulation.cxx +++ b/STEER/AliSimulation.cxx @@ -107,6 +107,7 @@ #include #include +#include #include #include #include @@ -131,6 +132,8 @@ #include "AliGeomManager.h" #include "AliHLTSimulation.h" #include "AliHeader.h" +#include "AliLego.h" +#include "AliLegoGenerator.h" #include "AliLog.h" #include "AliMC.h" #include "AliMagF.h" @@ -145,8 +148,6 @@ #include "AliSimulation.h" #include "AliSysInfo.h" #include "AliVertexGenFile.h" -#include "AliLegoGenerator.h" -#include "AliLego.h" ClassImp(AliSimulation) @@ -779,13 +780,16 @@ Bool_t AliSimulation::RunLego(const char *setup, Int_t nc1, Float_t c1min, } else { AliWarning("Run number not initialized!!"); } - + AliRunLoader::GetRunLoader()->CdGAFile(); AliPDG::AddParticlesToPdgDataBase(); gAlice->GetMCApp()->Init(); + gMC->SetMagField(TGeoGlobalMagField::Instance()->GetField()); + + //Must be here because some MCs (G4) adds detectors here and not in Config.C gAlice->InitLoaders(); AliRunLoader::GetRunLoader()->MakeTree("E"); @@ -925,6 +929,8 @@ Bool_t AliSimulation::RunSimulation(Int_t nEvents) AliPDG::AddParticlesToPdgDataBase(); gAlice->GetMCApp()->Init(); + + gMC->SetMagField(TGeoGlobalMagField::Instance()->GetField()); //Must be here because some MCs (G4) adds detectors here and not in Config.C gAlice->InitLoaders(); @@ -1698,6 +1704,8 @@ Bool_t AliSimulation::ConvertRaw2SDigits(const char* rawDirectory, const char* e AliPDG::AddParticlesToPdgDataBase(); gAlice->GetMCApp()->Init(); + + gMC->SetMagField(TGeoGlobalMagField::Instance()->GetField()); //Must be here because some MCs (G4) adds detectors here and not in Config.C gAlice->InitLoaders(); @@ -2147,9 +2155,9 @@ void AliSimulation::WriteGRPEntry() grpObj->SetLHCLuminosity(0,(AliGRPObject::Stats)0); grpObj->SetBeamIntensity(0,(AliGRPObject::Stats)0); - AliMagF *field = gAlice->Field(); - Float_t solenoidField = TMath::Abs(field->SolenoidField()); - Float_t factor = field->Factor(); + AliMagF *field = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + Float_t solenoidField = field ? TMath::Abs(field->SolenoidField()) : 0; + Float_t factor = field ? field->Factor() : 0; Float_t l3current = TMath::Abs(factor)*solenoidField*30000./5.; grpObj->SetL3Current(l3current,(AliGRPObject::Stats)0); diff --git a/STEER/AliSimulation.h b/STEER/AliSimulation.h index 2da4da2cdb5..8349af1b149 100644 --- a/STEER/AliSimulation.h +++ b/STEER/AliSimulation.h @@ -23,6 +23,7 @@ class AliCDBParam; class AliRunLoader; class AliLegoGenerator; class AliLego; +class AliMagF; class AliSimulation: public TNamed { public: diff --git a/STEER/AliTrackPointArray.cxx b/STEER/AliTrackPointArray.cxx index ddff099fe82..cb1ad556c8a 100644 --- a/STEER/AliTrackPointArray.cxx +++ b/STEER/AliTrackPointArray.cxx @@ -201,7 +201,7 @@ Bool_t AliTrackPointArray::GetPoint(AliTrackPoint &p, Int_t i) const p.SetVolumeID(fVolumeID[i]); p.SetCharge(fCharge[i]); p.SetDriftTime(fDriftTime[i]); - p.SetExtra(fIsExtra[i]); + p.SetExtra(fIsExtra ? fIsExtra[i] : kFALSE); return kTRUE; } diff --git a/STEER/AliTracker.cxx b/STEER/AliTracker.cxx index 18d65ebc013..77299d7bf16 100644 --- a/STEER/AliTracker.cxx +++ b/STEER/AliTracker.cxx @@ -34,9 +34,6 @@ extern TGeoManager *gGeoManager; -Bool_t AliTracker::fgUniformField=kTRUE; -Double_t AliTracker::fgBz=kAlmost0Field; -const AliMagF *AliTracker::fgkFieldMap=0; Bool_t AliTracker::fFillResiduals=kFALSE; TObjArray **AliTracker::fResiduals=NULL; AliRecoParam::EventSpecie_t AliTracker::fEventSpecie=AliRecoParam::kDefault; @@ -55,7 +52,8 @@ AliTracker::AliTracker(): //-------------------------------------------------------------------- // The default constructor. //-------------------------------------------------------------------- - if (!fgkFieldMap) AliWarning("Field map is not set. Call AliTracker::SetFieldMap before creating a tracker!"); + if (!TGeoGlobalMagField::Instance()->GetField()) + AliWarning("Field map is not set."); } //__________________________________________________________________________ @@ -71,30 +69,28 @@ AliTracker::AliTracker(const AliTracker &atr): //-------------------------------------------------------------------- // The default constructor. //-------------------------------------------------------------------- - if (!fgkFieldMap) AliWarning("Field map is not set. Call AliTracker::SetFieldMap before creating a tracker!"); + if (!TGeoGlobalMagField::Instance()->GetField()) + AliWarning("Field map is not set."); } //__________________________________________________________________________ -void AliTracker::SetFieldMap(const AliMagF* map, Bool_t uni) { - //-------------------------------------------------------------------- - //This passes the field map to the reconstruction. - //-------------------------------------------------------------------- - if (map==0) AliFatalClass("Can't access the field map !"); - - if (fgkFieldMap) { - AliWarningClass("The magnetic field map has been already set !"); - return; - } - - fgUniformField=uni; - fgkFieldMap=map; - - //Float_t r[3]={0.,0.,0.},b[3]; map->Field(r,b); - //Double_t bz=-b[2]; - - Double_t bz=-map->SolenoidField(); - fgBz=TMath::Sign(kAlmost0Field,bz) + bz; +Double_t AliTracker::GetBz() +{ + AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + if (!fld) return kAlmost0Field; + Double_t bz = -fld->SolenoidField(); + return TMath::Sign(kAlmost0Field,bz) + bz; +} +//__________________________________________________________________________ +Double_t AliTracker::GetBz(const Double_t *r) { + //------------------------------------------------------------------ + // Returns Bz (kG) at the point "r" . + //------------------------------------------------------------------ + AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + if (!fld) return kAlmost0Field; + Double_t bz = -fld->GetBz(r); + return TMath::Sign(kAlmost0Field,bz) + bz; } //__________________________________________________________________________ @@ -170,17 +166,7 @@ void AliTracker::UseClusters(const AliKalmanTrack *t, Int_t from) const { } } -Double_t AliTracker::GetBz(const Float_t *r) { - //------------------------------------------------------------------ - // Returns Bz (kG) at the point "r" . - //------------------------------------------------------------------ - Float_t b[3]; fgkFieldMap->Field(r,b); - Double_t bz=-Double_t(b[2]); - return (TMath::Sign(kAlmost0Field,bz) + bz); -} - -Double_t -AliTracker::MeanMaterialBudget(const Double_t *start, const Double_t *end, Double_t *mparam) +Double_t AliTracker::MeanMaterialBudget(const Double_t *start, const Double_t *end, Double_t *mparam) { // // Calculate mean material budget and material properties between diff --git a/STEER/AliTracker.h b/STEER/AliTracker.h index 36a0455438d..c5326434f6c 100644 --- a/STEER/AliTracker.h +++ b/STEER/AliTracker.h @@ -10,20 +10,21 @@ // that is the base for AliTPCtracker, AliITStrackerV2 and AliTRDtracker // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch //------------------------------------------------------------------------- + +#include #include -#include -#include "AliRecoParam.h" +#include "AliMagF.h" +#include "AliRecoParam.h" +#include "AliPlaneEff.h" class TTree; -class AliMagF; class AliCluster; -class AliKalmanTrack; class AliESDEvent; class AliESDtrack; class AliExternalTrackParam; class AliTrackPoint; - +class AliKalmanTrack; class AliTracker : public TObject { public: AliTracker(); @@ -60,17 +61,11 @@ public: static Bool_t PropagateTrackTo(AliExternalTrackParam *track, Double_t x, Double_t m, Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8); - - static void SetFieldMap(const AliMagF* map, Bool_t uni); - static const AliMagF *GetFieldMap() {return fgkFieldMap;} - static Double_t GetBz(const Float_t *r); - static Double_t GetBz(const Double_t *r) { - Float_t rr[]={r[0],r[1],r[2]}; - return GetBz(rr); - } - static Double_t GetBz() {return fgBz;} - static Bool_t UniformField() {return fgUniformField;} - + // + static Double_t GetBz(const Double_t *r); + static Double_t GetBz(); + static Bool_t UniformField(); + // static void FillResiduals(const AliExternalTrackParam *t, Double_t *p, Double_t *cov, UShort_t id, Bool_t updated=kTRUE); @@ -83,11 +78,6 @@ protected: AliTracker(const AliTracker &atr); private: AliTracker & operator=(const AliTracker & atr); - - static Bool_t fgUniformField; // uniform field flag - static const AliMagF *fgkFieldMap; //! field map - static Double_t fgBz; // Nominal Bz (kG) - static Bool_t fFillResiduals; // Fill residuals flag static TObjArray **fResiduals; //! Array of histograms with residuals @@ -104,6 +94,11 @@ private: ClassDef(AliTracker,4) //abstract tracker }; -#endif - +//__________________________________________________________________________ +inline Bool_t AliTracker::UniformField() +{ + AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + return fld ? fld->IsUniform():kTRUE; +} +#endif diff --git a/STEER/AliVTrack.cxx b/STEER/AliVTrack.cxx index f92e2b230c6..befc6148a12 100644 --- a/STEER/AliVTrack.cxx +++ b/STEER/AliVTrack.cxx @@ -19,6 +19,9 @@ // Author: A. Dainese //------------------------------------------------------------------------- +#include + +#include "AliMagF.h" #include "AliVTrack.h" ClassImp(AliVTrack) @@ -34,3 +37,17 @@ AliVTrack& AliVTrack::operator=(const AliVTrack& vTrack) return *this; } +Double_t AliVTrack::GetBz() const +{ + // returns Bz component of the magnetic field (kG) + AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + if (!fld) return kAlmost0Field; + double bz; + if (fld->IsUniform()) bz = -fld->SolenoidField(); + else { + Double_t r[3]; + GetXYZ(r); + bz = -fld->GetBz(r); + } + return TMath::Sign(kAlmost0Field,bz) + bz; +} diff --git a/STEER/AliVTrack.h b/STEER/AliVTrack.h index 67af0ec8072..fe2f3659a12 100644 --- a/STEER/AliVTrack.h +++ b/STEER/AliVTrack.h @@ -24,6 +24,7 @@ public: virtual UChar_t GetITSClusterMap() const = 0; virtual ULong_t GetStatus() const = 0; virtual Bool_t GetXYZ(Double_t *p) const = 0; + virtual Double_t GetBz() const; virtual Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const = 0; ClassDef(AliVTrack,0) // base class for tracks diff --git a/STRUCT/AliABSO.cxx b/STRUCT/AliABSO.cxx index a84227ee4ad..b5c9cf8c833 100644 --- a/STRUCT/AliABSO.cxx +++ b/STRUCT/AliABSO.cxx @@ -36,6 +36,8 @@ // // /////////////////////////////////////////////////////////////////////////////// +#include + #include "AliABSO.h" #include "AliRun.h" #include "AliMagF.h" @@ -86,8 +88,8 @@ void AliABSO::CreateMaterials() // // Define materials for muon absorber // - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // // Air // diff --git a/STRUCT/AliBODY.cxx b/STRUCT/AliBODY.cxx index ea20fc93288..b9f1715d71b 100644 --- a/STRUCT/AliBODY.cxx +++ b/STRUCT/AliBODY.cxx @@ -36,6 +36,7 @@ // // /////////////////////////////////////////////////////////////////////////////// +#include #include #include "AliBODY.h" @@ -139,8 +140,8 @@ void AliBODY::CreateGeometry() void AliBODY::CreateMaterials() { // Create materials and media - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // AIR diff --git a/STRUCT/AliDIPOv2.cxx b/STRUCT/AliDIPOv2.cxx index e0eb20c4969..02eac71d998 100644 --- a/STRUCT/AliDIPOv2.cxx +++ b/STRUCT/AliDIPOv2.cxx @@ -34,8 +34,9 @@ // // // // -#include +#include #include +#include #include "AliConst.h" #include "AliDIPOv2.h" @@ -858,9 +859,9 @@ void AliDIPOv2::CreateMaterials() // Create Materials for Magnetic Dipole version 2 // - Int_t isxfld1 = gAlice->Field()->Integ(); - Int_t isxfld2 = gAlice->Field()->PrecInteg(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld1 = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Int_t isxfld2 = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->PrecInteg(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 }; diff --git a/STRUCT/AliFRAMEv2.cxx b/STRUCT/AliFRAMEv2.cxx index e3dec76dfbc..7a51b4a7f00 100644 --- a/STRUCT/AliFRAMEv2.cxx +++ b/STRUCT/AliFRAMEv2.cxx @@ -21,14 +21,16 @@ // Author: A.Morsch //------------------------------------------------------------------------ -#include -#include -#include -#include #include +#include +#include +#include #include #include -#include +#include +#include +#include + #include "AliFRAMEv2.h" #include "AliMagF.h" #include "AliRun.h" @@ -1274,8 +1276,8 @@ void AliFRAMEv2::CreateMaterials() tmaxfd = -20.; // Maximum angle due to field deflection deemax = -.3; // Maximum fractional energy loss, DLS stmin = -.8; - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 }; diff --git a/STRUCT/AliHALL.cxx b/STRUCT/AliHALL.cxx index 36752602c3d..c8412a4819c 100644 --- a/STRUCT/AliHALL.cxx +++ b/STRUCT/AliHALL.cxx @@ -36,6 +36,7 @@ // // /////////////////////////////////////////////////////////////////////////////// +#include #include #include "AliConst.h" @@ -272,7 +273,7 @@ void AliHALL::CreateMaterials() // Int_t isxfld = 0; - Float_t sxmgmx = gAlice->Field()->Max(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t aconc[10] = { 1.,12.01,15.994,22.99,24.305,26.98,28.086,39.1,40.08,55.85 }; Float_t zconc[10] = { 1.,6.,8.,11.,12.,13.,14.,19.,20.,26. }; diff --git a/STRUCT/AliMAG.cxx b/STRUCT/AliMAG.cxx index 37ce5beeac6..a8fd702d8e8 100644 --- a/STRUCT/AliMAG.cxx +++ b/STRUCT/AliMAG.cxx @@ -35,14 +35,15 @@ // // /////////////////////////////////////////////////////////////////////////////// -#include -#include -#include +#include +#include +#include #include +#include #include +#include #include -#include -#include +#include #include "AliMAG.h" #include "AliMagF.h" @@ -345,8 +346,8 @@ void AliMAG::CreateMaterials() // Create materials for L3 magnet // - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t epsil, stmin, deemax, tmaxfd, stemax; diff --git a/STRUCT/AliPIPEv0.cxx b/STRUCT/AliPIPEv0.cxx index f2bbf8aec5d..23318df0d5c 100644 --- a/STRUCT/AliPIPEv0.cxx +++ b/STRUCT/AliPIPEv0.cxx @@ -23,6 +23,7 @@ #include +#include #include #include @@ -717,8 +718,8 @@ void AliPIPEv0::CreateMaterials() // AliDebugClass(1,"Create PIPEv0 materials"); - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Steel (Inox) Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 }; Float_t zsteel[4] = { 26.,24.,28.,14. }; diff --git a/STRUCT/AliPIPEv1.cxx b/STRUCT/AliPIPEv1.cxx index c59f7e169c8..f92489a83d4 100644 --- a/STRUCT/AliPIPEv1.cxx +++ b/STRUCT/AliPIPEv1.cxx @@ -284,8 +284,8 @@ void AliPIPEv1::CreateMaterials() // Create materials for beam pipe // - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 }; Float_t zsteel[4] = { 26.,24.,28.,14. }; diff --git a/STRUCT/AliPIPEv3.cxx b/STRUCT/AliPIPEv3.cxx index a37784a87f1..e9b5be5cc5b 100644 --- a/STRUCT/AliPIPEv3.cxx +++ b/STRUCT/AliPIPEv3.cxx @@ -24,18 +24,19 @@ #include -#include -#include +#include +#include +#include +#include #include #include -#include +#include #include #include -#include -#include -#include +#include #include -#include +#include +#include #include "AliConst.h" #include "AliMagF.h" @@ -2695,8 +2696,8 @@ void AliPIPEv3::CreateMaterials() // AliDebugClass(1,"Create PIPEv3 materials"); - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Steel (Inox) Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 }; Float_t zsteel[4] = { 26.,24.,28.,14. }; diff --git a/STRUCT/AliPIPEvTemp.cxx b/STRUCT/AliPIPEvTemp.cxx index 91fe44eb6e0..807c99b1dbf 100644 --- a/STRUCT/AliPIPEvTemp.cxx +++ b/STRUCT/AliPIPEvTemp.cxx @@ -670,8 +670,8 @@ void AliPIPEvTemp::CreateMaterials() // if(fDebug) printf("%s: Create PIPEvTemp materials \n",ClassName()); - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Steel (Inox) Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 }; Float_t zsteel[4] = { 26.,24.,28.,14. }; diff --git a/STRUCT/AliSHIL.cxx b/STRUCT/AliSHIL.cxx index 70a9cc65d2e..031b77e1e54 100644 --- a/STRUCT/AliSHIL.cxx +++ b/STRUCT/AliSHIL.cxx @@ -29,6 +29,8 @@ // // /////////////////////////////////////////////////////////////////////////////// +#include + #include "AliSHIL.h" #include "AliRun.h" #include "AliMagF.h" @@ -71,10 +73,10 @@ void AliSHIL::CreateMaterials() // // Defines materials for the muon shield // - Int_t isxfld1 = gAlice->Field()->Integ(); - Int_t isxfld2 = gAlice->Field()->PrecInteg(); + Int_t isxfld1 = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Int_t isxfld2 = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->PrecInteg(); - Float_t sxmgmx = gAlice->Field()->Max(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Steel Float_t asteel[4] = { 55.847,51.9961,58.6934,28.0855 }; Float_t zsteel[4] = { 26.,24.,28.,14. }; diff --git a/T0/AliT0v0.cxx b/T0/AliT0v0.cxx index 33cd73e74aa..292a9370806 100644 --- a/T0/AliT0v0.cxx +++ b/T0/AliT0v0.cxx @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -433,8 +434,8 @@ void AliT0v0::CreateGeometry() //------------------------------------------------------------------------ void AliT0v0::CreateMaterials() { - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t a,z,d,radl,absl,buf[1]; Int_t nbuf; diff --git a/T0/AliT0v1.cxx b/T0/AliT0v1.cxx index 0d7f2fc3020..cb45824f703 100644 --- a/T0/AliT0v1.cxx +++ b/T0/AliT0v1.cxx @@ -31,15 +31,16 @@ #include #include -#include -#include -#include +#include "TGeoCompositeShape.h" #include "TGeoManager.h" #include "TGeoMatrix.h" #include "TGeoPcon.h" #include "TGeoTube.h" -#include "TGeoCompositeShape.h" +#include #include +#include +#include +#include #include "AliLog.h" #include "AliMagF.h" @@ -488,8 +489,8 @@ symName.Data(),volPath.Data())); //------------------------------------------------------------------------ void AliT0v1::CreateMaterials() { - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Float_t a,z,d,radl,absl,buf[1]; // Int_t nbuf; // AIR diff --git a/T0/AliT0v2.cxx b/T0/AliT0v2.cxx index b7ff29d75bd..077c662ef8f 100644 --- a/T0/AliT0v2.cxx +++ b/T0/AliT0v2.cxx @@ -148,8 +148,8 @@ void AliT0v2::CreateGeometry() ////////////////////////////////////////////////////////////////////// void AliT0v2::CreateMaterials() { - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t a, z, d, radl, absl, buf[1]; Int_t nbuf; diff --git a/TFluka/macro/FlukaConfig.C b/TFluka/macro/FlukaConfig.C index 19b6905cbba..40878f85ff6 100644 --- a/TFluka/macro/FlukaConfig.C +++ b/TFluka/macro/FlukaConfig.C @@ -9,16 +9,10 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - - // This part for configuration static PprGeo_t sgeo = kHoles; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; // Comment line static TString comment; @@ -26,7 +20,6 @@ static TString comment; // Functions Float_t EtaToTheta(Float_t arg); - void Config() { cout << "==> Config.C..." << endl; @@ -153,11 +146,9 @@ void Config() // - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -182,10 +173,10 @@ void Config() // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., smag); + AliMagF *field = new AliMagF("Maps","Maps", 2, 1., 1., 10., smag); field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); rl->CdGAFile(); - gAlice->SetField(field); Int_t iABSO = 0; Int_t iACORDE = 0; diff --git a/TOF/AliTOFconfig.C b/TOF/AliTOFconfig.C index 8170a5e6407..7fdc63c6a1c 100644 --- a/TOF/AliTOFconfig.C +++ b/TOF/AliTOFconfig.C @@ -15,7 +15,7 @@ #include "EVGEN/AliGenSlowNucleons.h" #include "EVGEN/AliSlowNucleonModelExp.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" @@ -61,18 +61,12 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - - // This part for configuration static PprRun_t srun = test50; //static PprRun_t srun = kPythia6; static PprGeo_t sgeo = kNoHoles; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static BMap_t smag = AliMagF::k5kG; // Comment line static TString comment; @@ -171,11 +165,9 @@ void Config() gener->SetTrackingFlag(1); gener->Init(); - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -200,10 +192,10 @@ void Config() // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., smag); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., smag)); + TGeoGlobalMagField::Instance()->SetField(field); field->SetL3ConstField(0); //Using const. field in the barrel rl->CdGAFile(); - gAlice->SetField(field); // Int_t iABSO = 0; Int_t iDIPO = 0; diff --git a/TOF/AliTOFtrack.cxx b/TOF/AliTOFtrack.cxx index e95fa886216..70bbc1bd1f5 100644 --- a/TOF/AliTOFtrack.cxx +++ b/TOF/AliTOFtrack.cxx @@ -216,15 +216,6 @@ Int_t AliTOFtrack::Compare(const TObject *o) const { return 0; } -//_____________________________________________________________________________ -Double_t AliTOFtrack::GetBz() const { - // - // returns Bz component of the magnetic field (kG) - // - if (AliTracker::UniformField()) return AliTracker::GetBz(); - Double_t r[3]; GetXYZ(r); - return AliTracker::GetBz(r); -} //_____________________________________________________________________________ void AliTOFtrack::GetPropagationParameters(Double_t *param) { diff --git a/TOF/AliTOFtrack.h b/TOF/AliTOFtrack.h index 8ca0cdaa208..fbc536460b1 100644 --- a/TOF/AliTOFtrack.h +++ b/TOF/AliTOFtrack.h @@ -51,7 +51,6 @@ public: } protected: - Double_t GetBz() const; Bool_t Update(const AliCluster */*c*/, Double_t /*chi2*/, Int_t /*idx*/) { return 0; } diff --git a/TOF/AliTOFv4T0.cxx b/TOF/AliTOFv4T0.cxx index f139b2214d8..ed357bc030a 100644 --- a/TOF/AliTOFv4T0.cxx +++ b/TOF/AliTOFv4T0.cxx @@ -832,7 +832,7 @@ void AliTOFv4T0::CreateMaterials() // Revision: F. Pierella 18-VI-2002 // - AliMagF *magneticField = (AliMagF*)gAlice->Field(); + AliMagF *magneticField = (AliMagF*)((AliMagF*)TGeoGlobalMagField::Instance()->GetField()); Int_t isxfld = magneticField->Integ(); Float_t sxmgmx = magneticField->Max(); diff --git a/TOF/AliTOFv5T0.cxx b/TOF/AliTOFv5T0.cxx index 11fce724dcf..edd14617308 100644 --- a/TOF/AliTOFv5T0.cxx +++ b/TOF/AliTOFv5T0.cxx @@ -112,13 +112,14 @@ Revision 0.1 2004 November G. Cara Romeo and A. De Caro // // /////////////////////////////////////////////////////////////////////////////// -#include "TDirectory.h" -#include "TLorentzVector.h" -#include "TVirtualMC.h" -#include "TGeoManager.h" +#include +#include +#include #include #include #include +#include +#include #include "AliConst.h" #include "AliGeomManager.h" @@ -1310,7 +1311,7 @@ void AliTOFv5T0::CreateMaterials() //AliTOF::CreateMaterials(); - AliMagF *magneticField = (AliMagF*)gAlice->Field(); + AliMagF *magneticField = (AliMagF*)((AliMagF*)TGeoGlobalMagField::Instance()->GetField()); Int_t isxfld = magneticField->Integ(); Float_t sxmgmx = magneticField->Max(); diff --git a/TOF/AliTOFv6T0.cxx b/TOF/AliTOFv6T0.cxx index e3fa0242bf4..52daf542b2c 100644 --- a/TOF/AliTOFv6T0.cxx +++ b/TOF/AliTOFv6T0.cxx @@ -89,13 +89,14 @@ Revision 0.1 2007 March G. Cara Romeo and A. De Caro // // /////////////////////////////////////////////////////////////////////////////// -#include "TDirectory.h" -#include "TLorentzVector.h" -#include "TVirtualMC.h" -#include "TGeoManager.h" +#include +#include +#include #include #include #include +#include +#include #include "AliConst.h" #include "AliGeomManager.h" @@ -2143,7 +2144,7 @@ void AliTOFv6T0::CreateMaterials() //AliTOF::CreateMaterials(); - AliMagF *magneticField = (AliMagF*)gAlice->Field(); + AliMagF *magneticField = (AliMagF*)((AliMagF*)TGeoGlobalMagField::Instance()->GetField()); Int_t isxfld = magneticField->Integ(); Float_t sxmgmx = magneticField->Max(); diff --git a/TPC/AliL1Delay.C b/TPC/AliL1Delay.C index d82cfe2dea3..510f46b8557 100644 --- a/TPC/AliL1Delay.C +++ b/TPC/AliL1Delay.C @@ -36,7 +36,7 @@ #include "AliESD.h" #include "AliTracker.h" #include "AliTPCParam.h" - #include "AliMagFMaps.h" + #include "AliMagF.h" #include "AliITStrackV2.h" #endif @@ -68,9 +68,7 @@ void AliL1Delay(const Char_t *esdfilename = "./AliESDs.root", const Char_t *gali gAlice = rl->GetAliRun(); // Set magnetic field - AliMagF* field = gAlice->Field(); - AliTracker::SetFieldMap(field,kTRUE); - AliExternalTrackParam::SetFieldMap(field); + AliMagF* field = TGeoGlobalMagField::Instance()->GetField(); AliExternalTrackParam::SetNonuniformFieldTracking(); const Float_t sfield = field->SolenoidField(); diff --git a/TPC/AliTPC.cxx b/TPC/AliTPC.cxx index 3b9b0067757..10215c72f72 100644 --- a/TPC/AliTPC.cxx +++ b/TPC/AliTPC.cxx @@ -36,21 +36,22 @@ #include #include +#include #include +#include #include #include #include -#include #include #include #include #include +#include +#include #include #include +#include #include -#include -#include -#include #include "AliDigits.h" #include "AliMagF.h" @@ -230,8 +231,8 @@ void AliTPC::CreateMaterials() // Origin: Marek Kowalski IFJ, Krakow, Marek.Kowalski@ifj.edu.pl //----------------------------------------------------------------- - Int_t iSXFLD=gAlice->Field()->Integ(); - Float_t sXMGMX=gAlice->Field()->Max(); + Int_t iSXFLD=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sXMGMX=((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t amat[5]; // atomic numbers Float_t zmat[5]; // z @@ -1790,7 +1791,7 @@ void AliTPC::MakeSector(Int_t isec,Int_t nrows,TTree *TH, //----------------------------------------------------------------- AliTPCcalibDB* const calib=AliTPCcalibDB::Instance(); if (gAlice){ // Set correctly the magnetic field in the ExB calculation - AliMagF * field = gAlice->Field(); + AliMagF * field = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField()); if (field) { calib->SetExBField(field->SolenoidField()); } diff --git a/TPC/AliTPCExB.cxx b/TPC/AliTPCExB.cxx index c1aaf228907..53a0d67d8f1 100644 --- a/TPC/AliTPCExB.cxx +++ b/TPC/AliTPCExB.cxx @@ -235,9 +235,9 @@ Double_t AliTPCExB::GetBx(Double_t r, Double_t phi, Double_t z,Int_t index){ // AliMagF *mag = (AliMagF*)fgArray.At(index); if (!mag) return 0; - Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; + Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; // xyz[1]+=30; - Float_t bxyz[3]; + Double_t bxyz[3]; mag->Field(xyz,bxyz); return bxyz[0]; } @@ -248,9 +248,9 @@ Double_t AliTPCExB::GetBy(Double_t r, Double_t phi, Double_t z,Int_t index){ // AliMagF *mag = (AliMagF*)fgArray.At(index); if (!mag) return 0; - Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; + Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; // xyz[1]+=30; - Float_t bxyz[3]; + Double_t bxyz[3]; mag->Field(xyz,bxyz); return bxyz[1]; } @@ -261,9 +261,9 @@ Double_t AliTPCExB::GetBz(Double_t r, Double_t phi, Double_t z,Int_t index){ // AliMagF *mag = (AliMagF*)fgArray.At(index); if (!mag) return 0; - Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; + Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; // xyz[1]+=30; - Float_t bxyz[3]; + Double_t bxyz[3]; mag->Field(xyz,bxyz); return bxyz[2]; } @@ -276,12 +276,12 @@ Double_t AliTPCExB::GetBr(Double_t r, Double_t phi, Double_t z,Int_t index){ // AliMagF *mag = (AliMagF*)fgArray.At(index); if (!mag) return 0; - Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; + Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; //xyz[1]+=30; - Float_t bxyz[3]; + Double_t bxyz[3]; mag->Field(xyz,bxyz); if (r==0) return 0; - Float_t br = (bxyz[0]*xyz[0]+bxyz[1]*xyz[1])/r; + Double_t br = (bxyz[0]*xyz[0]+bxyz[1]*xyz[1])/r; return br; } @@ -291,12 +291,12 @@ Double_t AliTPCExB::GetBrfi(Double_t r, Double_t phi, Double_t z,Int_t index){ // AliMagF *mag = (AliMagF*)fgArray.At(index); if (!mag) return 0; - Float_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; + Double_t xyz[3]={r*TMath::Cos(phi),r*TMath::Sin(phi),z}; //xyz[1]+=30; - Float_t bxyz[3]; + Double_t bxyz[3]; mag->Field(xyz,bxyz); if (r==0) return 0; - Float_t br = (-bxyz[0]*xyz[1]+bxyz[1]*xyz[0])/r; + Double_t br = (-bxyz[0]*xyz[1]+bxyz[1]*xyz[0])/r; return br; } diff --git a/TPC/AliTPCExBExact.cxx b/TPC/AliTPCExBExact.cxx index ae9336e6490..c495671324a 100644 --- a/TPC/AliTPCExBExact.cxx +++ b/TPC/AliTPCExBExact.cxx @@ -23,7 +23,6 @@ #include "TMath.h" #include "TTreeStream.h" -#include "AliFieldMap.h" #include "AliMagF.h" #include "AliTPCExBExact.h" @@ -34,7 +33,8 @@ const Double_t AliTPCExBExact::fgkDriftField=40.e3; AliTPCExBExact::AliTPCExBExact() : fDriftVelocity(0), - fkMap(0),fkField(0),fkN(0), + //fkMap(0), + fkField(0),fkN(0), fkNX(0),fkNY(0),fkNZ(0), fkXMin(-250.),fkXMax(250.),fkYMin(-250.),fkYMax(250.), fkZMin(-250.),fkZMax(250.), @@ -48,7 +48,8 @@ AliTPCExBExact::AliTPCExBExact(const AliMagF *bField, Double_t driftVelocity, Int_t nx,Int_t ny,Int_t nz,Int_t n) : fDriftVelocity(driftVelocity), - fkMap(0),fkField(bField),fkN(n), + //fkMap(0), + fkField(bField),fkN(n), fkNX(nx),fkNY(ny),fkNZ(nz), fkXMin(-250.),fkXMax(250.),fkYMin(-250.),fkYMax(250.), fkZMin(-250.),fkZMax(250.), @@ -63,6 +64,7 @@ AliTPCExBExact::AliTPCExBExact(const AliMagF *bField, CreateLookupTable(); } +/* AliTPCExBExact::AliTPCExBExact(const AliFieldMap *bFieldMap, Double_t driftVelocity,Int_t n) : fDriftVelocity(driftVelocity), @@ -101,6 +103,7 @@ AliTPCExBExact::AliTPCExBExact(const AliFieldMap *bFieldMap, CreateLookupTable(); } +*/ AliTPCExBExact::~AliTPCExBExact() { // @@ -155,6 +158,7 @@ void AliTPCExBExact::Correct(const Double_t *position, Double_t *corrected) { // corrected[2]=position[2]; } +/* void AliTPCExBExact::TestThisBeautifulObject(const AliFieldMap *bFieldMap, const char* fileName) { // @@ -164,6 +168,7 @@ void AliTPCExBExact::TestThisBeautifulObject(const AliFieldMap *bFieldMap, fkField=0; TestThisBeautifulObjectGeneric(fileName); } +*/ void AliTPCExBExact::TestThisBeautifulObject(const AliMagF *bField, const char* fileName) { @@ -171,7 +176,7 @@ void AliTPCExBExact::TestThisBeautifulObject(const AliMagF *bField, // Have a look at the common part "TestThisBeautifulObjectGeneric". // fkField=bField; - fkMap=0; + //fkMap=0; TestThisBeautifulObjectGeneric(fileName); } @@ -261,15 +266,15 @@ void AliTPCExBExact::GetB(Double_t *b,const Double_t *x) const { // // Helper function returning the B field in SI units (T). // - Float_t xm[3]; + Double_t xm[3]; // the beautiful m to cm (and the ugly "const_cast") and Double_t // to Float_t read the NRs introduction!: for (int i=0;i<3;++i) xm[i]=x[i]*100.; - Float_t bf[3]; - if (fkMap!=0) - fkMap->Field(xm,bf); - else - fkField->Field(xm,bf); + Double_t bf[3]; + //if (fkMap!=0) + // fkMap->Field(xm,bf); + //else + ((AliMagF*)fkField)->Field(xm,bf); for (int i=0;i<3;++i) b[i]=bf[i]/10.; } diff --git a/TPC/AliTPCExBExact.h b/TPC/AliTPCExBExact.h index b0bc2e1a566..2115654dac6 100644 --- a/TPC/AliTPCExBExact.h +++ b/TPC/AliTPCExBExact.h @@ -10,20 +10,17 @@ #include "AliTPCExB.h" -class AliFieldMap; class AliMagF; class AliTPCExBExact:public AliTPCExB { public: AliTPCExBExact(); // just for the I/O stuff - AliTPCExBExact(const AliFieldMap *bFieldMap,Double_t driftVelocity, - Int_t n=100); + //AliTPCExBExact(const AliMagF *bFieldMap,Double_t driftVelocity,Int_t n=100); AliTPCExBExact(const AliMagF *bField,Double_t driftVelocity,Int_t n=100, Int_t nx=30,Int_t ny=30,Int_t nz=100); virtual ~AliTPCExBExact(); virtual void Correct(const Double_t *position,Double_t *corrected); - void TestThisBeautifulObject(const AliFieldMap *bFieldMap, - const char* fileName); + //void TestThisBeautifulObject(const AliFieldMap *bFieldMap,const char* fileName); void TestThisBeautifulObject(const AliMagF *bField,const char* fileName); protected: Double_t fDriftVelocity; // The electron drift velocity. @@ -37,7 +34,7 @@ private: void Motion(const Double_t *x,Double_t t,Double_t *dxdt) const; void CalculateDistortion(const Double_t *x,Double_t *dist) const; void DGLStep(Double_t *x,Double_t t,Double_t h) const; - const AliFieldMap *fkMap; //! the magnetic field map as supplied by the user + //const AliFieldMap *fkMap; //! the magnetic field map as supplied by the user const AliMagF *fkField; //! the magnetic field as supplied by the user Int_t fkN; // max number of integration steps Int_t fkNX; // field mesh points in x direction diff --git a/TPC/AliTPCExBFirst.cxx b/TPC/AliTPCExBFirst.cxx index 1dc0abd02e7..177c36866ed 100644 --- a/TPC/AliTPCExBFirst.cxx +++ b/TPC/AliTPCExBFirst.cxx @@ -36,7 +36,7 @@ #include "TMath.h" -#include "AliFieldMap.h" +//#include "AliFieldMap.h" #include "AliMagF.h" #include "TTreeStream.h" #include "AliTPCExBFirst.h" @@ -73,10 +73,12 @@ AliTPCExBFirst::AliTPCExBFirst(const AliMagF *bField, // drift velocity. Since some kind of lookuptable is created the // number of its meshpoints can be supplied. // - ConstructCommon(0,bField); + // ConstructCommon(0,bField); + ConstructCommon(bField); SetInstance(this); } +/* AliTPCExBFirst::AliTPCExBFirst(const AliFieldMap *bFieldMap, Double_t driftVelocity) : fDriftVelocity(driftVelocity), @@ -115,6 +117,7 @@ AliTPCExBFirst::AliTPCExBFirst(const AliFieldMap *bFieldMap, ConstructCommon(bFieldMap,0); } +*/ AliTPCExBFirst::~AliTPCExBFirst() { // @@ -201,7 +204,8 @@ void AliTPCExBFirst::TestThisBeautifulObject(const char* fileName) { } } -void AliTPCExBFirst::ConstructCommon(const AliFieldMap *bFieldMap, + +void AliTPCExBFirst::ConstructCommon(//const AliFieldMap *bFieldMap, const AliMagF *bField) { // // THIS IS PRIVATE! (a helper for the constructor) @@ -221,15 +225,15 @@ void AliTPCExBFirst::ConstructCommon(const AliFieldMap *bFieldMap, Double_t bx=0.,by=0.; for (int k=0;kField(xt,b); - else - bField->Field(xt,b); + // if (bFieldMap!=0) + // bFieldMap->Field(xt,b); + // else + ((AliMagF*)bField)->Field(xt,b); bx+=b[0]/10.; by+=b[1]/10.; fkMeanBx[(k*fkNY+j)*fkNX+i]=bx; @@ -244,6 +248,7 @@ void AliTPCExBFirst::ConstructCommon(const AliFieldMap *bFieldMap, fkMeanBz/=nBz; } + void AliTPCExBFirst::GetMeanFields(Double_t rx,Double_t ry,Double_t rz, Double_t *Bx,Double_t *By) const { // diff --git a/TPC/AliTPCExBFirst.h b/TPC/AliTPCExBFirst.h index a9ec9bce59d..8b0943642b8 100644 --- a/TPC/AliTPCExBFirst.h +++ b/TPC/AliTPCExBFirst.h @@ -9,13 +9,13 @@ #define ALITPCEXBFIRST_H #include "AliTPCExB.h" -class AliFieldMap; +//class AliFieldMap; class AliMagF; class AliTPCExBFirst:public AliTPCExB { public: AliTPCExBFirst(); - AliTPCExBFirst(const AliFieldMap *bFieldMap,Double_t driftVelocity); + // AliTPCExBFirst(const AliFieldMap *bFieldMap,Double_t driftVelocity); AliTPCExBFirst(const AliMagF *bField,Double_t driftVelocity, Int_t nx=100,Int_t ny=100,Int_t nz=100); virtual ~AliTPCExBFirst(); @@ -29,7 +29,8 @@ protected: private: AliTPCExBFirst& operator=(const AliTPCExBFirst&); // don't assign me AliTPCExBFirst(const AliTPCExBFirst&); // don't copy me - void ConstructCommon(const AliFieldMap *bFieldMap,const AliMagF *bField); + // void ConstructCommon(const AliFieldMap *bFieldMap,const AliMagF *bField); + void ConstructCommon(const AliMagF *bField); void GetMeanFields(Double_t rx,Double_t ry,Double_t rz, Double_t *Bx,Double_t *By) const; Int_t fkNX; // field mesh points in x direction diff --git a/TPC/AliTPCFindTracksMI.C b/TPC/AliTPCFindTracksMI.C index dcc01527acd..5be0d8bcecc 100644 --- a/TPC/AliTPCFindTracksMI.C +++ b/TPC/AliTPCFindTracksMI.C @@ -8,7 +8,6 @@ #include "AliTPCtracker.h" #include "AliTPCtrackerMI.h" #include "AliRun.h" - #include "AliMagF.h" #include "AliRunLoader.h" #include "AliTPCLoader.h" #include "AliESD.h" diff --git a/TPC/AliTPCHits2SDigits.C b/TPC/AliTPCHits2SDigits.C index 2c0574b1dd5..98acdeaaa50 100644 --- a/TPC/AliTPCHits2SDigits.C +++ b/TPC/AliTPCHits2SDigits.C @@ -3,7 +3,6 @@ #include "AliRun.h" #include "AliRunLoader.h" #include "AliLoader.h" - #include "AliMagF.h" #include "AliTPCtracker.h" #include "AliITS.h" #include "AliITSgeom.h" diff --git a/TPC/AliTPCReconstructor.cxx b/TPC/AliTPCReconstructor.cxx index 750c3b24b81..7381038a281 100644 --- a/TPC/AliTPCReconstructor.cxx +++ b/TPC/AliTPCReconstructor.cxx @@ -51,10 +51,8 @@ fClusterer(NULL) // // AliTPCcalibDB * calib = AliTPCcalibDB::Instance(); - const AliMagF * field = AliTracker::GetFieldMap(); - if (field) { // Set correctly the magnetic field in the ExB calculation - calib->SetExBField(field->SolenoidField()); - } + const AliMagF * field = (AliMagF*)TGeoGlobalMagField::Instance(); + calib->SetExBField(field->SolenoidField()); AliTPCParam* param = GetTPCParam(); if (!param) { AliWarning("Loading default TPC parameters !"); diff --git a/TPC/AliTPCTracklet.cxx b/TPC/AliTPCTracklet.cxx index 9eddd5a84c3..fcc3ebd9a9a 100755 --- a/TPC/AliTPCTracklet.cxx +++ b/TPC/AliTPCTracklet.cxx @@ -744,11 +744,9 @@ Bool_t AliTPCTracklet::PropagateToMeanX(const AliTPCTracklet &t1, return t1m&&t2m; } -double AliTPCTracklet::GetBz(Double_t *xyz) { - if (AliTracker::UniformField()) - return AliTracker::GetBz(); - else - return AliTracker::GetBz(xyz); +double AliTPCTracklet::GetBz(Double_t *xyz) +{ + return AliTracker::GetBz(xyz); } void AliTPCTracklet::RandomND(Int_t ndim,const Double_t *p,const Double_t *c, diff --git a/TPC/AliTPCcalibCosmic.cxx b/TPC/AliTPCcalibCosmic.cxx index f966af5681c..4169f110ee5 100644 --- a/TPC/AliTPCcalibCosmic.cxx +++ b/TPC/AliTPCcalibCosmic.cxx @@ -58,7 +58,7 @@ #include "AliAnalysisManager.h" #include "AliTracker.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTPCCalROC.h" #include "AliLog.h" diff --git a/TPC/AliTPCcalibDB.cxx b/TPC/AliTPCcalibDB.cxx index 5aed0fa07e8..36a3235088a 100644 --- a/TPC/AliTPCcalibDB.cxx +++ b/TPC/AliTPCcalibDB.cxx @@ -84,7 +84,6 @@ #include #include #include -#include #include "AliTPCcalibDB.h" #include "AliTPCAltroMapping.h" @@ -688,7 +687,7 @@ void AliTPCcalibDB::RegisterExB(Int_t index, Float_t bz, Bool_t bdelete){ Float_t factor = bz/(-5.); // default b filed in Cheb with minus sign - AliMagF* bmap = new AliMagFCheb("MapsExB","MapsExB", 2, factor, 10., AliMagFCheb::k5kG,kTRUE,"$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); + AliMagF* bmap = new AliMagF("MapsExB","MapsExB", 2,factor,1., 10.,AliMagF::k5kG,"$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); AliTPCExBFirst *exb = new AliTPCExBFirst(bmap,0.88*2.6400e+04,50,50,50); AliTPCExB::SetInstance(exb); diff --git a/TPC/AliTPCcalibTime.cxx b/TPC/AliTPCcalibTime.cxx index 016fdca69fa..d7e1575aa47 100644 --- a/TPC/AliTPCcalibTime.cxx +++ b/TPC/AliTPCcalibTime.cxx @@ -79,7 +79,7 @@ cal->GetHistVdrift()->Projection(1,0)->Draw() #include "AliAnalysisManager.h" #include "AliTracker.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTPCCalROC.h" #include "AliLog.h" diff --git a/TPC/AliTPCcalibUnlinearity.cxx b/TPC/AliTPCcalibUnlinearity.cxx index 995486469a3..369a1c958da 100644 --- a/TPC/AliTPCcalibUnlinearity.cxx +++ b/TPC/AliTPCcalibUnlinearity.cxx @@ -66,7 +66,7 @@ #include "AliESDInputHandler.h" #include "AliAnalysisManager.h" #include "AliTracker.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliTPCCalROC.h" #include "AliLog.h" diff --git a/TPC/AliTPCtrack.cxx b/TPC/AliTPCtrack.cxx index 9a3501642a5..2eeea9e91e4 100644 --- a/TPC/AliTPCtrack.cxx +++ b/TPC/AliTPCtrack.cxx @@ -402,12 +402,3 @@ void AliTPCtrack::UpdatePoints() // } -Double_t AliTPCtrack::GetBz() const { - // - // returns Bz component of the magnetic field (kG) - // - if (AliTracker::UniformField()) return AliTracker::GetBz(); - Double_t r[3]; GetXYZ(r); - return AliTracker::GetBz(r); -} - diff --git a/TPC/AliTPCtrack.h b/TPC/AliTPCtrack.h index e618b0c5d4e..7b8f1b8b324 100644 --- a/TPC/AliTPCtrack.h +++ b/TPC/AliTPCtrack.h @@ -91,7 +91,6 @@ public: Int_t GetNFoundable() const {return fNFoundable;} protected: - Double_t GetBz() const; Double_t fdEdx; // dE/dx Int_t fIndex[kMaxRow]; // indices of associated clusters diff --git a/TPC/AliTPCtrackerParam.cxx b/TPC/AliTPCtrackerParam.cxx index cedffe62dc0..57477d56e8a 100644 --- a/TPC/AliTPCtrackerParam.cxx +++ b/TPC/AliTPCtrackerParam.cxx @@ -276,9 +276,7 @@ Int_t AliTPCtrackerParam::Init() { } else printf("\n ! Creating ALL TRUE tracks at TPC inner radius !\n\n"); - - // Check if value in the galice file is equal to selected one (fBz) - AliMagF *fiel = (AliMagF*)gAlice->Field(); + AliMagF *fiel = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); Double_t fieval=TMath::Abs((Double_t)fiel->SolenoidField()/10.); printf("Magnetic field is %6.2f Tesla\n",fieval); if(fBz!=fieval) { @@ -288,9 +286,6 @@ Int_t AliTPCtrackerParam::Init() { return 1; } - // Set the conversion constant between curvature and Pt - AliTracker::SetFieldMap(fiel,kTRUE); - return 0; } //----------------------------------------------------------------------------- diff --git a/TPC/AliTPCtrackingParamDB.C b/TPC/AliTPCtrackingParamDB.C index 3e9d56ec41b..2211b65decf 100644 --- a/TPC/AliTPCtrackingParamDB.C +++ b/TPC/AliTPCtrackingParamDB.C @@ -90,10 +90,8 @@ Int_t TPCParamTracks(const Int_t coll,Int_t firstEvent,Int_t lastEvent) { TDatabasePDG *DataBase = TDatabasePDG::Instance(); // Get field from galice.root - AliMagF *fiel = (AliMagF*)gAlice->Field(); + AliMagF *fiel = TGeoGlobalMagField::Instance()->GetField(); Double_t fieval=TMath::Abs((Double_t)fiel->SolenoidField()/10.); - // Set the conversion constant between curvature and Pt - AliTracker::SetFieldMap(fiel,kTRUE); /**** The TPC corner ********************/ diff --git a/TPC/AnalyzeESDtracks.C b/TPC/AnalyzeESDtracks.C index 8258e25c004..597cb47abff 100644 --- a/TPC/AnalyzeESDtracks.C +++ b/TPC/AnalyzeESDtracks.C @@ -97,9 +97,6 @@ void AnalyzeESDtracks(Int_t run){ TTreeSRedirector * pcstream = new TTreeSRedirector("TPCtracks.root"); TTreeSRedirector &cstream = *pcstream; // - // dummy magnetic field - AliMagF mag("aaa","aaa",1,1,10); - AliTracker::SetFieldMap(&mag,kTRUE); TFile f("AliESDs.root"); TTree * tree =(TTree*)f.Get("esdTree"); AliESD * esd =0; diff --git a/TPC/Cal/AliTPCCreateDummyCDB.C b/TPC/Cal/AliTPCCreateDummyCDB.C index a3512e3c41c..e0bbb112217 100644 --- a/TPC/Cal/AliTPCCreateDummyCDB.C +++ b/TPC/Cal/AliTPCCreateDummyCDB.C @@ -217,7 +217,7 @@ void AliTPCCreateDummyCDB() // currently scaling factor 0 used - no magnetic field // metaData = CreateMetaObject("AliTPCExB"); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 0., 10., 1); + AliMagF* field = new AliMagF("Maps","Maps", 2, 0., 0., 10., AliMagF::k5kG)); AliTPCExBFirst *exbfirst = new AliTPCExBFirst(field,2.83000000000000000e+04,50,50,50); StoreObject("TPC/Calib/ExB", exbfirst, metaData); diff --git a/TPC/CalibMacros/CalibExB.C b/TPC/CalibMacros/CalibExB.C index c2c0464b7bc..a4875bcab6a 100644 --- a/TPC/CalibMacros/CalibExB.C +++ b/TPC/CalibMacros/CalibExB.C @@ -2,11 +2,11 @@ void Init(){ // // Initialize // - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG); AliTPCExB::RegisterField(0,field); - AliMagF* fieldC0 = new AliMagWrapCheb("Maps","Maps", 2, 1, 10., AliMagWrapCheb::k5kG); + AliMagF* fieldC0 = new AliMagF("Maps","Maps", 2, 1, 1, 10., AliMagF::k5kG); AliTPCExB::RegisterField(1,fieldC0); - AliMagF* fieldC1 = new AliMagWrapCheb("Maps","Maps", 2, 1, 10., AliMagWrapCheb::k5kG,kTRUE,"$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); + AliMagF* fieldC1 = new AliMagF("Maps","Maps", 2, 1, 1, 10., AliMagF::k5kG,kTRUE,"$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); AliTPCExB::RegisterField(2,fieldC1); gSystem->Load("libSTAT.so"); diff --git a/TPC/ConfigKr.C b/TPC/ConfigKr.C index 948c38774ad..9afaba2dc66 100644 --- a/TPC/ConfigKr.C +++ b/TPC/ConfigKr.C @@ -16,7 +16,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -134,8 +134,7 @@ void Config() gener->Init(); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); // detectors - only the TPC is relevant diff --git a/TPC/macros/ConfigOCDB.C b/TPC/macros/ConfigOCDB.C index 88ee625b269..c4986983ebe 100644 --- a/TPC/macros/ConfigOCDB.C +++ b/TPC/macros/ConfigOCDB.C @@ -20,8 +20,7 @@ void ConfigOCDB(Float_t bfield){ // // Setup magnetic field // - AliMagF* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); - AliTracker::SetFieldMap(field,0); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); // // // diff --git a/TPC/macros/TestV0.C b/TPC/macros/TestV0.C index e485a1dda89..0da8ae31031 100644 --- a/TPC/macros/TestV0.C +++ b/TPC/macros/TestV0.C @@ -53,10 +53,6 @@ AliAnalysisManager * SetupV0Task() { TStopwatch stopwatch; stopwatch.Start(); // - // set magnetic field form the cosmos - it should be provided by framework - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 2); - AliTracker::SetFieldMap(field,0); - // AliAnalysisManager *mgr=new AliAnalysisManager("TestManager"); AliESDInputHandler* esdH=new AliESDInputHandler; diff --git a/TPC/macros/recMag5.C b/TPC/macros/recMag5.C index ba84c8afb53..2bec166cd6c 100644 --- a/TPC/macros/recMag5.C +++ b/TPC/macros/recMag5.C @@ -75,9 +75,6 @@ void recMag5(const char *filename="data.root") AliRecoParam::Instance()->RegisterRecoParam(muonRecoParam); // Tracking settings - // AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - AliMagF* field = new AliMagWrapCheb("Maps","Maps", 2, 1., 10., AliMagWrapCheb::k5kG); - AliTracker::SetFieldMap(field,1); Double_t mostProbPt=0.35; AliExternalTrackParam::SetMostProbablePt(mostProbPt); diff --git a/TPC/macros/recTPC2007.C b/TPC/macros/recTPC2007.C index 1760203b522..7af5a56d4a8 100644 --- a/TPC/macros/recTPC2007.C +++ b/TPC/macros/recTPC2007.C @@ -37,9 +37,6 @@ void recTPC2007(Int_t type, const char *filename="data.root") // AliTPCReconstructor::SetRecoParam(tpcRecoParam); AliTPCReconstructor::SetStreamLevel(100); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - AliTracker::SetFieldMap(field,1); - // // AliReconstruction rec; rec.SetDefaultStorage("alien://folder=/alice/data/2007/LHC07w/OCDB/"); diff --git a/TPC/macros/testTPC/rec.C b/TPC/macros/testTPC/rec.C index b72aa2e2239..2a4851a11a1 100644 --- a/TPC/macros/testTPC/rec.C +++ b/TPC/macros/testTPC/rec.C @@ -52,11 +52,6 @@ void rec(const char *filename="data.root") // MUON settings AliLog::SetClassDebugLevel("AliMUONRawStreamTracker",3); - // Tracking settings - // AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 0., 10., 2); - AliTracker::SetFieldMap(field,1); - // AliReconstruction settings AliReconstruction rec; rec.SetUniformFieldTracking(kFALSE); diff --git a/TPC/recTPC.C b/TPC/recTPC.C index a5695ead5dc..2645f8ff443 100644 --- a/TPC/recTPC.C +++ b/TPC/recTPC.C @@ -44,8 +44,6 @@ void recTPC(Int_t type, const char *filename="data.root") rec.SetFillESD("TPC"); rec.SetFillTriggerESD(kFALSE); rec.SetRunVertexFinder(kFALSE); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - AliTracker::SetFieldMap(field,1); rec.SetWriteAlignmentData(kTRUE); rec.Run(); } @@ -87,8 +85,6 @@ void recTracking(Int_t type, const char *filename="data.root") rec.SetFillESD("TPC"); rec.SetFillTriggerESD(kFALSE); rec.SetRunVertexFinder(kFALSE); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - AliTracker::SetFieldMap(field,1); rec.SetWriteAlignmentData(kTRUE); rec.Run(0); } diff --git a/TPC/testMC/ConfigCosmic.C b/TPC/testMC/ConfigCosmic.C index c5c4e518efd..6de492a7434 100644 --- a/TPC/testMC/ConfigCosmic.C +++ b/TPC/testMC/ConfigCosmic.C @@ -31,7 +31,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -107,11 +107,6 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - enum PprTrigConf_t { kDefaultPPTrig, kDefaultPbPbTrig @@ -125,7 +120,7 @@ const char * pprTrigConfName[] = { static PprRun_t srun = test50; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; static Int_t sseed = 0; //Set 0 to use the current time static PprTrigConf_t strig = kDefaultPPTrig; // default pp trigger configuration @@ -255,11 +250,9 @@ void Config() gener->SetTrackingFlag(1); gener->Init(); - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -276,9 +269,8 @@ void Config() // Field - AliMagF* field = new AliMagWrapCheb("MapsSimCheb","MapsSimCheb", 2, 1., 10., AliMagWrapCheb::k5kG); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., smag)); rl->CdGAFile(); - gAlice->SetField(field); diff --git a/TPC/testMC/ConfigHM.C b/TPC/testMC/ConfigHM.C index b7384143692..de9a26024ec 100644 --- a/TPC/testMC/ConfigHM.C +++ b/TPC/testMC/ConfigHM.C @@ -16,7 +16,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -212,9 +212,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/TPC/testMC/ConfigHPT.C b/TPC/testMC/ConfigHPT.C index 8e92991c3b2..e8850e5d3c2 100644 --- a/TPC/testMC/ConfigHPT.C +++ b/TPC/testMC/ConfigHPT.C @@ -31,7 +31,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -274,11 +274,8 @@ void Config() // Field - AliMagF* field = new AliMagWrapCheb("MapsSimCheb","MapsSimCheb", 2, 1., 10., AliMagWrapCheb::k5kG); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); rl->CdGAFile(); - gAlice->SetField(field); - - // Int_t iABSO = 1; diff --git a/TPC/testMC/ConfigHPT1.C b/TPC/testMC/ConfigHPT1.C index 46e9be1bd08..9a54d938ae6 100644 --- a/TPC/testMC/ConfigHPT1.C +++ b/TPC/testMC/ConfigHPT1.C @@ -16,7 +16,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -171,9 +171,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/TPC/testMC/ConfigLM.C b/TPC/testMC/ConfigLM.C index 74a055fb57c..aec18b8746f 100644 --- a/TPC/testMC/ConfigLM.C +++ b/TPC/testMC/ConfigLM.C @@ -16,7 +16,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -212,7 +212,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); gAlice->SetField(field); diff --git a/TPC/testMC/ConfigPP.C b/TPC/testMC/ConfigPP.C index cd88444dab9..726cd271174 100644 --- a/TPC/testMC/ConfigPP.C +++ b/TPC/testMC/ConfigPP.C @@ -31,7 +31,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -105,11 +105,6 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - enum PprTrigConf_t { kDefaultPPTrig, kDefaultPbPbTrig @@ -123,7 +118,7 @@ const char * pprTrigConfName[] = { static PprRun_t srun = kPythia6; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; static Int_t sseed = 0; //Set 0 to use the current time static PprTrigConf_t strig = kDefaultPPTrig; // default pp trigger configuration @@ -255,8 +250,6 @@ void Config() if (smag == k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); } else if (smag == k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -275,9 +268,8 @@ void Config() // Field - AliMagF* field = new AliMagWrapCheb("Maps","Maps", 2, 1, 10., AliMagWrapCheb::k5kG,kTRUE,"$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., smag)); rl->CdGAFile(); - gAlice->SetField(field); // Int_t iABSO = 1; diff --git a/TPC/testMC/Config_AliGenCosmicsParam.C b/TPC/testMC/Config_AliGenCosmicsParam.C index 563f030d10c..075cd2af6af 100644 --- a/TPC/testMC/Config_AliGenCosmicsParam.C +++ b/TPC/testMC/Config_AliGenCosmicsParam.C @@ -17,7 +17,7 @@ #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenCosmicsParam.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" @@ -50,7 +50,7 @@ enum Mag_t Float_t EtaToTheta(Float_t arg); -static Mag_t mag = k5kG; +static AliMagF::BMap_t mag = AliMagF::k5kG; @@ -181,10 +181,9 @@ void Config() // MAGNETIC FIELD IN THE BARREL - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); // FIELD - // field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., mag)); + // TGeoGlobalMagField::Instance()->GetField()->SetL3ConstField(0); //Using const. field in the barrel rl->CdGAFile(); - gAlice->SetField(field); Int_t iABSO = 1; diff --git a/TPC/testMC/recMC.C b/TPC/testMC/recMC.C index de5475a8a5c..42df1ddcb62 100644 --- a/TPC/testMC/recMC.C +++ b/TPC/testMC/recMC.C @@ -24,10 +24,6 @@ void recMC(){ // rec.SetEventRange(0,20); - AliMagWrapCheb* field = 0x0; - AliMagF* field = new AliMagWrapCheb("Maps","Maps", 2, 1, 10., AliMagWrapCheb::k5kG,kTRUE,"$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); - Bool_t uniform=kFALSE; - AliTracker::SetFieldMap(field,uniform); // tracking with the real map // // diff --git a/TPHIC/ConfigTPHIC.C b/TPHIC/ConfigTPHIC.C index 9945d524e16..4d7a65d5f33 100644 --- a/TPHIC/ConfigTPHIC.C +++ b/TPHIC/ConfigTPHIC.C @@ -86,9 +86,8 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); rootfile->cd(); - gAlice->SetField(field); Int_t iABSO = 0; diff --git a/TRD/AliTRD.cxx b/TRD/AliTRD.cxx index 020d9a86bc6..9b2adbe88bf 100644 --- a/TRD/AliTRD.cxx +++ b/TRD/AliTRD.cxx @@ -23,6 +23,7 @@ // // /////////////////////////////////////////////////////////////////////////////// +#include #include #include "AliMC.h" @@ -312,8 +313,8 @@ void AliTRD::CreateMaterials() // Create the materials for the TRD // - Int_t isxfld = gAlice->Field()->Integ(); - Float_t sxmgmx = gAlice->Field()->Max(); + Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); + Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // For polyethilene (CH2) Float_t ape[2] = { 12.011 , 1.0079 }; diff --git a/TRD/AliTRDdigitizer.cxx b/TRD/AliTRDdigitizer.cxx index 6a612ba0bae..ea6ea17b60d 100644 --- a/TRD/AliTRDdigitizer.cxx +++ b/TRD/AliTRDdigitizer.cxx @@ -36,16 +36,17 @@ // // //////////////////////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include -#include #include +#include +#include +#include #include +#include +#include +#include #include -#include +#include +#include #include "AliRun.h" #include "AliMC.h" @@ -2665,8 +2666,8 @@ void AliTRDdigitizer::RecalcDiffusion(Float_t vdrift) // The magnetic field strength Double_t x[3] = { 0.0, 0.0, 0.0 }; - Double_t b[3]; - gAlice->Field(x,b); // b[] is in kilo Gauss + Double_t b[3] = {0.,0.,0.}; + TGeoGlobalMagField::Instance()->Field(x,b); // b[] is in kilo Gauss Float_t field = b[2] * 0.1; // Tesla diff --git a/TRD/AliTRDtrackV1.cxx b/TRD/AliTRDtrackV1.cxx index cd91823d5e3..8be1deeb240 100644 --- a/TRD/AliTRDtrackV1.cxx +++ b/TRD/AliTRDtrackV1.cxx @@ -315,20 +315,6 @@ Bool_t AliTRDtrackV1::CookPID() return kTRUE; } -//_____________________________________________________________________________ -Double_t AliTRDtrackV1::GetBz() const -{ - // - // Returns Bz component of the magnetic field (kG) - // - - if (AliTracker::UniformField()) return AliTracker::GetBz(); - - Double_t r[3]; - GetXYZ(r); - return AliTracker::GetBz(r); -} - //_______________________________________________________________ AliTRDcluster* AliTRDtrackV1::GetCluster(Int_t id) { diff --git a/TRD/AliTRDtrackV1.h b/TRD/AliTRDtrackV1.h index 39cf2bacf5d..3a36075d095 100644 --- a/TRD/AliTRDtrackV1.h +++ b/TRD/AliTRDtrackV1.h @@ -56,7 +56,6 @@ public: Bool_t CookLabel(Float_t wrong); AliTRDtrackV1* GetBackupTrack() const {return fBackupTrack;} Double_t GetBudget(Int_t i) const { return fBudget[i];} - Double_t GetBz() const; AliTRDcluster* GetCluster(Int_t id); Int_t GetClusterIndex(Int_t id) const; Float_t GetEdep() const {return fDE;} diff --git a/TRD/Macros/AliTRDConfigPID.C b/TRD/Macros/AliTRDConfigPID.C index c463b488081..48bb2371127 100644 --- a/TRD/Macros/AliTRDConfigPID.C +++ b/TRD/Macros/AliTRDConfigPID.C @@ -28,7 +28,7 @@ #include "STEER/AliConfig.h" #include "PYTHIA6/AliDecayerPythia.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" @@ -85,11 +85,7 @@ enum YCut_t { kFull, kBarrel, kMuonArm }; -//--- Magnetic Field --- -enum Mag_t -{ - k2kG, k4kG, k5kG -}; + //--- Functions --- AliGenPythia *PythiaHVQ(PDC06Proc_t proc); AliGenerator *MbCocktail(); @@ -102,7 +98,7 @@ Float_t EtaToTheta(Float_t arg){ // This part for configuration static DecayHvFl_t decHvFl = kNature; static YCut_t ycut = kBarrel; -static Mag_t mag = k5kG; +static AliMagF::BMap_t mag = k5kG; //========================// // Set Random Number seed // //========================// @@ -356,19 +352,17 @@ void Config() // FIELD // - if (mag == k2kG) { + if (mag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (mag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (mag == k5kG) { + } else if (mag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } printf("\n \n Comment: %s \n \n", comment.Data()); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., mag); field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); rl->CdGAFile(); - gAlice->SetField(field); Int_t iABSO = 1; Int_t iACORDE = 0; diff --git a/TRD/qaRec/AliTRDtrackingEfficiency.cxx b/TRD/qaRec/AliTRDtrackingEfficiency.cxx index 7f13c83dcf1..35acddb1874 100644 --- a/TRD/qaRec/AliTRDtrackingEfficiency.cxx +++ b/TRD/qaRec/AliTRDtrackingEfficiency.cxx @@ -34,7 +34,7 @@ #include "AliTrackReference.h" #include "AliExternalTrackParam.h" #include "AliTracker.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliAnalysisManager.h" #include "Cal/AliTRDCalPID.h" diff --git a/TRD/qaRec/AliTRDtrackingEfficiencyCombined.cxx b/TRD/qaRec/AliTRDtrackingEfficiencyCombined.cxx index fa4e22b7c44..7e4b2dd56a2 100644 --- a/TRD/qaRec/AliTRDtrackingEfficiencyCombined.cxx +++ b/TRD/qaRec/AliTRDtrackingEfficiencyCombined.cxx @@ -31,7 +31,7 @@ #include #include "TTreeStream.h" -#include "AliMagFMaps.h" +#include "AliMagF.h" #include "AliPID.h" #include "AliTracker.h" #include "AliTrackReference.h" diff --git a/TRD/qaRec/run.C b/TRD/qaRec/run.C index 493304a2720..53ddbaca28c 100644 --- a/TRD/qaRec/run.C +++ b/TRD/qaRec/run.C @@ -45,7 +45,7 @@ #include "TGridCollection.h" #include "TGridResult.h" -#include "AliMagFCheb.h" +#include "AliMagF.h" #include "AliTracker.h" #include "AliLog.h" #include "AliCDBManager.h" @@ -99,12 +99,6 @@ void run(Char_t *tasks="ALL", const Char_t *files=0x0) cdbManager->SetRun(0); cdbManager->SetCacheFlag(kFALSE); - // initialize magnetic field. TODO We should use the GRP ! - AliMagFCheb *field = 0x0; - field = new AliMagFCheb("Maps","Maps", 2, 1., 10., AliMagFCheb::k5kG, kTRUE,"$(ALICE_ROOT)/data/maps/mfchebKGI_sym.root"); - //field = new AliMagFCheb("Maps","Maps", 2, 0., 10., AliMagFCheb::k2kG); - AliTracker::SetFieldMap(field, kTRUE); - // initialize TRD settings AliTRDcalibDB *cal = AliTRDcalibDB::Instance(); AliTRDtrackerV1::SetNTimeBins(cal->GetNumberOfTimeBins()); diff --git a/VZERO/AliVZEROv2.cxx b/VZERO/AliVZEROv2.cxx index 2c2240570b5..ec6242ee65d 100755 --- a/VZERO/AliVZEROv2.cxx +++ b/VZERO/AliVZEROv2.cxx @@ -37,11 +37,12 @@ // --- ROOT libraries --- #include +#include #include #include #include -#include #include +#include // --- AliRoot header files --- #include "AliRun.h" @@ -428,8 +429,8 @@ void AliVZEROv2::CreateMaterials() AliMixture( 6, "Scintillator$",ascin,zscin,denscin,-2,wscin); - Int_t iSXFLD = gAlice->Field()->Integ(); - Float_t sXMGMX = gAlice->Field()->Max(); + Int_t iSXFLD = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); // Field type + Float_t sXMGMX = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Field max. Float_t tmaxfd, stemax, deemax, epsil, stmin; diff --git a/VZERO/AliVZEROv3.cxx b/VZERO/AliVZEROv3.cxx index e2673d2f22f..7330fa1b9a3 100755 --- a/VZERO/AliVZEROv3.cxx +++ b/VZERO/AliVZEROv3.cxx @@ -39,11 +39,12 @@ // --- ROOT libraries --- #include +#include #include #include #include -#include #include +#include // --- AliRoot header files --- #include "AliConst.h" @@ -396,10 +397,9 @@ void AliVZEROv3::CreateMaterials() AliMaterial( 5, "ALUMINIUM2$", aal, zal, densal, radlal, 0, 0, 0); AliMixture( 6, "Scintillator$",ascin,zscin,denscin,-2,wscin); - - - Int_t iSXFLD = gAlice->Field()->Integ(); - Float_t sXMGMX = gAlice->Field()->Max(); + + Int_t iSXFLD = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); // Field type + Float_t sXMGMX = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Field max. Float_t tmaxfd, stemax, deemax, epsil, stmin; diff --git a/VZERO/AliVZEROv4.cxx b/VZERO/AliVZEROv4.cxx index 29554b62df2..aadc93795ed 100755 --- a/VZERO/AliVZEROv4.cxx +++ b/VZERO/AliVZEROv4.cxx @@ -35,11 +35,12 @@ // --- ROOT libraries --- #include +#include #include #include #include -#include #include +#include // --- AliRoot header files --- #include "AliRun.h" @@ -413,8 +414,8 @@ void AliVZEROv4::CreateMaterials() AliMixture( 6, "Scintillator$",ascin,zscin,denscin,-2,wscin); - Int_t iSXFLD = gAlice->Field()->Integ(); - Float_t sXMGMX = gAlice->Field()->Max(); + Int_t iSXFLD = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); // Field type + Float_t sXMGMX = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Field max. Float_t tmaxfd, stemax, deemax, epsil, stmin; diff --git a/VZERO/AliVZEROv5.cxx b/VZERO/AliVZEROv5.cxx index defd45e9f50..76d1d1b2dde 100755 --- a/VZERO/AliVZEROv5.cxx +++ b/VZERO/AliVZEROv5.cxx @@ -35,11 +35,12 @@ // --- ROOT libraries --- #include +#include #include #include #include -#include #include +#include // --- AliRoot header files --- #include "AliRun.h" @@ -424,8 +425,8 @@ void AliVZEROv5::CreateMaterials() AliMixture( 6, "Scintillator$",ascin,zscin,denscin,-2,wscin); - Int_t iSXFLD = gAlice->Field()->Integ(); - Float_t sXMGMX = gAlice->Field()->Max(); + Int_t iSXFLD = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); // Field type + Float_t sXMGMX = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Field max. Float_t tmaxfd, stemax, deemax, epsil, stmin; diff --git a/VZERO/AliVZEROv6.cxx b/VZERO/AliVZEROv6.cxx index a5d97c50dbc..a9f4a1638b4 100644 --- a/VZERO/AliVZEROv6.cxx +++ b/VZERO/AliVZEROv6.cxx @@ -27,6 +27,8 @@ // // ////////////////////////////////////////////////////////////////////// +#include + #include "AliVZEROv6.h" ClassImp(AliVZEROv6) @@ -400,8 +402,8 @@ void AliVZEROv6::CreateMaterials() // Int_t *idtmed = fIdtmed->GetArray()-2999; - Int_t fieldType = gAlice->Field()->Integ(); // Field type - Double_t maxField = gAlice->Field()->Max(); // Field max. + Int_t fieldType = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); // Field type + Double_t maxField = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Field max. Double_t maxBending = 0; // Max Angle Double_t maxStepSize = 0.001; // Max step size Double_t maxEnergyLoss = 1; // Max Delta E diff --git a/VZERO/AliVZEROv7.cxx b/VZERO/AliVZEROv7.cxx index 9117740bb14..b188600d53d 100644 --- a/VZERO/AliVZEROv7.cxx +++ b/VZERO/AliVZEROv7.cxx @@ -35,9 +35,10 @@ // --- ROOT libraries --- #include +#include #include -#include #include +#include #include #include @@ -1726,8 +1727,8 @@ void AliVZEROv7::CreateMaterials() AliDebug(2,"Create materials"); // Parameters for simulation scope - Int_t fieldType = gAlice->Field()->Integ(); // Field type - Double_t maxField = gAlice->Field()->Max(); // Field max. + Int_t fieldType = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); // Field type + Double_t maxField = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); // Field max. Double_t maxBending = 10; // Max Angle Double_t maxStepSize = 0.01; // Max step size Double_t maxEnergyLoss = 1; // Max Delta E diff --git a/ZDC/AliZDCv1.cxx b/ZDC/AliZDCv1.cxx index 6e94d423c01..d561da60b87 100644 --- a/ZDC/AliZDCv1.cxx +++ b/ZDC/AliZDCv1.cxx @@ -963,8 +963,8 @@ void AliZDCv1::CreateMaterials() // --- Tracking media parameters Float_t epsil = .01, stmin=0.01, stemax = 1.; -// Int_t isxfld = gAlice->Field()->Integ(); -// Float_t fieldm = gAlice->Field()->Max(); +// Int_t isxfld = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ(); +// Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max(); Float_t fieldm = 0., tmaxfd = 0.; Int_t ifield = 0, isvolActive = 1, isvol = 0, inofld = 0; diff --git a/ZDC/ConfigGenZDC.C b/ZDC/ConfigGenZDC.C index 18acc8541ac..03c0c73eec9 100644 --- a/ZDC/ConfigGenZDC.C +++ b/ZDC/ConfigGenZDC.C @@ -119,10 +119,11 @@ void Config() // //gener->SetVertexSmear(perTrack); // Magnetic field - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., smag); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., smag); field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); - gAlice->SetField(field); Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/doc/aliroot-primer/scripts/Config.C b/doc/aliroot-primer/scripts/Config.C index f6068131e6d..95ad2a45be6 100644 --- a/doc/aliroot-primer/scripts/Config.C +++ b/doc/aliroot-primer/scripts/Config.C @@ -112,8 +112,7 @@ void Config() gener->Init(); // Initialization of the coctail generator // Field (the last parameter is 1 => L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); // Make sure the current ROOT directory is in galice.root rl->CdGAFile(); diff --git a/macros/Config.C b/macros/Config.C index b8e1d4e6164..57ebd413c85 100644 --- a/macros/Config.C +++ b/macros/Config.C @@ -17,7 +17,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -190,9 +190,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/macros/ConfigPPR.C b/macros/ConfigPPR.C index 363e58cf48f..dc363adfc2d 100644 --- a/macros/ConfigPPR.C +++ b/macros/ConfigPPR.C @@ -31,7 +31,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -105,11 +105,6 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - enum PprTrigConf_t { kDefaultPPTrig, kDefaultPbPbTrig @@ -123,7 +118,7 @@ const char * pprTrigConfName[] = { //static PprRun_t srun = test50; static PprRun_t srun = kHIJINGplus; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; static Int_t sseed = 12345; //Set 0 to use the current time //static PprTrigConf_t strig = kDefaultPPTrig; // default pp trigger configuration static PprTrigConf_t strig = kDefaultPbPbTrig; // default PbPb trigger configuration @@ -261,11 +256,9 @@ void Config() gener->SetTrackingFlag(1); gener->Init(); - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -282,10 +275,11 @@ void Config() // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., smag); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., smag); field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); - gAlice->SetField(field); // Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/macros/Config_AliGenCosmicsParam.C b/macros/Config_AliGenCosmicsParam.C index fcd1ee033c7..7013bd2d1e1 100644 --- a/macros/Config_AliGenCosmicsParam.C +++ b/macros/Config_AliGenCosmicsParam.C @@ -17,7 +17,7 @@ #include "EVGEN/AliGenCocktail.h" #include "EVGEN/AliGenCosmicsParam.h" #include "EVGEN/AliGenHIJINGpara.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv0.h" @@ -42,15 +42,9 @@ #include "VZERO/AliVZEROv7.h" #endif -//--- Magnetic Field --- -enum Mag_t -{ - k2kG, k4kG, k5kG -}; - Float_t EtaToTheta(Float_t arg); -static Mag_t mag = k5kG; +static AliMagF::BMap_t mag = AliMagF::k5kG; void Config() { @@ -166,12 +160,11 @@ void Config() gGener = gener; // MAGNETIC FIELD IN THE BARREL - // AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); // FIELD - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 0., 10., mag); // NO FIELD + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,mag); field->SetL3ConstField(0); //Using const. field in the barrel - rl->CdGAFile(); - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); Int_t iABSO = 1; Int_t iDIPO = 0; diff --git a/macros/Config_PDC06.C b/macros/Config_PDC06.C index 35493852e31..eeecbbcecf1 100644 --- a/macros/Config_PDC06.C +++ b/macros/Config_PDC06.C @@ -23,7 +23,7 @@ #include "STEER/AliConfig.h" #include "PYTHIA6/AliDecayerPythia.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -80,12 +80,6 @@ enum YCut_t { kFull, kBarrel, kMuonArm }; -//--- Magnetic Field --- -enum Mag_t -{ - k2kG, k4kG, k5kG -}; - //--- Trigger config --- enum TrigConf_t { @@ -108,7 +102,7 @@ void LoadPythia(); static PDC06Proc_t proc = kPyMbNoHvq; static DecayHvFl_t decHvFl = kNature; static YCut_t ycut = kFull; -static Mag_t mag = k5kG; +static AliMagF::BMap_t mag = AliMagF::k5kG; static TrigConf_t trig = kDefaultPPTrig; // default pp trigger configuration //========================// // Set Random Number seed // @@ -343,19 +337,16 @@ void Config() // if (mag == k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (mag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); } else if (mag == k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } printf("\n \n Comment: %s \n \n", comment.Data()); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,mag); field->SetL3ConstField(0); //Using const. field in the barrel - rl->CdGAFile(); - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); Int_t iABSO = 1; Int_t iACORDE = 0; diff --git a/macros/Config_PDC06_MUON.C b/macros/Config_PDC06_MUON.C index 7a2f6cdd826..a8dac21667c 100644 --- a/macros/Config_PDC06_MUON.C +++ b/macros/Config_PDC06_MUON.C @@ -152,9 +152,9 @@ void Config(char directory[100]="", char option[6]="trg1mu") } //============================================================= // Field (L3 0.5 T) outside dimuon spectrometer - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); + AliMagF* field = new AliMagF("Maps","Maps",2,1.,1., 10.,AliMagF::k5kG); field->SetL3ConstField(0); // Using const. field in the barrel - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(field); Int_t iITS = 1; Int_t iZDC = 1; diff --git a/macros/Config_PDC07_MBias_MUON.C b/macros/Config_PDC07_MBias_MUON.C index a0408c8fada..8eb76c84209 100644 --- a/macros/Config_PDC07_MBias_MUON.C +++ b/macros/Config_PDC07_MBias_MUON.C @@ -170,9 +170,9 @@ void Config(char directory[100]="", char option[6]="trgAll") } //============================================================= // Field (L3 0.5 T) outside dimuon spectrometer - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., AliMagFMaps::k5kG); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 10., AliMagF::k5kG); field->SetL3ConstField(0); // Using const. field in the barrel - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(field); Int_t iITS = 1; Int_t iFMD = 1; diff --git a/macros/Config_PythiaHeavyFlavours.C b/macros/Config_PythiaHeavyFlavours.C index a4afabc22fc..5cce0891dad 100644 --- a/macros/Config_PythiaHeavyFlavours.C +++ b/macros/Config_PythiaHeavyFlavours.C @@ -23,7 +23,7 @@ #include "STEER/AliConfig.h" #include "PYTHIA6/AliDecayerPythia.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFMaps.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -67,11 +67,6 @@ enum YCut_t { kFull, kBarrel, kMuonArm }; -//--- Magnetic Field --- -enum Mag_t -{ - k2kG, k4kG, k5kG -}; //--- Trigger config --- enum TrigConf_t { @@ -91,7 +86,7 @@ void LoadPythia(); static ProcessHvFl_t procHvFl = kCharmpp14000wmi; static DecayHvFl_t decHvFl = kNature; static YCut_t ycut = kFull; -static Mag_t mag = k5kG; +static AliMagF::BMap_t mag = AliMagF::k5kG; static TrigConf_t trig = kDefaultPbPbTrig; // default PbPb trigger configuration // nEvts = -1 : you get 1 QQbar pair and all the fragmentation and // decay chain @@ -301,20 +296,18 @@ void Config() // FIELD // - if (mag == k2kG) { + if (mag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (mag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (mag == k5kG) { + } else if (mag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } printf("\n \n Comment: %s \n \n", comment.Data()); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., mag); field->SetL3ConstField(0); //Using const. field in the barrel - rl->CdGAFile(); - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); // By default all ALICE is switched off Int_t iABSO=0; diff --git a/macros/g4ConfigCommon.C b/macros/g4ConfigCommon.C index 0791ba8df2a..8be56661683 100644 --- a/macros/g4ConfigCommon.C +++ b/macros/g4ConfigCommon.C @@ -80,8 +80,7 @@ void ConfigCommon(Bool_t setRootGeometry = kTRUE) // ============================= // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/macros/plotField.C b/macros/plotField.C index 34d6a3cf7be..a505097209a 100644 --- a/macros/plotField.C +++ b/macros/plotField.C @@ -1,9 +1,6 @@ void plotField(Int_t iField = 0) { // -// iField = 0 2 kG solenoid -// 1 4 kG solenoid -// 2 5 kG solenoid // // load necessary libraries gSystem->Load("$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET)/libminicern"); @@ -15,9 +12,7 @@ void plotField(Int_t iField = 0) // // create field map - AliMagFMaps* field = new AliMagFMaps( - "Maps","Maps", - 2, 1., 10., iField); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG); // field-SetL3ConstField(1); diff --git a/test/PbPbbench/Config.C b/test/PbPbbench/Config.C index 395a6e09c0d..058f12873af 100644 --- a/test/PbPbbench/Config.C +++ b/test/PbPbbench/Config.C @@ -31,7 +31,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -105,11 +105,6 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - enum PprTrigConf_t { kDefaultPPTrig, kDefaultPbPbTrig @@ -123,7 +118,7 @@ const char * pprTrigConfName[] = { static PprRun_t srun = kHijing_per2; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; static Int_t sseed = 12345; //Set 0 to use the current time static PprTrigConf_t strig = kDefaultPbPbTrig; // default pp trigger configuration @@ -255,8 +250,6 @@ void Config() if (smag == k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); } else if (smag == k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -274,9 +267,8 @@ void Config() // Field - AliMagFCheb* field = new AliMagFCheb("Maps","Maps", 2, 1., 10., smag); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., smag)); rl->CdGAFile(); - gAlice->SetField(field); // Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/test/QA/Config.C b/test/QA/Config.C index 3d0c595ae47..efc14d635b4 100644 --- a/test/QA/Config.C +++ b/test/QA/Config.C @@ -43,7 +43,7 @@ #include "STEER/AliConfig.h" #include "PYTHIA6/AliDecayerPythia.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -99,12 +99,6 @@ enum DecayHvFl_t { kNature, kHadr, kSemiEl, kSemiMu }; -//--- Magnetic Field --- -enum Mag_t -{ - k2kG, k4kG, k5kG -}; - //--- Trigger config --- enum TrigConf_t { @@ -134,7 +128,7 @@ void ProcessEnvironmentVars(); // This part for configuration static DecayHvFl_t decHvFl = kNature; -static Mag_t mag = k5kG; +static AliMagF::BMap_t mag = AliMagF::k5kG; static TrigConf_t trig = kDefaultPPTrig; // default pp trigger configuration static Int_t runNumber= 0; static Int_t eventNumber= 0; @@ -401,20 +395,17 @@ void Config() } // FIELD - if (mag == k2kG) { + if (mag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (mag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (mag == k5kG) { + } else if (mag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } printf("\n \n Comment: %s \n \n", comment.Data()); - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., mag); field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); rl->CdGAFile(); - gAlice->SetField(field); - Int_t iABSO = 1; Int_t iACORDE= 1; diff --git a/test/cosmic/rec.C b/test/cosmic/rec.C index c5a46cd9e57..f73fa2ed753 100644 --- a/test/cosmic/rec.C +++ b/test/cosmic/rec.C @@ -93,12 +93,12 @@ void rec(const char *filename="raw.root", const Int_t mfield=1) rec.SetRecoParam("MUON",muonRecoParam); // Tracking settings - AliMagWrapCheb* field; + AliMagF* field; if (mfield) - field = new AliMagWrapCheb("Maps","Maps", 2, 1., 10., AliMagWrapCheb::k5kG); + field = new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG); else - field = new AliMagWrapCheb("Maps","Maps", 2, 0., 10., AliMagWrapCheb::k2kG); - AliTracker::SetFieldMap(field,1); + field = new AliMagF("Maps","Maps", 2, 0., 0., 10., AliMagF::k2kG); + Double_t mostProbPt=0.35; AliExternalTrackParam::SetMostProbablePt(mostProbPt); diff --git a/test/embedding/Config.C b/test/embedding/Config.C index 5574db38bc1..f9f952805c7 100644 --- a/test/embedding/Config.C +++ b/test/embedding/Config.C @@ -21,7 +21,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "PYTHIA6/AliGenPythia.h" #include "TDPMjet/AliGenDPMjet.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -276,21 +276,19 @@ void Config() // FIELD // - AliMagFCheb* field = 0x0; + AliMagF* field = 0x0; if (mag == kNoField) { comment = comment.Append(" | L3 field 0.0 T"); - field = new AliMagFCheb("Maps","Maps", 2, 0., 10., AliMagFCheb::k2kG); + field = new AliMagF("Maps","Maps", 2, 0., 0., 10., AliMagF::k2kG); } else if (mag == k5kG) { comment = comment.Append(" | L3 field 0.5 T"); - field = new AliMagFCheb("Maps","Maps", 2, 1., 10., AliMagFCheb::k5kG); + field = new AliMagFCheb("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG); } printf("\n \n Comment: %s \n \n", comment.Data()); + TGeoGlobalMagField::Instance()->SetField(field); rl->CdGAFile(); - gAlice->SetField(field); - - - + Int_t iABSO = 1; Int_t iACORDE= 0; Int_t iDIPO = 1; diff --git a/test/fpprod/Config.C b/test/fpprod/Config.C index a4c3c93291d..7a7e0c8583d 100644 --- a/test/fpprod/Config.C +++ b/test/fpprod/Config.C @@ -58,7 +58,6 @@ const char * pprRunName[] = { "kPythia6", "kPhojet" }; -//--- Magnetic Field --- enum Mag_t { kNoField, k5kG, kFieldMax @@ -219,21 +218,20 @@ void Config() // FIELD // - AliMagFCheb* field = 0x0; + AliMagF* field = 0x0; if (mag == kNoField) { comment = comment.Append(" | L3 field 0.0 T"); - field = new AliMagFCheb("Maps","Maps", 2, 0., 10., AliMagFCheb::k2kG); + field = new AliMagF("Maps","Maps", 2, 0., 0., 10., AliMagF::k2kG); } else if (mag == k5kG) { comment = comment.Append(" | L3 field 0.5 T"); - field = new AliMagFCheb("Maps","Maps", 2, 1., 10., AliMagFCheb::k5kG); + field = new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG); } printf("\n \n Comment: %s \n \n", comment.Data()); + + TGeoGlobalMagField::Instance()->SetField(field); rl->CdGAFile(); - gAlice->SetField(field); - - - + Int_t iABSO = 1; Int_t iACORDE= 0; Int_t iDIPO = 1; diff --git a/test/genkine/runtest.sh b/test/genkine/runtest.sh index f26bd7be8e5..722564b5bb6 100755 --- a/test/genkine/runtest.sh +++ b/test/genkine/runtest.sh @@ -1,11 +1,11 @@ #!/bin/sh rm -rf */*.root */*.log */*.dat cd ./gen -aliroot -b -q rungen.C\(5\) 2>&1 | tee gen.log +aliroot -b -q rungen.C\(1\) 2>&1 | tee gen.log chmod a-w *.root cd ../sim -aliroot -b -q sim.C\(5\) 2>&1 | tee sim.log -aliroot -b -q rec.C 2>&1 | tee rec.log +aliroot -b -q sim.C\(1\) 2>&1 | tee sim.log +#aliroot -b -q rec.C 2>&1 | tee rec.log aliroot -b -q ${ALICE_ROOT}/STEER/CheckESD.C 2>&1 | tee check.log aliroot -b -q ${ALICE_ROOT}/STEER/CreateAODfromESD.C 2>&1 | tee aod.log diff --git a/test/genkine/sim/Config.C b/test/genkine/sim/Config.C index 7e3704ebfe1..5e0972e41ea 100644 --- a/test/genkine/sim/Config.C +++ b/test/genkine/sim/Config.C @@ -31,7 +31,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -64,11 +64,6 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - enum PprTrigConf_t { kDefaultPPTrig, kDefaultPbPbTrig @@ -82,7 +77,7 @@ const char * pprTrigConfName[] = { // This part for configuration static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; static Int_t sseed = 12345; //Set 0 to use the current time static PprTrigConf_t strig = kDefaultPPTrig; // default PbPb trigger configuration @@ -209,11 +204,9 @@ void Config() gener->SetTrackingFlag(1); gener->Init(); - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -231,10 +224,11 @@ void Config() // Field (L3 0.4 T) - AliMagFCheb* field = new AliMagFCheb("Maps","Maps", 2, 1., 10., smag); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., smag); + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); - gAlice->SetField(field); -// + // Int_t iABSO = 1; Int_t iDIPO = 1; Int_t iFMD = 1; diff --git a/test/gun/Config.C b/test/gun/Config.C index 4abb3133a89..0a72ff20bc7 100644 --- a/test/gun/Config.C +++ b/test/gun/Config.C @@ -19,7 +19,7 @@ #include "EVGEN/AliGenHIJINGpara.h" #include "EVGEN/AliGenFixed.h" #include "EVGEN/AliGenBox.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -314,10 +314,7 @@ void Config() // //gener->SetVertexSmear(perTrack); // Field (L3 0.5 T) - AliMagFCheb* field = new AliMagFCheb("Maps","Maps", 2, 1., 10., AliMagFCheb::k5kG); - - gAlice->SetField(field); - + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/test/merge/backgr/Config.C b/test/merge/backgr/Config.C index 0a67d35c377..97603bbb62b 100644 --- a/test/merge/backgr/Config.C +++ b/test/merge/backgr/Config.C @@ -32,7 +32,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -106,11 +106,6 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - enum PprTrigConf_t { kDefaultPPTrig, kDefaultPbPbTrig @@ -124,7 +119,7 @@ const char * pprTrigConfName[] = { //static PprRun_t srun = test50; static PprRun_t srun = kHijing_per4; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; TDatime dat; static Int_t sseed = dat.Get(); //Set 0 to use the current time //static PprTrigConf_t strig = kDefaultPPTrig; // default pp trigger configuration @@ -166,7 +161,8 @@ void Config() AliRunLoader* rl=0x0; - AliLog::Message(AliLog::kInfo, "Creating Run Loader", "", "", "Config()"," ConfigPPR.C", __LINE__); + AliLog::Message(AliLog::kInfo, "Creating Run Loader", + "", "", "Config()"," Config.C", __LINE__); rl = AliRunLoader::Open("galice.root", AliConfig::GetDefaultEventFolderName(), @@ -257,13 +253,12 @@ void Config() gener->SetTrackingFlag(1); gener->Init(); - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); - } + } else AliLog::Message(AliLog::kFatal, "Invalid Mag Field", + "", "", "Config()"," Config.C", __LINE__); if (srad == kGluonRadiation) @@ -278,9 +273,8 @@ void Config() // Field (L3 0.4 T) - AliMagFCheb* field = new AliMagFCheb("Maps","Maps", 2, 1., 10., smag); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., smag)); rl->CdGAFile(); - gAlice->SetField(field); // Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/test/merge/signal/Config.C b/test/merge/signal/Config.C index 9ab2d7993e3..0ceb5f42d28 100644 --- a/test/merge/signal/Config.C +++ b/test/merge/signal/Config.C @@ -32,7 +32,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -106,11 +106,6 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - enum PprTrigConf_t { kDefaultPPTrig, kDefaultPbPbTrig @@ -124,7 +119,7 @@ const char * pprTrigConfName[] = { //static PprRun_t srun = test50; static PprRun_t srun = kPythia6; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; TDatime dat; static Int_t sseed = dat.Get(); //Set 0 to use the current time //static PprTrigConf_t strig = kDefaultPPTrig; // default pp trigger configuration @@ -257,13 +252,12 @@ void Config() gener->SetTrackingFlag(1); gener->Init(); - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); - } + } else AliLog::Message(AliLog::kFatal, "Invalid Mag Field", + "", "", "Config()"," Config.C", __LINE__); if (srad == kGluonRadiation) @@ -278,9 +272,8 @@ void Config() // Field (L3 0.4 T) - AliMagFCheb* field = new AliMagFCheb("Maps","Maps", 2, 1., 10., smag); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., smag)); rl->CdGAFile(); - gAlice->SetField(field); // Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/test/pileup/Config.C b/test/pileup/Config.C index 1c53107ea63..04023632176 100644 --- a/test/pileup/Config.C +++ b/test/pileup/Config.C @@ -21,7 +21,7 @@ #include "PYTHIA6/AliDecayerPythia.h" #include "PYTHIA6/AliGenPythia.h" #include "TDPMjet/AliGenDPMjet.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -58,12 +58,6 @@ const char * pprRunName[] = { "kPythia6", "kPhojet" }; -//--- Magnetic Field --- -enum Mag_t -{ - kNoField, k5kG, kFieldMax -}; - const char * pprField[] = { "kNoField", "k5kG" }; @@ -76,7 +70,7 @@ void ProcessEnvironmentVars(); // Geterator, field, beam energy static PDC06Proc_t proc = kPhojet; -static Mag_t mag = k5kG; +static AliMagF::BMap_t mag = AliMagF::k5kG; static Float_t energy = 10000; // energy in CMS //========================// // Set Random Number seed // @@ -239,20 +233,18 @@ void Config() // FIELD // - AliMagFCheb* field = 0x0; + AliMagF* field = 0x0; if (mag == kNoField) { comment = comment.Append(" | L3 field 0.0 T"); - field = new AliMagFCheb("Maps","Maps", 2, 0., 10., AliMagFCheb::k2kG); - } else if (mag == k5kG) { + field = new AliMagF("Maps","Maps", 2, 0., 0., 10., AliMagF::k2kG); + } else if (mag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); - field = new AliMagFCheb("Maps","Maps", 2, 1., 10., AliMagFCheb::k5kG); + field = new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG); } printf("\n \n Comment: %s \n \n", comment.Data()); + TGeoGlobalMagField::Instance()->SetField(field); rl->CdGAFile(); - gAlice->SetField(field); - - Int_t iABSO = 1; Int_t iACORDE= 0; diff --git a/test/ppbench/Config.C b/test/ppbench/Config.C index f6f81c53c4c..32834dde557 100644 --- a/test/ppbench/Config.C +++ b/test/ppbench/Config.C @@ -31,7 +31,7 @@ #include "EVGEN/AliGenGeVSim.h" #include "EVGEN/AliGeVSimParticle.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -105,11 +105,6 @@ enum PprRad_t kGluonRadiation, kNoGluonRadiation }; -enum PprMag_t -{ - k2kG, k4kG, k5kG -}; - enum PprTrigConf_t { kDefaultPPTrig, kDefaultPbPbTrig @@ -123,7 +118,7 @@ const char * pprTrigConfName[] = { static PprRun_t srun = kPythia6; static PprRad_t srad = kGluonRadiation; -static PprMag_t smag = k5kG; +static AliMagF::BMap_t smag = AliMagF::k5kG; static Int_t sseed = 12345; //Set 0 to use the current time static PprTrigConf_t strig = kDefaultPPTrig; // default pp trigger configuration @@ -253,11 +248,9 @@ void Config() gener->SetTrackingFlag(1); gener->Init(); - if (smag == k2kG) { + if (smag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (smag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (smag == k5kG) { + } else if (smag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } @@ -274,9 +267,9 @@ void Config() // Field - AliMagFCheb* field = new AliMagFCheb("Maps","Maps", 2, 1., 10., smag); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG)); + rl->CdGAFile(); - gAlice->SetField(field); // Int_t iABSO = 1; Int_t iDIPO = 1; diff --git a/test/pploadlibs/Config.C b/test/pploadlibs/Config.C index 7cb7ae678cb..40ca712509e 100644 --- a/test/pploadlibs/Config.C +++ b/test/pploadlibs/Config.C @@ -23,7 +23,7 @@ #include "STEER/AliConfig.h" #include "PYTHIA6/AliDecayerPythia.h" #include "PYTHIA6/AliGenPythia.h" -#include "STEER/AliMagFCheb.h" +#include "STEER/AliMagF.h" #include "STRUCT/AliBODY.h" #include "STRUCT/AliMAG.h" #include "STRUCT/AliABSOv3.h" @@ -80,12 +80,6 @@ enum YCut_t { kFull, kBarrel, kMuonArm }; -//--- Magnetic Field --- -enum Mag_t -{ - k2kG, k4kG, k5kG -}; - //--- Trigger config --- enum TrigConf_t { @@ -106,7 +100,7 @@ void ProcessEnvironmentVars(); static PDC06Proc_t proc = kPyMbNoHvq; static DecayHvFl_t decHvFl = kNature; static YCut_t ycut = kFull; -static Mag_t mag = k5kG; +static AliMagF::BMap_t mag = AliMagF::k5kG; static TrigConf_t trig = kDefaultPPTrig; // default pp trigger configuration //========================// // Set Random Number seed // @@ -333,20 +327,17 @@ void Config() // FIELD // - if (mag == k2kG) { + if (mag == AliMagF::k2kG) { comment = comment.Append(" | L3 field 0.2 T"); - } else if (mag == k4kG) { - comment = comment.Append(" | L3 field 0.4 T"); - } else if (mag == k5kG) { + } else if (mag == AliMagF::k5kG) { comment = comment.Append(" | L3 field 0.5 T"); } printf("\n \n Comment: %s \n \n", comment.Data()); - AliMagFCheb* field = new AliMagFCheb("Maps","Maps", 2, 1., 10., mag); + AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., mag); + TGeoGlobalMagField::Instance()->SetField(field); + rl->CdGAFile(); - gAlice->SetField(field); - - Int_t iABSO = 1; Int_t iACORDE = 0; -- 2.43.0