ROOT logo
// Config file MUON + ITS (for vertex) + VZERO + FMD for PDC07
// Tuned for p+p min biais and quarkonia production, heavy quark production 
// from AliGenCorrHF(AliGenMUONCocktailpp)
// Remember to define the directory and option
// gAlice->SetConfigFunction("Config('$HOME','box');");
// april 3rd: added L3 magnet 

void Config(char directory[100]="", char option[6]="trgAll")
{
    
    static Int_t sseed = 0; // Set 0 to use the current time

  // Load Pythia libraries
    LoadPythia();
    
  //=====================================================================
  //  Libraries required by geant321
    gSystem->Load("libgeant321.so");
    
    new TGeant3TGeo("C++ Interface to Geant3");
  //=======================================================================

    if(!AliCDBManager::Instance()->IsDefaultStorageSet()){
	AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
	AliCDBManager::Instance()->SetRun(0);
    }

  // Set Random Number seed
    gRandom->SetSeed(sseed);

  //  Create the output file    
    Text_t filename[100];
    sprintf(filename,"%sgalice.root",directory);

    AliRunLoader* rl=0x0;
    rl = AliRunLoader::Open(
	filename, AliConfig::GetDefaultEventFolderName(), "recreate");
    if (rl == 0x0) {
	gAlice->Fatal("Config.C","Can not instatiate the Run Loader");
	return;
    }
    rl->SetCompressionLevel(2);
    rl->SetNumberOfEventsPerFile(1000);
    gAlice->SetRunLoader(rl);

  //=======================================================================
  // Set the trigger configuration - not needed here for MUON in
  // stand-alone mode
  // AliSimulation::Instance()->SetTriggerConfig("p-p");
  // cout<<"Trigger configuration is set to  p-p"<<endl;

  //=======================================================================
  // Set External decayer
    TVirtualMCDecayer *decayer = new AliDecayerPythia();
    decayer->SetForceDecay(kAll);
    decayer->Init();
    gMC->SetExternalDecayer(decayer);

  //=======================================================================
  // ******* GEANT STEERING parameters FOR ALICE SIMULATION *******
    gMC->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); 
  //
  //=======================================================================
  // ************* STEERING parameters FOR ALICE SIMULATION **************
  // Chamber positions
  // From AliMUONConstants class we get :
  //   Position Z (along beam) of the chambers (in cm) 
  //        (from AliMUONConstants class):  
  //    533.5,  546.5,  678.5, 693.5,  964.0, 986.0, 1251.5, 1278.5, 
  //   1416.5, 1443.5,  1610, 1625.,  1710., 1725. 
  //   Internal Radius (in cm)   
  //     36.4,  46.2,  66.0,  80.,  80., 100., 100.    
  //   External Radius (in cm)
  //    183.,  245.,  395.,  560., 563., 850., 900.  
  //=======================================================================

    AliGenPythia* PythiaForMUONCocktail(Decay_t dt)
	{
	    AliGenPythia *pythia = new AliGenPythia(1);
	    pythia->SetProcess(kPyMbMSEL1);
	    pythia->SetStrucFunc(kCTEQ5L);
	    pythia->SetEnergyCMS(14000.);
	    pythia->SetForceDecay(dt);
	    pythia->SetPtRange(0.,100.);
	    pythia->SetYRange(-8.,8.);
	    pythia->SetPhiRange(0.,360.);
	    pythia->SetPtHard(2.76,-1.0);
	    pythia->SwitchHFOff();
	    return pythia;
	}

    if (!strcmp(option,"trg2mu")) {
	AliGenMUONCocktailpp *gener = new AliGenMUONCocktailpp();
	gener->SetPtRange(0.,100.);
	gener->SetYRange(-4.,-2.4);
	gener->SetPhiRange(0., 360.);
	gener->SetMuonMultiplicity(2);  
	gener->SetMuonPtCut(0.5);
	gener->SetMuonThetaRange(171.,178.);      
	gener->SetOrigin(0.,0.,0.); 
	gener->SetSigma(0.,0.,5.);
	gener->SetVertexSmear(kPerEvent);
	Decay_t dt = gener->GetDecayModePythia();
	AliGenPythia* pythia = PythiaForMUONCocktail(dt);
	pythia->Init();     
	gener->AddGenerator(pythia,"Pythia",1);
	gener->Init(); 
    }
 
    if (!strcmp(option,"trg1mu")) {
	AliGenMUONCocktailpp *gener = new AliGenMUONCocktailpp();
	gener->SetPtRange(0.,100.);
	gener->SetYRange(-4.,-2.4);
	gener->SetPhiRange(0., 360.);
	gener->SetMuonMultiplicity(1);  
	gener->SetMuonPtCut(0.5);
	gener->SetMuonThetaRange(171.,178.);      
	gener->SetOrigin(0.,0.,0.); 
	gener->SetSigma(0.,0.,5.);
	gener->SetVertexSmear(kPerEvent);
	Decay_t dt = gener->GetDecayModePythia();
	AliGenPythia* pythia = PythiaForMUONCocktail(dt);
	pythia->Init();     
	gener->AddGenerator(pythia,"Pythia",1);
	gener->Init(); 
    }
    if (!strcmp(option,"trgAll")) {
	AliGenMUONCocktailpp *gener = new AliGenMUONCocktailpp();
	gener->SetPtRange(0.,100.);
	gener->SetYRange(-4.,-2.4);
	gener->SetPhiRange(0., 360.);
	gener->SetMuonMultiplicity(0);  
	gener->SetMuonPtCut(0.);    
	gener->SetOrigin(0.,0.,0.); 
	gener->SetSigma(0.,0.,5.3);
	gener->SetVertexSmear(kPerEvent);
	Decay_t dt = gener->GetDecayModePythia();
	AliGenPythia* pythia = PythiaForMUONCocktail(dt);
	pythia->Init();     
	gener->AddGenerator(pythia,"Pythia",1);
	gener->Init();
    }
  //============================================================= 
  // Field (L3 0.5 T) outside dimuon spectrometer
    AliMagF* field = new AliMagF("Maps","Maps", 1., 1., AliMagF::k5kG);
    field->SetL3ConstField(0); // Using const. field in the barrel 
    TGeoGlobalMagField::Instance()->SetField(field);

    Int_t   iITS = 1;
    Int_t   iFMD = 1;
    Int_t   iVZERO = 1;

    rl->CdGAFile();

  //=================== Alice BODY parameters =============================
    AliBODY *BODY = new AliBODY("BODY","Alice envelop");
  //=================== ABSO parameters ============================
    AliABSO *ABSO = new AliABSOv3("ABSO", "Muon Absorber");
  //=================== DIPO parameters ============================
    AliDIPO *DIPO = new AliDIPOv3("DIPO", "Dipole version 3");
  //================== HALL parameters ============================
    AliHALL *HALL = new AliHALLv3("HALL", "Alice Hall");
  //================== The L3 Magnet ==============================
    AliMAG *MAG = new AliMAG("MAG", "L3 Magnet");
  //=================== PIPE parameters ============================
    AliPIPE *PIPE = new AliPIPEv3("PIPE", "Beam Pipe");
  //=================== SHIL parameters ============================
    AliSHIL *SHIL = new AliSHILv3("SHIL", "Shielding Version 3");
  //=================== ITS parameters =============================
    if(iITS) {
	AliITS *ITS  = new AliITSv11("ITS","ITS v11");
    }      
 //=================== FMD parameters =============================
    if(iFMD) {
	AliFMD *FMD = new AliFMDv1("FMD", "normal FMD");
    }
 //=================== VZERO parameters =============================
    if (iVZERO) {
	AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO");
    }

  //=================== MUON Subsystem ===========================
    cout << ">>> Config.C: Creating AliMUONv1 ..."<<endl;

    AliMUON *MUON = new AliMUONv1("MUON");
}

