Added fractional even weight and possibility to add to an existing
authorfca <fca@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 Jun 1999 15:17:42 +0000 (15:17 +0000)
committerfca <fca@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 Jun 1999 15:17:42 +0000 (15:17 +0000)
kinematic tree. By A.Morsch.

EVGEN/AliGenFLUKAsource.cxx
EVGEN/AliGenFLUKAsource.h

index 5a5ade01edca76f3e6f478d37e3e0e3bc8fb9008..7df54868ac66f358c5215886b460ab89e1ad8f7b 100644 (file)
@@ -135,7 +135,7 @@ void AliGenFLUKAsource::Generate()
   FlukaInit();
   TTree *h2=fTreeFluka;
   Int_t nentries = (Int_t) h2->GetEntries();
-  if (fNpart == -1) fNpart=nentries;
+  if (fNpart == -1) fNpart=Int_t(nentries*fFrac);
   
   // loop over number of particles
   Int_t nb=0;
@@ -145,6 +145,17 @@ void AliGenFLUKAsource::Generate()
     nb = (Int_t)h2->GetEvent(entry); 
     if (irwn > nentries) {
       printf("No more entries in the FLUKA boundary source file\n");
+      TFile *File=0;
+      // Get AliRun object or create it 
+      if (!gAlice) {
+        gAlice = (AliRun*)File->Get("gAlice");
+        if (gAlice) printf("AliRun object found on file\n");
+        if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
+      }
+      TTree *fAli=gAlice->TreeK();
+      if (fAli) File =fAli->GetCurrentFile();
+      File->cd();
+      printf("Generate - I'm out \n");
       return;
     }   
     if (Ip > 28 || Ip < 0) {
index a6d554b4fbd81785f1cbd9ea2e89c03ccc1817d2..cb9c73232c9c6289256695199482fc847b155dd7 100644 (file)
@@ -24,7 +24,8 @@ protected:
   Float_t     fAgeMax;        //Maximum age of particle
   Float_t     fAddWeight;     //Add weight for neutrons 
   Float_t     fZshift;        //Shift the Z of impact point by this quantity
-
+  Float_t     fFrac;
+  
   const Text_t     *fFileName;          //Choose the file
    
   TTree           *fTreeFluka;        //pointer to the TTree
@@ -51,16 +52,26 @@ public:
   AliGenFLUKAsource();
   AliGenFLUKAsource(Int_t npart);
   virtual ~AliGenFLUKAsource();
-  virtual void Init() {} 
+  // Initialise 
+  virtual void Init() {}
+  // Initialise fluka data 
   virtual void FlukaInit();
+  // choose particle type
   virtual void SetPartFlag(Int_t ikine) {fIkine=ikine;}
+  // set time cut 
   virtual void SetAgeMax(Float_t agemax) {fAgeMax=agemax;}
+  // use additional weight on neutrals
   virtual void SetAddWeight(Float_t addwgt) {fAddWeight=addwgt;}
+  // z-shift of vertex
   virtual void SetZshift(Float_t zshift) {fZshift=zshift;}
+  // set file name of data file
   virtual void SetFileName(const Text_t *filname) {fFileName=filname;}
+  // read only fraction of data  
+  virtual void SetFraction(Float_t frac=1.){fFrac=frac;}
+  // generate event
   virtual void Generate();
 
-  ClassDef(AliGenFLUKAsource,1)
+  ClassDef(AliGenFLUKAsource,1) //Boundary source
 };
 #endif