]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPHIC/AliGenTPHIC.h
update from ALICE
[u/mrichter/AliRoot.git] / TPHIC / AliGenTPHIC.h
1 #ifndef ALIGENTPHIC_H
2 #define ALIGENTPHIC_H
3 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7 // Event generator of two-photon processes
8 // in ultra-peripheral ion collisions
9 // Author: Yuri.Kharlov@cern.ch
10 // 15 April 2003
11
12 #include "AliGenMC.h"
13 class TPHICgen;
14 class AliPythia;
15
16 //-------------------------------------------------------------
17 class AliGenTPHIC : public AliGenMC
18 {
19 public:
20   AliGenTPHIC();
21   virtual ~AliGenTPHIC();
22   void Generate();
23   void Init();
24   void SetDebug(Int_t debug) {fDebug=debug;}
25   void SetEventListRange(Int_t eventFirst=-1, Int_t eventLast=-1);
26
27   // Setters for TPHIC initial parameters
28
29   void SetProcess     (Int_t   proc  =2    );
30   void SetBeamEnergy  (Float_t energy=3500.);
31   void SetBeamZ       (Int_t   z     =20   );
32   void SetBeamA       (Int_t   a     =40   );
33   void SetYggRange    (Float_t ymin  =-7., Float_t ymax=7.);
34   void SetMggRange    (Float_t mmin  = 2., Float_t mmax=20.);
35   void SetNgridY      (Int_t   ny    = 20  );
36   void SetNgridM      (Int_t   nm    =100  );
37   void SetLumFunName  (TString name  ="lum_ca_2_20.dat"  );
38   void SetLumFunFlag  (Int_t   flag  =-1   );
39   void SetKfFermion   (Int_t   kf    = 13  );
40   void SetKfOnium     (Int_t   kf    =441  );
41   void SetMassOnium   (Float_t mass        );
42   void SetGGwidthOnium(Float_t width       );
43   void SetKfVmesons   (Int_t kf=113, Int_t kf2=113);
44
45   // Getters of TPHIC output parameters
46
47   Float_t GetGGmass              ();
48   Float_t GetGGrapidity          ();
49   Float_t GetG1mass              ();
50   Float_t GetG2mass              ();
51   TClonesArray*  GetParticleList ();
52   TLorentzVector MomentumRecNucl1();
53   TLorentzVector MomentumRecNucl2();
54   Float_t GetXSectionCurrent     ();
55   Float_t GetXSection            ();
56   Float_t GetXSectionError       ();
57  protected:
58   TPHICgen     *fTPHICgen;          //!generator TPHIC17
59   AliPythia    *fPythia;            //!generator PYTHIA6
60   TClonesArray *fParticles;         // Particle  List
61   Int_t         fEvent;             //!internal event number
62   Int_t         fDebug;             //!debug level
63   Int_t         fDebugEventFirst;   //!First event to debug
64   Int_t         fDebugEventLast;    //!Last  event to debug
65
66  private:
67   AliGenTPHIC(const AliGenTPHIC & gen);
68   AliGenTPHIC & operator=(const AliGenTPHIC & gen);
69
70   ClassDef(AliGenTPHIC,1)     // Generator of 2-photon processes in ultra-peripheral collisions
71 };
72 #endif