]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenParam.h
CMake: FindROOT returns etcdir
[u/mrichter/AliRoot.git] / EVGEN / AliGenParam.h
index 29c8f7f6f6197bfaaad7a7d9b056586cd42ad1a4..bbd61cebc653437502af3a4f6ab8b0c4dc80c286 100644 (file)
@@ -35,6 +35,7 @@ public:
                Int_t    (*IpPara)(TRandom*)           );
      
     virtual ~AliGenParam();
+    virtual void GenerateN(Int_t ntimes);
     virtual void Generate();
     virtual void Init();
     // select particle type
@@ -45,11 +46,26 @@ public:
     virtual void SetWeighting(Weighting_t flag = kAnalog) {fAnalog = flag;}    
     virtual void SetDeltaPt(Float_t delta=0.01) {fDeltaPt = delta;}
     virtual void SetDecayer(AliDecayer* decayer) {fDecayer = decayer;}
+    virtual void SetForceGammaConversion(Bool_t force=kTRUE) {fForceConv = force;}
+    virtual void SetKeepParent(Bool_t keep=kTRUE){fKeepParent= keep;} //Store parent even if it does not have childs within cuts
+    virtual void SetKeepIfOneChildSelected(Bool_t keep=kTRUE){fKeepIfOneChildSelected = keep;} //Accept parent and child even if other children are not within cut.
+    
     virtual void Draw(const char * opt);
     TF1 *  GetPt() { return fPtPara;}
     TF1 *  GetY() {return fYPara;}
     Float_t GetRelativeArea(Float_t ptMin, Float_t ptMax, Float_t yMin, Float_t yMax, Float_t phiMin, Float_t phiMax);
 
+    static TVector3 OrthogonalVector(TVector3 &inVec);
+    static void RotateVector(Double_t *pin, Double_t *pout, Double_t costheta, Double_t sintheta,
+                          Double_t cosphi, Double_t sinphi);
+    static double ScreenFunction1(double d);
+    static double ScreenFunction2(double d);
+    double RandomEnergyFraction(double Z, double E);
+    double RandomPolarAngle();
+    double RandomMass(Double_t mh);
+    Int_t VirtualGammaPairProduction(TClonesArray *particles, Int_t nPart);
+    Int_t ForceGammaConversion(TClonesArray *particles, Int_t nPart);
+  
 protected:
     Double_t (*fPtParaFunc)(const Double_t*, const Double_t*); //! Pointer to Pt parametrisation function
     Double_t (*fYParaFunc )(const Double_t*, const Double_t*); //! Pointer to Y parametrisation function
@@ -68,6 +84,9 @@ protected:
     Float_t     fDeltaPt;      // pT sampling in steps of fDeltaPt
     Bool_t      fSelectAll;    // Flag for transportation of Background while using SetForceDecay()
     AliDecayer  *fDecayer;     // ! Pointer to pythia object for decays
+    Bool_t      fForceConv;    //
+    Bool_t      fKeepParent;   //  Store parent even if it does not have childs within cuts
+    Bool_t      fKeepIfOneChildSelected; //Accept parent and child even if other children are not within cut.
 
 private:
     AliGenParam(const AliGenParam &Param);