]> git.uio.no Git - u/mrichter/AliRoot.git/blame - THbtp/THBTprocessor.h
Density effect added (Yu.Belikov)
[u/mrichter/AliRoot.git] / THbtp / THBTprocessor.h
CommitLineData
6671656e 1#ifndef THBTPROCESSOR_H
2#define THBTPROCESSOR_H
85700fa3 3//_____________________________________________________________________________
4///////////////////////////////////////////////////////////////////////////////
5// //
6// class THBTprocessor //
7// //
8// Wrapper class to HBT processor fortran code. //
9// For more information see AliGenHBTprocessor class //
10// HBT processor is written by Lanny Ray //
11// //
12// //
13// Comunication is done via COMMON BLOCKS declared in HBTprocCOMMON.h //
14// using cfortran.h routines //
15// User should use class AliGenHBTprocessor and all their interface //
16// see there for more description //
17// //
18// Wrapper class written by //
19// Piotr Krzysztof Skowronski (Piotr.Skowronski@cern.ch) //
20// //
21///////////////////////////////////////////////////////////////////////////////
4c90f2a0 22/*******************************************************/
23//Author Piotr Krzysztof Skowronski e-mial: Piotr.Skowronski@cern.ch
24// C++ Wrapper Class for fortran made HBT Processor written by Lanny Ray
25//
26// Comunication is done via COMMON BLOCKS declared in HBTprocCOMMON.h
27// using cfortran.h routines
28// User should use class AliGenHBTprocessor and all their interface
29// see there for more description
30//
6671656e 31
32#include <TGenerator.h>
33#include "HBTprocCOMMON.h"
34
35
6671656e 36class THBTprocessor: public TGenerator
37 {
38 public:
4c90f2a0 39 THBTprocessor();
6671656e 40 virtual ~THBTprocessor() {};
41
85700fa3 42 virtual void Initialize() const;
43 virtual void GenerateEvent() const;
44 virtual void PrintEvent() const;
6671656e 45 virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option="");
46
47 //Set/Gets
4c90f2a0 48 //comprehensive description off all these methods
49 //can be found in proper methods of AliGenHBTprocessor
50
85700fa3 51 virtual void SetTrackRejectionFactor(Float_t trf = 1.0) const {PARAMETERS.trk_accep = trf;}
52 virtual void SetRefControl(Int_t rc =2) const {PARAMETERS.ref_control = rc;}
53 virtual void SetPIDs(Int_t pid1 = 8,Int_t pid2 = 9) const {PARAMETERS.pid[0]=pid1; PARAMETERS.pid[1]=pid2;}
54 virtual void SetNPIDtypes(Int_t npidt = 2)const {PARAMETERS.n_pid_types = npidt;}
55 virtual void SetDeltap(Float_t deltp = 0.1) const {PARAMETERS.deltap=deltp; }
56 virtual void SetMaxIterations(Int_t maxiter = 50) const {PARAMETERS.maxit = maxiter;}
57 virtual void SetDelChi(Float_t dc = 0.1)const {PARAMETERS.delchi = dc;}
58 virtual void SetIRand(Int_t irnd = 76564) const {PARAMETERS.irand = irnd;}
59 virtual void SetLambda(Float_t lam = 0.6) const { PARAMETERS.lambda = lam;}
60 virtual void SetR1d(Float_t r = 7.0) const {PARAMETERS.R_1d=r;}
61 virtual void SetRSide(Float_t rs = 6.0) const {PARAMETERS.Rside=rs;}
62 virtual void SetROut(Float_t ro = 7.0) const {PARAMETERS.Rout=ro;}
63 virtual void SetRLong(Float_t rl = 4.0) const {PARAMETERS.Rlong=rl;}
64 virtual void SetRPerp(Float_t rp = 6.0) const {PARAMETERS.Rperp=rp;}
65 virtual void SetRParallel(Float_t rprl = 4.0) const {PARAMETERS.Rparallel=rprl;}
66 virtual void SetR0(Float_t r0 = 4.0) const {PARAMETERS.R0=r0;}
67 virtual void SetQ0(Float_t q0 = 9.0) const {PARAMETERS.Q0=q0;}
68 virtual void SetSwitch1D(Int_t s1d = 3) const {PARAMETERS.switch_1d = s1d;}
69 virtual void SetSwitch3D(Int_t s3d = 0) const {PARAMETERS.switch_3d = s3d;}
70 virtual void SetSwitchType(Int_t st = 3) const {PARAMETERS.switch_type = st;}
71 virtual void SetSwitchCoherence(Int_t sc = 0) const {PARAMETERS.switch_coherence = sc;}
72 virtual void SetSwitchCoulomb(Int_t scol = 2) const {PARAMETERS.switch_coulomb = scol;}
73 virtual void SetSwitchFermiBose(Int_t sfb = 1) const {PARAMETERS.switch_fermi_bose = sfb;}
6671656e 74
75
85700fa3 76 virtual void SetPtRange(Float_t ptmin = 0.1, Float_t ptmax = 0.98)const //Pt in GeV/c
6671656e 77 { MESH.pt_min=ptmin;MESH.pt_max=ptmax;}
78
85700fa3 79 virtual void SetPxRange(Float_t pxmin = -1.0, Float_t pxmax = 1.0) const
6671656e 80 { MESH.px_min=pxmin;MESH.px_max=pxmax;}
81
85700fa3 82 virtual void SetPyRange(Float_t pymin = -1.0, Float_t pymax = 1.0)const
6671656e 83 { MESH.py_min=pymin;MESH.py_max=pymax;}
84
85700fa3 85 virtual void SetPzRange(Float_t pzmin = -3.6, Float_t pzmax = 3.6) const
6671656e 86 { MESH.pz_min=pzmin;MESH.pz_max=pzmax;}
87
88
85700fa3 89 virtual void SetPhiRange(Float_t phimin = 0.0, Float_t phimax = 360.0)const //Angle in degrees
6671656e 90 { MESH.phi_min=phimin;MESH.phi_max=phimax;}
91
85700fa3 92 virtual void SetEtaRange(Float_t etamin = -1.5, Float_t etamax = 1.5)const //Pseudorapidity !!!!!!!!!
6671656e 93 { MESH.eta_min=etamin;MESH.eta_max=etamax;}
94
85700fa3 95 virtual void SetNPtBins(Int_t nptbin = 50)const{MESH.n_pt_bins=nptbin;}
96 virtual void SetNPhiBins(Int_t nphibin = 50)const{MESH.n_phi_bins=nphibin;}
97 virtual void SetNEtaBins(Int_t netabin = 50)const{MESH.n_eta_bins=netabin;}
6671656e 98
85700fa3 99 virtual void SetNPxBins(Int_t npxbin = 20)const{MESH.n_px_bins=npxbin;}
100 virtual void SetNPyBins(Int_t npybin = 20)const{MESH.n_py_bins=npybin;}
101 virtual void SetNPzBins(Int_t npzbin = 70)const{MESH.n_pz_bins=npzbin;}
6671656e 102
85700fa3 103 virtual void SetNBins1DFineMesh(Int_t n = 10)const{ MESH.n_1d_fine=n;}
104 virtual void SetBinSize1DFineMesh(Float_t x=0.01)const{MESH.binsize_1d_fine=x;}
6671656e 105
85700fa3 106 virtual void SetNBins1DCoarseMesh(Int_t n =2 )const{MESH.n_1d_coarse =n;}
107 virtual void SetBinSize1DCoarseMesh(Float_t x=0.05)const{MESH.binsize_1d_coarse=x;}
6671656e 108
85700fa3 109 virtual void SetNBins3DFineMesh(Int_t n = 8)const{MESH.n_3d_fine =n;}
110 virtual void SetBinSize3DFineMesh(Float_t x=0.01)const{MESH.binsize_3d_fine=x;}
6671656e 111
85700fa3 112 virtual void SetNBins3DCoarseMesh(Int_t n = 2)const{ MESH.n_3d_coarse=n;}
113 virtual void SetBinSize3DCoarseMesh(Float_t x=0.08)const{MESH.binsize_3d_coarse=x;}
6671656e 114
85700fa3 115 virtual void SetNBins3DFineProjectMesh(Int_t n =3 )const{ MESH.n_3d_fine_project=n;}
88cb7938 116
85700fa3 117 virtual void SetPrintFull(Int_t flag = 1)const{PARAMETERS.print_full=flag;}
88cb7938 118
85700fa3 119 void DumpSettings() const;
6671656e 120
6671656e 121 ClassDef(THBTprocessor,0)
122 };
123
124#endif
4c90f2a0 125
126/**************************************************************
127COMMENTS APROPOS HBTPROCESSOR FORTRAN CODE:
128
129SUBROUTINE INITIALIZE HAS TO BE OMITTED, IT RESETS (ZEROES) COMMON BLOCKS
130
131SUBROUTINE KINEMATICS HAS TO BE RENAMED EITHER IN MEVSIM OR IN PROCESSOR
132AS THEY HAVE IDENTICAL DECLARATIONS AND SOMTIMES IS USED THE BAD ONE IN CASE BOTH LIBRARIES ARE LOADED
133
134****************************************************************/