ROOT logo
#ifndef ALIGENCORRHF_H
#define ALIGENCORRHF_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//
// Class to generate correlated Heavy Flavor hadron pairs using paramtrized
// kinematics of quark pairs from some generator and quark fragmentation functions.
// Is a generalisation of AliGenParam class for correlated pairs of hadrons.
// Author: S. Grigoryan, LPC Clermont-Fd & YerPhI, Smbat.Grigoryan@cern.ch
//

#include "AliGenMC.h"

class AliPythia;
class TParticle;
class TH2F;
class TFile;
class TString;
class TClonesArray;

//-------------------------------------------------------------
class AliGenCorrHF : public AliGenMC
{
 public:
    AliGenCorrHF();
    AliGenCorrHF(Int_t npart, Int_t idquark, Int_t energy);
    AliGenCorrHF(char* tname, Int_t npart, Int_t idquark, Int_t energy);
     
    virtual ~AliGenCorrHF();
    virtual void Generate();
    virtual void Init();
    // force decay type
    virtual void SetDecayer(AliDecayer* decayer) {fDecayer = decayer;}

    // Hadron pair composition functions, needed by GetHadronPair
    static void IpCharm(TH2F *hProbHH, Int_t &pdg3, Int_t &pdg4);
    static void IpBeauty(TH2F *hProbHH, Int_t &pdg3, Int_t &pdg4);

    // Computation of cumulative sums of cell wght-s, needed by GetQuarkPair
    Double_t ComputeIntegral(TFile* fG);

    // fG - input file with QQbar kinematical grid (TTree) and fragm. functions (24 TH2-s)
    static void GetQuarkPair(TFile* fG, Double_t* fInt, Double_t &y1, Double_t &y2, Double_t &pt1, Double_t &pt2, Double_t &dphi);              
    static void GetHadronPair(TFile* fG, Int_t idq, Double_t y1, Double_t y2, Double_t pt1, Double_t pt2, Int_t &id3, Int_t &id4, Double_t &pz3, Double_t &pz4, Double_t &pt3, Double_t &pt4); 

    //Loading tracks in the stack
    void LoadTracks(Int_t iquark, Float_t *pq, Int_t iPart, 
		    Float_t *p, Int_t np, TClonesArray* particles,
		    Float_t *origine0, Float_t *polar, Float_t wgtp, 
		    Float_t wgtch, Int_t &nt, Int_t ncsel, Int_t *pSelected, 
		    Int_t *trackIt);
    //Setting the flag for Background transportation while using SetForceDecay()
    void SetSelectAll(Bool_t selectall) {fSelectAll = selectall;}

 protected:
    TString     fFileName;    // Name of the input file
    TFile*      fFile;        //! Pointer to input file
    Int_t       fQuark;       // Quark type
    Int_t       fEnergy;      // p-p c.m.s. energy 
    Float_t     fBias;        // Biasing factor
    Int_t       fTrials;      // Number of trials
    Bool_t      fSelectAll;   // Flag for transportation of Background while using SetForceDecay()
    AliDecayer* fDecayer;     //! Pointer to pythia object for decays

 private:
    AliGenCorrHF(const AliGenCorrHF &CorrHF);
    AliGenCorrHF & operator=(const AliGenCorrHF & rhs);

    Double_t* fgIntegral; //! Pointer to array of cumulative sums of wght-s
    static Int_t  fgnptbins;             // =12 Number of bins for the fragm. 
                                         //   function dependence on quark pt
    // Number of the grid bins in deltaphi, y and pt:  18, 30 and 50
    static Double_t fgdph[19];           // deltaphi bin coordinates  
    static Double_t fgy[31];             // y bin coordinates
    static Double_t fgpt[51];            // pt bin coordinates
    static Double_t fgptbmin[12];        // min & max coordinates of pt bins for
    static Double_t fgptbmax[12];        // the fragm. function

    ClassDef(AliGenCorrHF,1)  // Generator using parameterized QQbar & fragm. functions
};
#endif









 AliGenCorrHF.h:1
 AliGenCorrHF.h:2
 AliGenCorrHF.h:3
 AliGenCorrHF.h:4
 AliGenCorrHF.h:5
 AliGenCorrHF.h:6
 AliGenCorrHF.h:7
 AliGenCorrHF.h:8
 AliGenCorrHF.h:9
 AliGenCorrHF.h:10
 AliGenCorrHF.h:11
 AliGenCorrHF.h:12
 AliGenCorrHF.h:13
 AliGenCorrHF.h:14
 AliGenCorrHF.h:15
 AliGenCorrHF.h:16
 AliGenCorrHF.h:17
 AliGenCorrHF.h:18
 AliGenCorrHF.h:19
 AliGenCorrHF.h:20
 AliGenCorrHF.h:21
 AliGenCorrHF.h:22
 AliGenCorrHF.h:23
 AliGenCorrHF.h:24
 AliGenCorrHF.h:25
 AliGenCorrHF.h:26
 AliGenCorrHF.h:27
 AliGenCorrHF.h:28
 AliGenCorrHF.h:29
 AliGenCorrHF.h:30
 AliGenCorrHF.h:31
 AliGenCorrHF.h:32
 AliGenCorrHF.h:33
 AliGenCorrHF.h:34
 AliGenCorrHF.h:35
 AliGenCorrHF.h:36
 AliGenCorrHF.h:37
 AliGenCorrHF.h:38
 AliGenCorrHF.h:39
 AliGenCorrHF.h:40
 AliGenCorrHF.h:41
 AliGenCorrHF.h:42
 AliGenCorrHF.h:43
 AliGenCorrHF.h:44
 AliGenCorrHF.h:45
 AliGenCorrHF.h:46
 AliGenCorrHF.h:47
 AliGenCorrHF.h:48
 AliGenCorrHF.h:49
 AliGenCorrHF.h:50
 AliGenCorrHF.h:51
 AliGenCorrHF.h:52
 AliGenCorrHF.h:53
 AliGenCorrHF.h:54
 AliGenCorrHF.h:55
 AliGenCorrHF.h:56
 AliGenCorrHF.h:57
 AliGenCorrHF.h:58
 AliGenCorrHF.h:59
 AliGenCorrHF.h:60
 AliGenCorrHF.h:61
 AliGenCorrHF.h:62
 AliGenCorrHF.h:63
 AliGenCorrHF.h:64
 AliGenCorrHF.h:65
 AliGenCorrHF.h:66
 AliGenCorrHF.h:67
 AliGenCorrHF.h:68
 AliGenCorrHF.h:69
 AliGenCorrHF.h:70
 AliGenCorrHF.h:71
 AliGenCorrHF.h:72
 AliGenCorrHF.h:73
 AliGenCorrHF.h:74
 AliGenCorrHF.h:75
 AliGenCorrHF.h:76
 AliGenCorrHF.h:77
 AliGenCorrHF.h:78
 AliGenCorrHF.h:79
 AliGenCorrHF.h:80
 AliGenCorrHF.h:81
 AliGenCorrHF.h:82
 AliGenCorrHF.h:83
 AliGenCorrHF.h:84
 AliGenCorrHF.h:85
 AliGenCorrHF.h:86
 AliGenCorrHF.h:87
 AliGenCorrHF.h:88
 AliGenCorrHF.h:89
 AliGenCorrHF.h:90
 AliGenCorrHF.h:91
 AliGenCorrHF.h:92
 AliGenCorrHF.h:93