Adding information about 2012 pp data triggers (in histos and a new counter). (Chiara...
[u/mrichter/AliRoot.git] / EVGEN / AliGenFunction.cxx
index d431a06..659df38 100644 (file)
 #include <TDatabasePDG.h>
 
 #include "AliRun.h"
+#include "AliLog.h"
 #include "AliESDtrack.h"
 #include "AliESDVertex.h"
 #include "AliGenFunction.h"
+#include "AliGenEventHeader.h"
 
 ClassImp(AliGenFunction)
 
@@ -83,6 +85,42 @@ AliGenFunction::AliGenFunction():
   //
   SetNumberParticles(1);
 }
+
+AliGenFunction::AliGenFunction(const AliGenFunction& func):
+  AliGenerator(),
+  fBkG(func.fBkG),  
+  fFMomentum(func.fFMomentum),           // momentum distribution function 
+  fFPhi(func.fFPhi),                     // phi distribution function
+  fFTheta(func.fFTheta),                 // theta distribution function
+  fFPosition(func.fFPosition),           // position distribution function 
+  fFPdg(func.fFPdg),                     // pdg distribution function  
+  fRefRadius(func.fRefRadius),           // reference radius to be crossed
+  fZmin(func.fZmin),                     // minimal z at reference radius
+  fZmax(func.fZmax),                     // z at reference radius
+  fMaxTrial(10000)                       // maximal number of attempts
+{
+    // Copy constructor
+    SetNumberParticles(1);
+}
+
+AliGenFunction & AliGenFunction::operator=(const AliGenFunction& func)
+{
+    // Assigment operator
+      if(&func == this) return *this;
+      fBkG       = func.fBkG;
+      fFMomentum = func.fFMomentum; 
+      fFPhi      = func.fFPhi;      
+      fFTheta    = func.fFTheta;    
+      fFPosition = func.fFPosition; 
+      fFPdg      = func.fFPdg;      
+      fRefRadius = func.fRefRadius;      
+      fZmin      = func.fZmin;                
+      fZmax      = func.fZmax;                
+      fMaxTrial  = func.fMaxTrial;
+      return *this;
+}
+
+
 //-----------------------------------------------------------------------------
 void AliGenFunction::Generate()
 {
@@ -99,7 +137,7 @@ void AliGenFunction::Generate()
     Float_t posf[3];
     Double_t pos[3];
     Int_t pdg;
-    Double_t ptot,pt,  phi, theta; 
+    Double_t ptot, pt,  phi, theta; 
     //
     ptot     = fFMomentum->GetRandom();
     phi      = fFPhi->GetRandom();
@@ -124,7 +162,8 @@ void AliGenFunction::Generate()
     naccepted++;
   }
 
-
+  AliGenEventHeader* header = new AliGenEventHeader("THn");
+  gAlice->SetGenEventHeader(header);
   return;
 }
 //-----------------------------------------------------------------------------
@@ -153,7 +192,7 @@ void AliGenFunction::Init()
 
 void AliGenFunction::SetFunctions(TF1 * momentum, TF1 *fphi, TF1 *ftheta,TF3 * position, TF1* pdg){
   //
-  //
+  // Set the function
   //
   fFMomentum = momentum;
   fFPhi = fphi;
@@ -164,7 +203,7 @@ void AliGenFunction::SetFunctions(TF1 * momentum, TF1 *fphi, TF1 *ftheta,TF3 * p
 
 void AliGenFunction::SetCylinder(Double_t refR, Double_t zmin, Double_t zmax){
   //
-  //
+  // Set the cylinder geometry
   //
   fRefRadius = refR;          // reference radius to be crossed
   fZmin = zmin;               // minimal z at reference radius