]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ZDC/AliGenZDC.h
New ZDC geometry as installed on January 2012 implemented
[u/mrichter/AliRoot.git] / ZDC / AliGenZDC.h
CommitLineData
68ca986e 1#ifndef ALIGENZDC_H
2#define ALIGENZDC_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8////////////////////////////////////////////////////
9// //
10// Test pc generator for ZDC (taking into account //
11// Fermi smearing, beam divergence and crossing) //
12// //
13////////////////////////////////////////////////////
14
15
16#include <TMath.h>
17
18#include "AliGenerator.h"
19
20
21class AliGenZDC : public AliGenerator {
22
23public:
24 AliGenZDC();
25 AliGenZDC(Int_t npart);
26 virtual ~AliGenZDC() {}
5a881c97 27 void Init();
28 void Generate();
29
30 // Fermi smearing, beam divergence and crossing angle
92339a90 31 void FermiTwoGaussian(Float_t A);
32 void ExtractFermi(Int_t id, Double_t *ddp);
33 void BeamDivCross(Int_t icross, Double_t *pLab);
5a881c97 34 void AddAngle(Double_t theta1, Double_t phi1, Double_t theta2,
35 Double_t phi2, Double_t *angle);
36
68ca986e 37
38 // Parameters that could be set for generation
5a881c97 39 void SetParticle(Int_t ipart) {fIpart=ipart;};
40 void SetMomentum(Float_t ptot) {fPMin=ptot; fPMax=ptot;};
41 void SetDirection(Float_t zpsrp, Float_t cosx, Float_t cosy, Float_t cosz)
42 {fPseudoRapidity=zpsrp; fCosx=cosx; fCosy=cosy; fCosz=cosz;};
43 void SetFermi(Int_t Fflag) {fFermiflag=Fflag;};
44 void SetDiv(Float_t bmdiv, Float_t bmcra, Int_t iflcr)
45 {fBeamDiv=bmdiv; fBeamCrossAngle=bmcra; fBeamCrossPlane=iflcr;};
03cc1ceb 46 void SetDebug(Int_t idebu) {fDebugOpt = idebu;};
68ca986e 47
48 // Getters
94bf739c 49 Double_t GetFermi2p(Int_t key) const {return fProbintp[key];}
50 Double_t GetFermi2n(Int_t key) const {return fProbintn[key];}
5a881c97 51
68ca986e 52protected:
5a881c97 53 Int_t fIpart; // Particle to be generated
54 Float_t fCosx; // Director cos of the track - x direction
55 Float_t fCosy; // Director cos of the track - y direction
56 Float_t fCosz; // Director cos of the track - z direction
57 Float_t fPseudoRapidity; // Pseudorapidity (!=0 -> eta of the particle)
58 // (=0 -> director cos of the track)
59 Int_t fFermiflag; // Fermi momentum flag (=1 -> Fermi smearing)
60 Float_t fBeamDiv; // Beam divergence (angle in rad)
61 Float_t fBeamCrossAngle; // Beam crossing angle (angle in rad)
62 Int_t fBeamCrossPlane; // Beam crossing plane
63 // (=1 -> horizontal, =2 -> vertical plane)
64 Double_t fProbintp[201]; // Protons momentum distribution due to Fermi
65 Double_t fProbintn[201]; // Neutrons momentum distribution due to Fermi
8a2624cc 66 Double_t fPp[201]; // Spectator momenta
03cc1ceb 67 Int_t fDebugOpt; // Option for debugging [0->No debug, 1->Screen
68 // prints, 2->ASCII data file]
68ca986e 69
13455904 70 private:
71 AliGenZDC(const AliGenZDC & gen);
72 AliGenZDC & operator=(const AliGenZDC & gen);
73
5a881c97 74 ClassDef(AliGenZDC,1) // Generator for AliZDC class
68ca986e 75};
76
77#endif