AliGenCorrHF generator for correlated heavy flavor. (Smbat Grigoryan)
[u/mrichter/AliRoot.git] / EVGEN / AliGenCorrHF.h
CommitLineData
2c890605 1#ifndef ALIGENCORRHF_H
2#define ALIGENCORRHF_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8//
9// Class to generate correlated Heavy Flavor hadron pairs using paramtrized
10// kinematics of quark pairs from some generator and quark fragmentation functions.
11// Is a generalisation of AliGenParam class for correlated pairs of hadrons.
12// Author: S. Grigoryan, LPC Clermont-Fd & YerPhI, Smbat.Grigoryan@cern.ch
13//
14
15#include "AliGenMC.h"
16
17class AliPythia;
18class TParticle;
19class TRandom;
20class TFile;
21class TString;
22
23//-------------------------------------------------------------
24class AliGenCorrHF : public AliGenMC
25{
26 public:
27 AliGenCorrHF();
28 AliGenCorrHF(Int_t npart, Int_t param);
29 AliGenCorrHF(char* tname, Int_t npart, Int_t param);
30 AliGenCorrHF(const AliGenCorrHF &CorrHF);
31
32 virtual ~AliGenCorrHF();
33 virtual void Generate();
34 virtual void Init();
35 // force decay type
36 virtual void SetDecayer(AliDecayer* decayer) {fDecayer = decayer;}
37
38 AliGenCorrHF & operator=(const AliGenCorrHF & rhs);
39
40 // Particle type parametrisation functions, needed by GetHadronPair
41 static Int_t IpCharm(TRandom* ran);
42 static Int_t IpBeauty(TRandom* ran);
43
44 // Computation of cumulative sums of cell wght-s, needed by GetQuarkPair
45 static Double_t ComputeIntegral(TFile* fG);
46
47 // fG - input file w QQbar kinematical grid (TTree) and fragm. functions (24 TH2-s)
48 static void GetQuarkPair(TFile* fG, Double_t* fInt, Double_t &y1, Double_t &y2, Double_t &pt1, Double_t &pt2, Double_t &dphi);
49 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);
50
51 protected:
52 TString fFileName; // Name of the input file
53 TFile* fFile; //! Pointer to input file
54 Int_t fQuark; // Quark type
55 Float_t fBias; // Biasing factor
56 Int_t fTrials; // Number of trials
57 AliDecayer* fDecayer; //! Pointer to pythia object for decays
58
59 private:
60 static Double_t* fgIntegral; //! Pointer to array of cumulative sums of wght-s
61 static Int_t fgnptbins; // =12 Number of bins for the fragm.
62 // function dependence on quark pt
63 // Number of the grid bins in deltaphi, y and pt: 18, 30 and 32
64 static Double_t fgdph[19]; // deltaphi bin coordinates
65 static Double_t fgy[31]; // y bin coordinates
66 static Double_t fgpt[33]; // pt bin coordinates
67 static Double_t fgptbmin[12]; // min & max coordinates of pt bins for
68 static Double_t fgptbmax[12]; // the fragm. function
69
70 ClassDef(AliGenCorrHF,1) // Generator using parameterized QQbar & fragm. functions
71};
72#endif
73
74
75
76
77
78
79
80
81
82