]>
Commit | Line | Data |
---|---|---|
25eefd00 | 1 | #ifndef ALICOLLIDER2_H |
2 | #define ALICOLLIDER2_H | |
45575004 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
fdbea0ce | 5 | |
965bd237 | 6 | // $Id: AliCollider.h,v 1.9 2004/05/04 15:33:04 nick Exp $ |
fdbea0ce | 7 | |
fdbea0ce | 8 | #include "TPythia6.h" |
fdbea0ce | 9 | #include "TString.h" |
10 | #include "TFile.h" | |
47dddbe4 | 11 | #include "TTree.h" |
12 | #include "TArrayI.h" | |
fdbea0ce | 13 | |
14 | #include "AliEvent.h" | |
15 | #include "AliRandom.h" | |
16 | ||
17 | class AliCollider : public TPythia6 | |
18 | { | |
19 | public: | |
20 | AliCollider(); // Default constructor | |
c72198f1 | 21 | virtual ~AliCollider(); // Default destructor |
fdbea0ce | 22 | void SetOutputFile(TString name); // Initialise the ROOT output data file |
23 | void SetVertexMode(Int_t mode); // Select mode for (sec.) vertex structure creation | |
261c0caf | 24 | Int_t GetVertexMode() const; // Provide vertex structure creation mode |
25eefd00 | 25 | void SetResolution(Double_t res); // Set resolution (in meter) for resolving (sec.) vertices |
26 | Double_t GetResolution() const; // Provide (sec.) vertex resolving resolution (in meter) | |
fdbea0ce | 27 | void SetRunNumber(Int_t run); // Set user defined run number |
261c0caf | 28 | Int_t GetRunNumber() const; // Provide the user defined run number |
fdbea0ce | 29 | void SetPrintFreq(Int_t n); // Set print frequency for every 'n' events |
261c0caf | 30 | Int_t GetPrintFreq() const; // Provide the print frequency |
fdbea0ce | 31 | void Init(char* frame,char* beam,char* target,Float_t win); // Standard Pythia initialisation |
32 | void Init(char* frame,Int_t zp,Int_t ap,Int_t zt,Int_t at,Float_t win); // Nucl-Nucl initialisation | |
5f25234b | 33 | void SetStable(Int_t id,Int_t mode=1); // Declare a certain particle as stable or not |
47dddbe4 | 34 | void SelectEvent(Int_t id); // Select only events containing specified particles |
261c0caf | 35 | Int_t GetSelectionFlag() const; // Return the selection flag for this event |
1c01b4f8 | 36 | void MakeEvent(Int_t npt=0,Int_t mlist=-1,Int_t medit=1);// Generate a single event with npt participant nucleons |
fdbea0ce | 37 | void EndRun(); // Properly close all buffers and output file |
261c0caf | 38 | AliEvent* GetEvent(Int_t select=0) const; // Provide pointer to the generated event structure |
47dddbe4 | 39 | void SetSpectatorPmin(Float_t pmin); // Set minimal momentum for spectator track to be stored |
261c0caf | 40 | Float_t GetSpectatorPmin() const; // Provide the minimal momentum for spectator tracks |
965bd237 | 41 | void SetUserControl(Int_t flag); // Selection of full user control w.r.t. MC parameters. |
42 | Int_t GetUserControl() const; // Provide the value of the user control flag. | |
43 | void SetElastic(Int_t flag); // Selection flag for elastic and diffractive processes. | |
44 | Int_t GetElastic() const; // Provide the value of the elastic selection flag. | |
fdbea0ce | 45 | |
46 | protected: | |
47 | Int_t fVertexmode; // The vertex structure creation mode | |
25eefd00 | 48 | Double_t fResolution; // The resolution (in meter) for resolving (sec.) vertices |
fdbea0ce | 49 | Int_t fRunnum; // The user defined run number |
50 | Int_t fEventnum; // The automatically updated event number | |
51 | Int_t fPrintfreq; // The user selected print frequency | |
52 | char* fFrame; // The Pythia frame indicator | |
53 | Float_t fWin; // The Pythia energy indicator | |
54 | Int_t fNucl; // Flag to denote nucleus-nucleus (1) or standard Pythia (0) running | |
55 | Int_t fZproj; // Z of the projectile particle | |
56 | Int_t fAproj; // A of the projectile particle | |
57 | Int_t fZtarg; // Z of the target particle | |
58 | Int_t fAtarg; // A of the target particle | |
59 | Float_t fFracpp; // Fraction of p+p collisions | |
60 | Float_t fFracnp; // Fraction of n+p collisions | |
61 | Float_t fFracpn; // Fraction of p+n collisions | |
62 | Float_t fFracnn; // Fraction of n+n collisions | |
63 | AliRandom fRan; // Random number generator | |
64 | AliEvent* fEvent; // The produced event structure | |
47dddbe4 | 65 | Float_t fSpecpmin; // The minimal momentum for spectator tracks to be stored |
965bd237 | 66 | Int_t fUserctrl; // Flag to denote the user control selection w.r.t. MC parameters |
67 | Int_t fElastic; // Flag to denote inclusion of elastic and difractive processes. | |
fdbea0ce | 68 | |
69 | TFile* fOutFile; // The user defined output data file | |
70 | TTree* fOutTree; // The standard ROOT output tree | |
71 | ||
47dddbe4 | 72 | TArrayI* fSelections; // The particle KC codes for event selection |
73 | Int_t fSelect; // Flag to indicate whether the total event is selected (1) or not (0) | |
74 | ||
75 | Int_t IsSelected(); // Check whether (sub)event passed the selection criteria | |
fdbea0ce | 76 | void GetFractions(Float_t zp,Float_t ap,Float_t zt,Float_t at); // Determine various N-N collision fractions |
6aff9852 | 77 | TString GetPyname(Int_t kf); // Provide the correctly truncated Pythia particle name for PDG code kf |
fdbea0ce | 78 | |
261c0caf | 79 | ClassDef(AliCollider,8) // Pythia based universal physics event generator |
fdbea0ce | 80 | }; |
81 | #endif |