Float_t EtaToTheta(Float_t arg){
    return (180./TMath::Pi())*2.*atan(exp(-arg));
}

  

void LoadPythia()
{
    // Load Pythia related libraries
    gSystem->Load("liblhapdf.so");      // Parton density functions
    gSystem->Load("libEGPythia6.so");   // TGenerator interface
    gSystem->Load("libpythia6.so");     // Pythia
    gSystem->Load("libAliPythia6.so");  // ALICE specific implementations
}
 Config_PDC07_MBias_MUON.C:1
 Config_PDC07_MBias_MUON.C:2
 Config_PDC07_MBias_MUON.C:3
 Config_PDC07_MBias_MUON.C:4
 Config_PDC07_MBias_MUON.C:5
 Config_PDC07_MBias_MUON.C:6
 Config_PDC07_MBias_MUON.C:7
 Config_PDC07_MBias_MUON.C:8
 Config_PDC07_MBias_MUON.C:9
 Config_PDC07_MBias_MUON.C:10
 Config_PDC07_MBias_MUON.C:11
 Config_PDC07_MBias_MUON.C:12
 Config_PDC07_MBias_MUON.C:13
 Config_PDC07_MBias_MUON.C:14
 Config_PDC07_MBias_MUON.C:15
 Config_PDC07_MBias_MUON.C:16
 Config_PDC07_MBias_MUON.C:17
 Config_PDC07_MBias_MUON.C:18
 Config_PDC07_MBias_MUON.C:19
 Config_PDC07_MBias_MUON.C:20
 Config_PDC07_MBias_MUON.C:21
 Config_PDC07_MBias_MUON.C:22
 Config_PDC07_MBias_MUON.C:23
 Config_PDC07_MBias_MUON.C:24
 Config_PDC07_MBias_MUON.C:25
 Config_PDC07_MBias_MUON.C:26
 Config_PDC07_MBias_MUON.C:27
 Config_PDC07_MBias_MUON.C:28
 Config_PDC07_MBias_MUON.C:29
 Config_PDC07_MBias_MUON.C:30
 Config_PDC07_MBias_MUON.C:31
 Config_PDC07_MBias_MUON.C:32
 Config_PDC07_MBias_MUON.C:33
 Config_PDC07_MBias_MUON.C:34
 Config_PDC07_MBias_MUON.C:35
 Config_PDC07_MBias_MUON.C:36
 Config_PDC07_MBias_MUON.C:37
 Config_PDC07_MBias_MUON.C:38
 Config_PDC07_MBias_MUON.C:39
 Config_PDC07_MBias_MUON.C:40
 Config_PDC07_MBias_MUON.C:41
 Config_PDC07_MBias_MUON.C:42
 Config_PDC07_MBias_MUON.C:43
 Config_PDC07_MBias_MUON.C:44
 Config_PDC07_MBias_MUON.C:45
 Config_PDC07_MBias_MUON.C:46
 Config_PDC07_MBias_MUON.C:47
 Config_PDC07_MBias_MUON.C:48
 Config_PDC07_MBias_MUON.C:49
 Config_PDC07_MBias_MUON.C:50
 Config_PDC07_MBias_MUON.C:51
 Config_PDC07_MBias_MUON.C:52
 Config_PDC07_MBias_MUON.C:53
 Config_PDC07_MBias_MUON.C:54
 Config_PDC07_MBias_MUON.C:55
 Config_PDC07_MBias_MUON.C:56
 Config_PDC07_MBias_MUON.C:57
 Config_PDC07_MBias_MUON.C:58
 Config_PDC07_MBias_MUON.C:59
 Config_PDC07_MBias_MUON.C:60
 Config_PDC07_MBias_MUON.C:61
 Config_PDC07_MBias_MUON.C:62
 Config_PDC07_MBias_MUON.C:63
 Config_PDC07_MBias_MUON.C:64
 Config_PDC07_MBias_MUON.C:65
 Config_PDC07_MBias_MUON.C:66
 Config_PDC07_MBias_MUON.C:67
 Config_PDC07_MBias_MUON.C:68
 Config_PDC07_MBias_MUON.C:69
 Config_PDC07_MBias_MUON.C:70
 Config_PDC07_MBias_MUON.C:71
 Config_PDC07_MBias_MUON.C:72
 Config_PDC07_MBias_MUON.C:73
 Config_PDC07_MBias_MUON.C:74
 Config_PDC07_MBias_MUON.C:75
 Config_PDC07_MBias_MUON.C:76
 Config_PDC07_MBias_MUON.C:77
 Config_PDC07_MBias_MUON.C:78
 Config_PDC07_MBias_MUON.C:79
 Config_PDC07_MBias_MUON.C:80
 Config_PDC07_MBias_MUON.C:81
 Config_PDC07_MBias_MUON.C:82
 Config_PDC07_MBias_MUON.C:83
 Config_PDC07_MBias_MUON.C:84
 Config_PDC07_MBias_MUON.C:85
 Config_PDC07_MBias_MUON.C:86
 Config_PDC07_MBias_MUON.C:87
 Config_PDC07_MBias_MUON.C:88
 Config_PDC07_MBias_MUON.C:89
 Config_PDC07_MBias_MUON.C:90
 Config_PDC07_MBias_MUON.C:91
 Config_PDC07_MBias_MUON.C:92
 Config_PDC07_MBias_MUON.C:93
 Config_PDC07_MBias_MUON.C:94
 Config_PDC07_MBias_MUON.C:95
 Config_PDC07_MBias_MUON.C:96
 Config_PDC07_MBias_MUON.C:97
 Config_PDC07_MBias_MUON.C:98
 Config_PDC07_MBias_MUON.C:99
 Config_PDC07_MBias_MUON.C:100
 Config_PDC07_MBias_MUON.C:101
 Config_PDC07_MBias_MUON.C:102
 Config_PDC07_MBias_MUON.C:103
 Config_PDC07_MBias_MUON.C:104
 Config_PDC07_MBias_MUON.C:105
 Config_PDC07_MBias_MUON.C:106
 Config_PDC07_MBias_MUON.C:107
 Config_PDC07_MBias_MUON.C:108
 Config_PDC07_MBias_MUON.C:109
 Config_PDC07_MBias_MUON.C:110
 Config_PDC07_MBias_MUON.C:111
 Config_PDC07_MBias_MUON.C:112
 Config_PDC07_MBias_MUON.C:113
 Config_PDC07_MBias_MUON.C:114
 Config_PDC07_MBias_MUON.C:115
 Config_PDC07_MBias_MUON.C:116
 Config_PDC07_MBias_MUON.C:117
 Config_PDC07_MBias_MUON.C:118
 Config_PDC07_MBias_MUON.C:119
 Config_PDC07_MBias_MUON.C:120
 Config_PDC07_MBias_MUON.C:121
 Config_PDC07_MBias_MUON.C:122
 Config_PDC07_MBias_MUON.C:123
 Config_PDC07_MBias_MUON.C:124
 Config_PDC07_MBias_MUON.C:125
 Config_PDC07_MBias_MUON.C:126
 Config_PDC07_MBias_MUON.C:127
 Config_PDC07_MBias_MUON.C:128
 Config_PDC07_MBias_MUON.C:129
 Config_PDC07_MBias_MUON.C:130
 Config_PDC07_MBias_MUON.C:131
 Config_PDC07_MBias_MUON.C:132
 Config_PDC07_MBias_MUON.C:133
 Config_PDC07_MBias_MUON.C:134
 Config_PDC07_MBias_MUON.C:135
 Config_PDC07_MBias_MUON.C:136
 Config_PDC07_MBias_MUON.C:137
 Config_PDC07_MBias_MUON.C:138
 Config_PDC07_MBias_MUON.C:139
 Config_PDC07_MBias_MUON.C:140
 Config_PDC07_MBias_MUON.C:141
 Config_PDC07_MBias_MUON.C:142
 Config_PDC07_MBias_MUON.C:143
 Config_PDC07_MBias_MUON.C:144
 Config_PDC07_MBias_MUON.C:145
 Config_PDC07_MBias_MUON.C:146
 Config_PDC07_MBias_MUON.C:147
 Config_PDC07_MBias_MUON.C:148
 Config_PDC07_MBias_MUON.C:149
 Config_PDC07_MBias_MUON.C:150
 Config_PDC07_MBias_MUON.C:151
 Config_PDC07_MBias_MUON.C:152
 Config_PDC07_MBias_MUON.C:153
 Config_PDC07_MBias_MUON.C:154
 Config_PDC07_MBias_MUON.C:155
 Config_PDC07_MBias_MUON.C:156
 Config_PDC07_MBias_MUON.C:157
 Config_PDC07_MBias_MUON.C:158
 Config_PDC07_MBias_MUON.C:159
 Config_PDC07_MBias_MUON.C:160
 Config_PDC07_MBias_MUON.C:161
 Config_PDC07_MBias_MUON.C:162
 Config_PDC07_MBias_MUON.C:163
 Config_PDC07_MBias_MUON.C:164
 Config_PDC07_MBias_MUON.C:165
 Config_PDC07_MBias_MUON.C:166
 Config_PDC07_MBias_MUON.C:167
 Config_PDC07_MBias_MUON.C:168
 Config_PDC07_MBias_MUON.C:169
 Config_PDC07_MBias_MUON.C:170
 Config_PDC07_MBias_MUON.C:171
 Config_PDC07_MBias_MUON.C:172
 Config_PDC07_MBias_MUON.C:173
 Config_PDC07_MBias_MUON.C:174
 Config_PDC07_MBias_MUON.C:175
 Config_PDC07_MBias_MUON.C:176
 Config_PDC07_MBias_MUON.C:177
 Config_PDC07_MBias_MUON.C:178
 Config_PDC07_MBias_MUON.C:179
 Config_PDC07_MBias_MUON.C:180
 Config_PDC07_MBias_MUON.C:181
 Config_PDC07_MBias_MUON.C:182
 Config_PDC07_MBias_MUON.C:183
 Config_PDC07_MBias_MUON.C:184
 Config_PDC07_MBias_MUON.C:185
 Config_PDC07_MBias_MUON.C:186
 Config_PDC07_MBias_MUON.C:187
 Config_PDC07_MBias_MUON.C:188
 Config_PDC07_MBias_MUON.C:189
 Config_PDC07_MBias_MUON.C:190
 Config_PDC07_MBias_MUON.C:191
 Config_PDC07_MBias_MUON.C:192
 Config_PDC07_MBias_MUON.C:193
 Config_PDC07_MBias_MUON.C:194
 Config_PDC07_MBias_MUON.C:195
 Config_PDC07_MBias_MUON.C:196
 Config_PDC07_MBias_MUON.C:197
 Config_PDC07_MBias_MUON.C:198
 Config_PDC07_MBias_MUON.C:199
 Config_PDC07_MBias_MUON.C:200
 Config_PDC07_MBias_MUON.C:201
 Config_PDC07_MBias_MUON.C:202
 Config_PDC07_MBias_MUON.C:203
 Config_PDC07_MBias_MUON.C:204
 Config_PDC07_MBias_MUON.C:205
 Config_PDC07_MBias_MUON.C:206
 Config_PDC07_MBias_MUON.C:207
 Config_PDC07_MBias_MUON.C:208
 Config_PDC07_MBias_MUON.C:209
 Config_PDC07_MBias_MUON.C:210
 Config_PDC07_MBias_MUON.C:211
 Config_PDC07_MBias_MUON.C:212
 Config_PDC07_MBias_MUON.C:213
 Config_PDC07_MBias_MUON.C:214
 Config_PDC07_MBias_MUON.C:215
 Config_PDC07_MBias_MUON.C:216
 Config_PDC07_MBias_MUON.C:217
 Config_PDC07_MBias_MUON.C:218
 Config_PDC07_MBias_MUON.C:219
 Config_PDC07_MBias_MUON.C:220
 Config_PDC07_MBias_MUON.C:221
 Config_PDC07_MBias_MUON.C:222
 Config_PDC07_MBias_MUON.C:223
 Config_PDC07_MBias_MUON.C:224
 Config_PDC07_MBias_MUON.C:225
 Config_PDC07_MBias_MUON.C:226
 Config_PDC07_MBias_MUON.C:227
 Config_PDC07_MBias_MUON.C:228
 Config_PDC07_MBias_MUON.C:229
 Config_PDC07_MBias_MUON.C:230