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