ROOT logo
AliGenerator*  CreateGenerator();

void fastGenDPMjet(Int_t nev = 1, char* filename = "dpmjet.root")
{
//  Runloader
#if defined(__CINT__)
    gSystem->Load("liblhapdf"); 
    gSystem->Load("libpythia6");     
    gSystem->Load("libdpmjet.so");
    gSystem->Load("libTDPMjet.so");
#endif

    AliPDG::AddParticlesToPdgDataBase();
    
    AliRunLoader* rl = AliRunLoader::Open(filename,"FASTRUN","recreate");
    AliPythiaRndm::SetPythiaRandom(new TRandom());

    rl->SetCompressionLevel(2);
    rl->SetNumberOfEventsPerFile(nev);
    rl->LoadKinematics("RECREATE");
    rl->MakeTree("E");
    gAlice->SetRunLoader(rl);

    //  Create stack
    rl->MakeStack();
    AliStack* stack   = rl->Stack();
 
    //  Header
    AliHeader* header = rl->GetHeader();
    //AliGenDPMjetEventHEader* dpmHeader;

    //  Create and Initialize Generator
    AliGenDPMjet *gener = CreateGenerator();
    //AliCollisionGeometry *coll = gener->CollisionGeometry();
    gener->Init();
    gener->SetStack(stack);
    
    // Event Loop
    Int_t iev;
     
    for (iev = 0; iev < nev; iev++) {

	if(iev%500==0) printf("\n  Event number %d  \n", iev);
	
	//  Initialize event
	header->Reset(0,iev);
	rl->SetEventNumber(iev);
	stack->Reset();
	rl->MakeTree("K");
    
	//  Generate event
	gener->Generate();
	
	Int_t npart = stack->GetNprimary();
        
	//  Finish event
	header->SetNprimary(stack->GetNprimary());
	header->SetNtrack(stack->GetNtrack());  

//      I/O
//	
	stack->FinishEvent();
	header->SetStack(stack);
	rl->TreeE()->Fill();
	rl->WriteKinematics("OVERWRITE");

    } // event loop

    gener->FinishRun();

    rl->WriteHeader("OVERWRITE");
    gener->Write();
    rl->Write();
    
}


