Finish run with print-out of run statistics added.
[u/mrichter/AliRoot.git] / TDPMjet / AliGenDPMjet.cxx
index 9f6af3a..4692ccf 100644 (file)
@@ -28,6 +28,7 @@
 #include <TParticleClassPDG.h>
 #include <TPDGCode.h>
 #include <TLorentzVector.h>
+#include <TClonesArray.h>
 #include "AliRunLoader.h"
 #include "AliGenDPMjet.h"
 #include "AliGenDPMjetEventHeader.h"
@@ -54,7 +55,6 @@ AliGenDPMjet::AliGenDPMjet()
      fSpecn(0),
      fSpecp(0),
      fDPMjet(0),
-     fParticles(0),
      fNoGammas(0),
      fLHC(0),
      fPi0Decay(0),
@@ -81,7 +81,6 @@ AliGenDPMjet::AliGenDPMjet(Int_t npart)
      fSpecn(0),
      fSpecp(0),
      fDPMjet(0),
-     fParticles(new TClonesArray("TParticle",10000)),
      fNoGammas(0),
      fLHC(0),
      fPi0Decay(0),
@@ -112,7 +111,6 @@ AliGenDPMjet::AliGenDPMjet(const AliGenDPMjet &/*Dpmjet*/)
      fSpecn(0),
      fSpecp(0),
      fDPMjet(0),
-     fParticles(0),
      fNoGammas(0),
      fLHC(0),
      fPi0Decay(0),
@@ -126,7 +124,6 @@ AliGenDPMjet::AliGenDPMjet(const AliGenDPMjet &/*Dpmjet*/)
 AliGenDPMjet::~AliGenDPMjet()
 {
 // Destructor
-    delete fParticles;
 }
 //______________________________________________________________________________
 void AliGenDPMjet::Init()
@@ -163,7 +160,6 @@ void AliGenDPMjet::Generate()
 
   Float_t polar[3]    =   {0,0,0};
   Float_t origin[3]   =   {0,0,0};
-  Float_t origin0[3]  =   {0,0,0};
   Float_t p[3];
   Float_t tof;
 
@@ -187,13 +183,13 @@ void AliGenDPMjet::Generate()
       fDPMjet->GenerateEvent();
       fTrials++;
 
-      fDPMjet->ImportParticles(fParticles,"All");      
+      fDPMjet->ImportParticles(&fParticles,"All");      
       if (fLHC) Boost();
 
       // Temporaneo
       fGenImpPar = fDPMjet->GetBImpac();
       
-      Int_t np = fParticles->GetEntriesFast();
+      Int_t np = fParticles.GetEntriesFast();
       printf("\n **************************************************%d\n",np);
       Int_t nc=0;
       if (np==0) continue;
@@ -206,16 +202,10 @@ void AliGenDPMjet::Generate()
          pSelected[i] = 0;
       }
       
-//      Get event vertex
-      
-      fVertex[0] = origin0[0];
-      fVertex[1] = origin0[1]; 
-      fVertex[2] = origin0[2];
-      
 //      First select parent particles
 
       for (i = 0; i<np; i++) {
-         TParticle *iparticle = (TParticle *) fParticles->At(i);
+         TParticle *iparticle = (TParticle *) fParticles.At(i);
 
 // Is this a parent particle ?
 
@@ -247,7 +237,7 @@ void AliGenDPMjet::Generate()
 
 
       for (i=0; i<np; i++) {
-         TParticle *iparticle = (TParticle *) fParticles->At(i);
+         TParticle *iparticle = (TParticle *) fParticles.At(i);
 
 // Is this a final state particle ?
 
@@ -281,7 +271,7 @@ void AliGenDPMjet::Generate()
 // Write particles to stack
 
       for (i = 0; i<np; i++) {
-         TParticle *  iparticle = (TParticle *) fParticles->At(i);
+         TParticle *  iparticle = (TParticle *) fParticles.At(i);
          Bool_t  hasMother   = (iparticle->GetFirstMother()>=0);
          if (pSelected[i]) {
              
@@ -301,8 +291,8 @@ void AliGenDPMjet::Generate()
              TParticle* mother = 0;
              if (hasMother) {
                  imo = iparticle->GetFirstMother();
-                 mother = (TParticle *) fParticles->At(imo);
-                 imo = (mother->GetPdgCode() != 92) ? imo = newPos[imo] : -1;
+                 mother = (TParticle *) fParticles.At(imo);
+                 imo = (mother->GetPdgCode() != 92) ? newPos[imo] : -1;
              } // if has mother   
 
              Bool_t tFlag = (fTrackIt && (ks == 1));
@@ -341,7 +331,7 @@ Bool_t AliGenDPMjet::DaughtersSelection(TParticle* iparticle)
        imin = iparticle->GetFirstDaughter();
        imax = iparticle->GetLastDaughter();       
        for (i = imin; i <= imax; i++){
-           TParticle *  jparticle = (TParticle *) fParticles->At(i);   
+           TParticle *  jparticle = (TParticle *) fParticles.At(i);    
            Int_t ip = jparticle->GetPdgCode();
            if (KinematicSelection(jparticle,0)&&SelectFlavor(ip)) {
                selected=kTRUE; break;
@@ -408,7 +398,7 @@ void AliGenDPMjet::MakeHeader()
 // Event Vertex
     header->SetPrimaryVertex(fVertex);
     gAlice->SetGenEventHeader(header);    
- AddHeader(header);
+    AddHeader(header);
 }
 
 void AliGenDPMjet::AddHeader(AliGenEventHeader* header)
@@ -430,5 +420,12 @@ AliGenDPMjet& AliGenDPMjet::operator=(const  AliGenDPMjet& /*rhs*/)
 }
 
 
+void AliGenDPMjet::FinishRun()
+{
+    // Print run statistics
+    fDPMjet->Dt_Dtuout();
+}
+
+    
 
 //______________________________________________________________________________