In AliMUONAlignment
[u/mrichter/AliRoot.git] / EVGEN / AliGenDeuteron.h
1 #ifndef _ALIGENDEUTERON_H_\r
2 #define _ALIGENDEUTERON_H_\r
3 \r
4 /* Copyright(c) 2009-2010, ALICE Experiment at CERN, All rights reserved. *\r
5  * See cxx source for full Copyright notice                               */\r
6 \r
7 // Afterburner to simulate coalescence of nucleons\r
8 // Author: Eulogio Serradilla <eulogio.serradilla@ciemat.es>\r
9 //         Arturo Menchaca <menchaca@fisica.unam.mx>\r
10 \r
11 #include "AliGenerator.h"\r
12 \r
13 class AliGenDeuteron: public AliGenerator\r
14 {\r
15 \r
16  public:\r
17 \r
18         AliGenDeuteron(Int_t sign=1, Double_t pmax=0.3, Double_t rmax=2.1, Double_t rsrc=1.5, Int_t model=1);\r
19         virtual ~AliGenDeuteron();\r
20 \r
21         virtual void Init();\r
22         virtual void Generate();\r
23         \r
24         Double_t GetCoalescenceDistance() const { return fRmax*1.e+13; }\r
25         Double_t GetCoalescenceMomentum() const { return fPmax; }\r
26         Double_t GetSourceRadius() const { return fRsrc*1.e+13; }\r
27         Double_t GetSpinProbability() const { return fSpinProb; }\r
28         Int_t GetFreezeOutModel() const { return fModel; }\r
29         Int_t GetSign() const { return fSign;}\r
30         \r
31         void SetCoalescenceDistance(Double_t r=2.1) { fRmax = r*1.e-13; }\r
32         void SetCoalescenceMomentum(Double_t p=0.3) { fPmax = p; }\r
33         void SetSourceRadius(Double_t r=1.5) { fRsrc = r*1.e-13; }\r
34         void SetSpinProbability(Double_t s=0.75) { fSpinProb = s; }\r
35         void SetFreezeOutModel(Int_t model = kThermal) { fModel = model; }\r
36         void SetSign(Int_t sign) {  fSign = sign > 0 ? 1 : -1;}\r
37         \r
38  public:\r
39         enum { kExpansion, kThermal };\r
40         \r
41  private:\r
42  \r
43         AliGenDeuteron(const AliGenDeuteron &other);\r
44         AliGenDeuteron& operator=(const AliGenDeuteron &other);\r
45         \r
46         void FixProductionVertex(class TParticle* i);\r
47         \r
48  private:\r
49         \r
50         const Double_t fDeuteronMass;\r
51         Double_t fPmax; // Maximum p-n momentum difference (GeV/c)\r
52         Double_t fRmax; // Maximum p-n distance (cm)\r
53         Double_t fRsrc; // Emitting source radius (cm)\r
54         Double_t fSpinProb; // cluster formation probability due to spin\r
55         Int_t fModel;   // How to place the nucleons at freeze-out stage\r
56         Int_t fSign; // +1 for deuteron, -1 for antideuterons\r
57         \r
58         ClassDef(AliGenDeuteron,1)\r
59 };\r
60 \r
61 #endif // _ALIGENDEUTERON_H_\r