X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=RALICE%2FAliCollider.h;h=9d30d199d67afc8d21918f8f5c7e937690dc4b2d;hp=112ff5734a92fc8ae20cb90d23948f66522bba7f;hb=a8cd841a0e6fc606af90a41bd550db83e2d9969c;hpb=fdbea0ce46ad20339dfc0d5f55bed3bd7de159d2 diff --git a/RALICE/AliCollider.h b/RALICE/AliCollider.h index 112ff5734a9..9d30d199d67 100644 --- a/RALICE/AliCollider.h +++ b/RALICE/AliCollider.h @@ -1,14 +1,15 @@ #ifndef ALICOLLIDER_H #define ALICOLLIDER_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ -// $Id$ +// $Id: AliCollider.h,v 1.9 2004/05/04 15:33:04 nick Exp $ -#include "Riostream.h" #include "TPythia6.h" -#include "TMCParticle.h" #include "TString.h" #include "TFile.h" -#include "TTree.h" +#include "TTree.h" +#include "TArrayI.h" #include "AliEvent.h" #include "AliRandom.h" @@ -17,21 +18,30 @@ class AliCollider : public TPythia6 { public: AliCollider(); // Default constructor - ~AliCollider(); // Default destructor + virtual ~AliCollider(); // Default destructor void SetOutputFile(TString name); // Initialise the ROOT output data file void SetVertexMode(Int_t mode); // Select mode for (sec.) vertex structure creation - Int_t GetVertexMode(); // Provide vertex structure creation mode + Int_t GetVertexMode() const; // Provide vertex structure creation mode void SetResolution(Double_t res); // Set resolution (in cm) for resolving (sec.) vertices - Double_t GetResolution(); // Provide (sec.) vertex resolving resolution (in cm) + Double_t GetResolution() const; // Provide (sec.) vertex resolving resolution (in cm) void SetRunNumber(Int_t run); // Set user defined run number - Int_t GetRunNumber(); // Provide the user defined run number + Int_t GetRunNumber() const; // Provide the user defined run number void SetPrintFreq(Int_t n); // Set print frequency for every 'n' events - Int_t GetPrintFreq(); // Provide the print frequency + Int_t GetPrintFreq() const; // Provide the print frequency void Init(char* frame,char* beam,char* target,Float_t win); // Standard Pythia initialisation void Init(char* frame,Int_t zp,Int_t ap,Int_t zt,Int_t at,Float_t win); // Nucl-Nucl initialisation - void MakeEvent(Int_t npt,Int_t mlist=0,Int_t medit=1);// Generate a single event with npt participant nucleons + void SetStable(Int_t id,Int_t mode=1); // Declare a certain particle as stable or not + void SelectEvent(Int_t id); // Select only events containing specified particles + Int_t GetSelectionFlag() const; // Return the selection flag for this event + void MakeEvent(Int_t npt=0,Int_t mlist=-1,Int_t medit=1);// Generate a single event with npt participant nucleons void EndRun(); // Properly close all buffers and output file - AliEvent* GetEvent(); // Provide pointer to the generated event structure + AliEvent* GetEvent(Int_t select=0) const; // Provide pointer to the generated event structure + void SetSpectatorPmin(Float_t pmin); // Set minimal momentum for spectator track to be stored + Float_t GetSpectatorPmin() const; // Provide the minimal momentum for spectator tracks + void SetUserControl(Int_t flag); // Selection of full user control w.r.t. MC parameters. + Int_t GetUserControl() const; // Provide the value of the user control flag. + void SetElastic(Int_t flag); // Selection flag for elastic and diffractive processes. + Int_t GetElastic() const; // Provide the value of the elastic selection flag. protected: Int_t fVertexmode; // The vertex structure creation mode @@ -52,12 +62,20 @@ class AliCollider : public TPythia6 Float_t fFracnn; // Fraction of n+n collisions AliRandom fRan; // Random number generator AliEvent* fEvent; // The produced event structure + Float_t fSpecpmin; // The minimal momentum for spectator tracks to be stored + Int_t fUserctrl; // Flag to denote the user control selection w.r.t. MC parameters + Int_t fElastic; // Flag to denote inclusion of elastic and difractive processes. TFile* fOutFile; // The user defined output data file TTree* fOutTree; // The standard ROOT output tree + TArrayI* fSelections; // The particle KC codes for event selection + Int_t fSelect; // Flag to indicate whether the total event is selected (1) or not (0) + + Int_t IsSelected(); // Check whether (sub)event passed the selection criteria void GetFractions(Float_t zp,Float_t ap,Float_t zt,Float_t at); // Determine various N-N collision fractions + TString GetPyname(Int_t kf); // Provide the correctly truncated Pythia particle name for PDG code kf - ClassDef(AliCollider,1) // Pythia based universal physics event generator + ClassDef(AliCollider,8) // Pythia based universal physics event generator }; #endif