X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=ZDC%2FConfigGenZDC.C;h=3c5d06ab31389890a48759395e219acdf1e5b2c8;hb=bce9493b887973948413cf766cd76256818cc9e4;hp=fc186ed12b8555c914dbc1958c06326b781c4598;hpb=f5a857b2e0246b9c09129323ca68f260bee7ebb2;p=u%2Fmrichter%2FAliRoot.git diff --git a/ZDC/ConfigGenZDC.C b/ZDC/ConfigGenZDC.C index fc186ed12b8..3c5d06ab313 100644 --- a/ZDC/ConfigGenZDC.C +++ b/ZDC/ConfigGenZDC.C @@ -1,54 +1,16 @@ -// 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.C++") - -#if !defined(__CINT__) || defined(__MAKECINT__) -#include -#include -#include -#include -#include -#include "STEER/AliRunLoader.h" -#include "STEER/AliRun.h" -#include "STEER/AliConfig.h" -#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" -#include "STRUCT/AliFRAMEv2.h" -#include "STRUCT/AliSHILv2.h" -#include "STRUCT/AliPIPEv0.h" -#include "ITS/AliITSvPPRasymmFMD.h" -#include "TPC/AliTPCv2.h" -#include "TOF/AliTOFv2FHoles.h" -#include "TOF/AliTOFv4T0.h" -#include "RICH/AliRICHv3.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 "START/AliSTARTv1.h" -#include "EMCAL/AliEMCALv1.h" -#include "CRT/AliCRTv0.h" -#include "VZERO/AliVZEROv2.h" -#endif +enum PprMag_t +{k2kG, k4kG, k5kG}; + +static PprMag_t smag = k2kG; // k2kG->L3 field 0.2T +//static PprMag_t smag = k4kG; // k4kG->L3 field 0.4T +//static PprMag_t smag = k5kG; // k5kG->L3 field 0.5T Float_t EtaToTheta(Float_t arg); static Int_t eventsPerRun = 100; + enum PprGeo_t -{ - kHoles, kNoHoles -}; -static PprGeo_t geo = kHoles; +{kHoles, kNoHoles}; +static PprGeo_t sgeo = kHoles; void Config() { @@ -56,7 +18,7 @@ void Config() // Theta range given through pseudorapidity limits 22/6/2001 // Set Random Number seed - gRandom->SetSeed(123456); // Set 0 to use the currecnt time + gRandom->SetSeed(9956646); // Set 0 to use the current time cout<<"Seed for random number generation= "<GetSeed()<Fatal("Config.C","Can not instatiate the Run Loader"); return; - } + } rl->SetCompressionLevel(2); rl->SetNumberOfEventsPerFile(3); gAlice->SetRunLoader(rl); + //gAlice->SetDebug(1); // // Set External decayer - TVirtualMCDecayer *decayer = new AliDecayerPythia(); + AliDecayer *decayer = new AliDecayerPythia(); decayer->SetForceDecay(kAll); decayer->Init(); @@ -93,10 +55,11 @@ void Config() // ************* STEERING parameters FOR ALICE SIMULATION ************** // --- Specify event type to be tracked through the ALICE setup // --- All positions are in cm, angles in degrees, and P and E in GeV - + // + ((TGeant3*)gMC)->SetDEBU(1, 2, 1); ((TGeant3*)gMC)->SetSWIT(4,10); ((TGeant3*)gMC)->SetSWIT(2,2); - ((TGeant3*)gMC)->SetSWIT(2,3); + ((TGeant3*)gMC)->SetSWIT(2,1); // to draw tracks gMC->SetProcess("DCAY",1); gMC->SetProcess("PAIR",1); @@ -109,7 +72,7 @@ void Config() gMC->SetProcess("MUNU",1); gMC->SetProcess("CKOV",1); //gMC->SetProcess("HADR",1); - gMC->SetProcess("HADR",0); // If opt NoShower() for ZDC is selected + gMC->SetProcess("HADR",0); // If option NoShower() is switched on gMC->SetProcess("LOSS",2); gMC->SetProcess("MULS",1); gMC->SetProcess("RAYL",1); @@ -137,13 +100,15 @@ void Config() // #### AliGenZDC generation ###################################### AliGenZDC *gener = new AliGenZDC(); + gener->SetOrigin(0, 0, 0); // vertex position //gener->SetParticle(kNeutron); gener->SetParticle(kProton); gener->SetMomentum(2760.); gener->SetDirection(0.,0.,0.,-1.); - gener->SetFermi(0); - gener->SetDiv(0.000032,0.0001,2); - //gener->SetDebug(); + gener->SetFermi(1); // Fermi momentum + //gener->SetDiv(0.,0.,2); // Divergence and crossing angle + gener->SetDiv(0.000032,0.0001,2); // Divergence and crossing angle + gener->SetDebug(2); // gener->SetTrackingFlag(1); gener->Init(); @@ -153,9 +118,12 @@ void Config() // track by track // //gener->SetVertexSmear(perTrack); - // Field (L3 0.4 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1); - gAlice->SetField(field); + // Magnetic field + AliMagF* field = new AliMagF("Maps","Maps", 1., 1., smag); + field->SetL3ConstField(0); //Using const. field in the barrel + TGeoGlobalMagField::Instance()->SetField(field); + + rl->CdGAFile(); Int_t iABSO = 1; Int_t iDIPO = 1; @@ -163,25 +131,26 @@ void Config() Int_t iFRAME = 0; Int_t iHALL = 0; Int_t iITS = 0; - Int_t iMAG = 0; + Int_t iMAG = 1; Int_t iMUON = 0; Int_t iPHOS = 0; Int_t iPIPE = 1; Int_t iPMD = 0; - Int_t iRICH = 0; + Int_t iHMPID = 0; Int_t iSHIL = 1; - Int_t iSTART = 0; + Int_t iT0 = 0; Int_t iTOF = 0; Int_t iTPC = 0; Int_t iTRD = 0; Int_t iZDC = 1; Int_t iEMCAL = 0; - Int_t iCRT = 0; + Int_t iACORDE = 0; Int_t iVZERO = 0; - rl->CdGAFile(); + //=================== Alice BODY parameters ============================= AliBODY *BODY = new AliBODY("BODY", "Alice envelop"); + if (iMAG) { //=================== MAG parameters ============================ @@ -217,7 +186,7 @@ void Config() //=================== FRAME parameters ============================ AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame"); - if (geo == kHoles) { + if (sgeo == kHoles) { FRAME->SetHoles(1); } else { FRAME->SetHoles(0); @@ -255,20 +224,21 @@ void Config() // 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","ITS PPR 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(kTRUE); // 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->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(200.); // chip thickness on layer 1 must be in the range [150,300] ITS->SetThicknessChip2(200.); // 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 + 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 !): // @@ -291,7 +261,7 @@ void Config() // 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); + ITS->SetEUCLID(0); } if (iTPC) @@ -317,25 +287,22 @@ void Config() AliTPC *TPC = new AliTPCv2("TPC", "Default"); // All sectors included - TPC->SetSecAU(-1); TPC->SetSecAL(-1); + TPC->SetSecAU(-1); + } if (iTOF) { - if (geo == kHoles) { //=================== TOF parameters ============================ - AliTOF *TOF = new AliTOFv2FHoles("TOF", "TOF with Holes"); - } else { - AliTOF *TOF = new AliTOFv4T0("TOF", "normal TOF"); - } + AliTOF *TOF = new AliTOFv4T0("TOF", "normal TOF"); } - if (iRICH) + if (iHMPID) { - //=================== RICH parameters =========================== - AliRICH *RICH = new AliRICHv3("RICH", "normal RICH"); + //=================== HMPID parameters =========================== + AliHMPID *HMPID = new AliHMPIDv1("HMPID", "normal HMPID"); } @@ -356,11 +323,11 @@ void Config() // Select the gas mixture (0: 97% Xe + 3% isobutane, 1: 90% Xe + 10% CO2) TRD->SetGasMix(1); - if (geo == kHoles) { + if (sgeo == kHoles) { // With hole in front of PHOS TRD->SetPHOShole(); - // With hole in front of RICH - TRD->SetRICHhole(); + // With hole in front of HMPID + TRD->SetHMPIDhole(); } // Switch on TR AliTRDsim *TRDsim = TRD->CreateTR(); @@ -377,6 +344,10 @@ void Config() //=================== MUON parameters =========================== AliMUON *MUON = new AliMUONv1("MUON", "default"); + MUON->AddGeometryBuilder(new AliMUONSt1GeometryBuilderV2(MUON)); + MUON->AddGeometryBuilder(new AliMUONSt2GeometryBuilder(MUON)); + MUON->AddGeometryBuilder(new AliMUONSlatGeometryBuilder(MUON)); + MUON->AddGeometryBuilder(new AliMUONTriggerGeometryBuilder(MUON)); } //=================== PHOS parameters =========================== @@ -392,27 +363,27 @@ void Config() AliPMD *PMD = new AliPMDv1("PMD", "normal PMD"); } - if (iSTART) + if (iT0) { - //=================== START parameters ============================ - AliSTART *START = new AliSTARTv1("START", "START Detector"); + //=================== T0 parameters ============================ + AliT0 *T0 = new AliT0v1("T0", "T0 Detector"); } if (iEMCAL) { //=================== EMCAL parameters ============================ - AliEMCAL *EMCAL = new AliEMCALv1("EMCAL", "G56_2_55_19_104_14"); + AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE"); } - if (iCRT) + if (iACORDE) { - //=================== CRT parameters ============================ - AliCRT *CRT = new AliCRTv0("CRT", "normal ACORDE"); + //=================== ACORDE parameters ============================ + AliACORDE *ACORDE = new AliACORDEv1("ACORDE", "normal ACORDE"); } if (iVZERO) { - //=================== CRT parameters ============================ + //=================== ACORDE parameters ============================ AliVZERO *VZERO = new AliVZEROv2("VZERO", "normal VZERO"); }