]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TDPMjet/fastGenDPMjet.C
accept also neutral particles + add eta,phi histo
[u/mrichter/AliRoot.git] / TDPMjet / fastGenDPMjet.C
index fc79b983a8f808dea8ef5edd516674ed95aa251b..919de38818f6d5de7e2b2cc6c81e6ac8050e0779 100644 (file)
@@ -1,63 +1,62 @@
 AliGenerator*  CreateGenerator();
 
-void fastGenDPMjet(Int_t nev = 1, char* filename = "galice.root")
+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("galice.root","FASTRUN","recreate");
-    
+    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
+    //  Create stack
     rl->MakeStack();
-    AliStack* stack      = rl->Stack();
+    AliStack* stack   = rl->Stack();
  
-//  Header
+    //  Header
     AliHeader* header = rl->GetHeader();
-//
-//  Create and Initialize Generator
-    AliGenerator *gener = CreateGenerator();
+    //AliGenDPMjetEventHEader* dpmHeader;
+
+    //  Create and Initialize Generator
+    AliGenDPMjet *gener = CreateGenerator();
+    //AliCollisionGeometry *coll = gener->CollisionGeometry();
     gener->Init();
     gener->SetStack(stack);
     
-//
-//                        Event Loop
-//
+    // Event Loop
     Int_t iev;
      
     for (iev = 0; iev < nev; iev++) {
 
-       printf("\n \n Event number %d \n \n", iev);
+       if(iev%500==0) printf("\n  Event number %d  \n", iev);
        
-//  Initialize event
+       //  Initialize event
        header->Reset(0,iev);
        rl->SetEventNumber(iev);
        stack->Reset();
        rl->MakeTree("K");
-//     stack->ConnectTree();
     
-//  Generate event
+       //  Generate event
        gener->Generate();
-//  Analysis
-       Int_t npart = stack->GetNprimary();
-       printf("Analyse %d Particles\n", npart);
-       for (Int_t part=0; part<npart; part++) {
-           TParticle *MPart = stack->Particle(part);
-           Int_t pdg  = MPart->GetPdgCode();
-           Int_t pis  = MPart->GetStatusCode();
-//         printf("Particle %5d %5d\n", part, pdg, pis);
-       }
        
-//  Finish event
+       Int_t npart = stack->GetNprimary();
+        
+       //  Finish event
        header->SetNprimary(stack->GetNprimary());
        header->SetNtrack(stack->GetNtrack());  
+
 //      I/O
 //     
        stack->FinishEvent();
@@ -66,11 +65,9 @@ void fastGenDPMjet(Int_t nev = 1, char* filename = "galice.root")
        rl->WriteKinematics("OVERWRITE");
 
     } // event loop
-//
-//                         Termination
-//  Generator
+
     gener->FinishRun();
-//  Write file
+
     rl->WriteHeader("OVERWRITE");
     gener->Write();
     rl->Write();
@@ -80,15 +77,36 @@ void fastGenDPMjet(Int_t nev = 1, char* filename = "galice.root")
 
 AliGenerator*  CreateGenerator()
 { 
-    //  kDpmMb
-    //  kDpmMbNonDiffr
-    //  kDpmDiffr
-    //  kDpmSingleDiffr
-    //  kDpmDoubleDiffr
-    gener = new AliGenDPMjet(1);
-    gener->SetProcess(kDpmMb);
-    gener->SetEnergyCMS(14000.);
-    return gener;
+  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;
 }