AliGenerator*  CreateGenerator()
{ 
  AliGenDPMjet *gener = new AliGenDPMjet(-1);
  
  //  p-A
  /*Float_t pEnergy = 4000.;
  gener->SetProjectile("P", 1, 1);
  gener->SetTarget("A", 208, 82);
  //
  gener->SetEnergyCMS(TMath::Sqrt(82./208.) * 2* pEnergy);
  gener->SetProjectileBeamEnergy(pEnergy); */ 
  
  //  A-p
  Float_t pEnergy = 1577.;
  gener->SetProjectile("A", 208, 82);
  gener->SetTarget("P", 1, 1);
  //
  gener->SetEnergyCMS(TMath::Sqrt(208./82.) * 2* pEnergy);
  gener->SetProjectileBeamEnergy(pEnergy);

  // Pb-Pb
  /*  gener->SetProjectile("A", 208, 82);
  gener->SetTarget("A", 208, 82);
  gener->SetEnergyCMS(2760.);
  //
  gener->SetProcess(kDpmMb);
  gener->SetImpactParameterRange(0., 100.);
  //gener->SetFragmentProd(kTRUE);*/

  gener->SetTrackingFlag(0);
  
  return gener;
}












 fastGenDPMjet.C:1
 fastGenDPMjet.C:2
 fastGenDPMjet.C:3
 fastGenDPMjet.C:4
 fastGenDPMjet.C:5
 fastGenDPMjet.C:6
 fastGenDPMjet.C:7
 fastGenDPMjet.C:8
 fastGenDPMjet.C:9
 fastGenDPMjet.C:10
 fastGenDPMjet.C:11
 fastGenDPMjet.C:12
 fastGenDPMjet.C:13
 fastGenDPMjet.C:14
 fastGenDPMjet.C:15
 fastGenDPMjet.C:16
 fastGenDPMjet.C:17
 fastGenDPMjet.C:18
 fastGenDPMjet.C:19
 fastGenDPMjet.C:20
 fastGenDPMjet.C:21
 fastGenDPMjet.C:22
 fastGenDPMjet.C:23
 fastGenDPMjet.C:24
 fastGenDPMjet.C:25
 fastGenDPMjet.C:26
 fastGenDPMjet.C:27
 fastGenDPMjet.C:28
 fastGenDPMjet.C:29
 fastGenDPMjet.C:30
 fastGenDPMjet.C:31
 fastGenDPMjet.C:32
 fastGenDPMjet.C:33
 fastGenDPMjet.C:34
 fastGenDPMjet.C:35
 fastGenDPMjet.C:36
 fastGenDPMjet.C:37
 fastGenDPMjet.C:38
 fastGenDPMjet.C:39
 fastGenDPMjet.C:40
 fastGenDPMjet.C:41
 fastGenDPMjet.C:42
 fastGenDPMjet.C:43
 fastGenDPMjet.C:44
 fastGenDPMjet.C:45
 fastGenDPMjet.C:46
 fastGenDPMjet.C:47
 fastGenDPMjet.C:48
 fastGenDPMjet.C:49
 fastGenDPMjet.C:50
 fastGenDPMjet.C:51
 fastGenDPMjet.C:52
 fastGenDPMjet.C:53
 fastGenDPMjet.C:54
 fastGenDPMjet.C:55
 fastGenDPMjet.C:56
 fastGenDPMjet.C:57
 fastGenDPMjet.C:58
 fastGenDPMjet.C:59
 fastGenDPMjet.C:60
 fastGenDPMjet.C:61
 fastGenDPMjet.C:62
 fastGenDPMjet.C:63
 fastGenDPMjet.C:64
 fastGenDPMjet.C:65
 fastGenDPMjet.C:66
 fastGenDPMjet.C:67
 fastGenDPMjet.C:68
 fastGenDPMjet.C:69
 fastGenDPMjet.C:70
 fastGenDPMjet.C:71
 fastGenDPMjet.C:72
 fastGenDPMjet.C:73
 fastGenDPMjet.C:74
 fastGenDPMjet.C:75
 fastGenDPMjet.C:76
 fastGenDPMjet.C:77
 fastGenDPMjet.C:78
 fastGenDPMjet.C:79
 fastGenDPMjet.C:80
 fastGenDPMjet.C:81
 fastGenDPMjet.C:82
 fastGenDPMjet.C:83
 fastGenDPMjet.C:84
 fastGenDPMjet.C:85
 fastGenDPMjet.C:86
 fastGenDPMjet.C:87
 fastGenDPMjet.C:88
 fastGenDPMjet.C:89
 fastGenDPMjet.C:90
 fastGenDPMjet.C:91
 fastGenDPMjet.C:92
 fastGenDPMjet.C:93
 fastGenDPMjet.C:94
 fastGenDPMjet.C:95
 fastGenDPMjet.C:96
 fastGenDPMjet.C:97
 fastGenDPMjet.C:98
 fastGenDPMjet.C:99
 fastGenDPMjet.C:100
 fastGenDPMjet.C:101
 fastGenDPMjet.C:102
 fastGenDPMjet.C:103
 fastGenDPMjet.C:104
 fastGenDPMjet.C:105
 fastGenDPMjet.C:106
 fastGenDPMjet.C:107
 fastGenDPMjet.C:108
 fastGenDPMjet.C:109
 fastGenDPMjet.C:110
 fastGenDPMjet.C:111
 fastGenDPMjet.C:112
 fastGenDPMjet.C:113
 fastGenDPMjet.C:114
 fastGenDPMjet.C:115
 fastGenDPMjet.C:116
 fastGenDPMjet.C:117
 fastGenDPMjet.C:118
 fastGenDPMjet.C:119
 fastGenDPMjet.C:120
 fastGenDPMjet.C:121
 fastGenDPMjet.C:122
 fastGenDPMjet.C:123