]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliSlowNucleonModelExp.h
add common abstract interface classes for flat and fat ESDs
[u/mrichter/AliRoot.git] / EVGEN / AliSlowNucleonModelExp.h
1 #ifndef ALISLOWNUCLEONMODELEXP_H
2 #define ALISLOWNUCLEONMODELEXP_H
3 /* Copyright(c) 198-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //
9 // Experimental data inspired Gray Particle Model for p-Pb collisions
10 // Fluctuations are calculated from a binomial distribution.
11 // Author: A.Morsch
12 //
13
14 #include "AliSlowNucleonModel.h"
15
16 class AliCollisionGeometry;
17
18 class AliSlowNucleonModelExp : public AliSlowNucleonModel
19 {
20  public:
21     AliSlowNucleonModelExp();
22     virtual ~AliSlowNucleonModelExp(){;}
23     virtual void GetNumberOfSlowNucleons(AliCollisionGeometry* geo,
24                                          Int_t& ngp, Int_t& ngn, Int_t& nbp, Int_t& nbn) const;
25     virtual void GetNumberOfSlowNucleons2(AliCollisionGeometry* geo,
26                                          Int_t& ngp, Int_t& ngn, Int_t& nbp, Int_t& nbn) const;
27     virtual void GetNumberOfSlowNucleons2s(AliCollisionGeometry* geo,
28                                          Int_t& ngp, Int_t& ngn, Int_t& nbp, Int_t& nbn) const;
29     // 1st model
30     virtual void SetParameters(Float_t alpha1, Float_t alpha2);
31     virtual void SetSaturation(Bool_t saturation) {fApplySaturation = saturation;}
32     virtual void SetSaturationParams(Int_t ngray=15, Int_t nblack=28) 
33                 {fnGraySaturation=ngray; fnBlackSaturation=nblack;}
34     // 2nd model
35     virtual void SetLCPparam(Float_t al) {fLCPparam=al;}
36     virtual void SetNslowParams(Float_t a, Float_t b, Float_t c) 
37                 {fSlownparam[0]=a; fSlownparam[1]=b; fSlownparam[2]=c;}
38     
39  protected:
40     Float_t  fP;          // Number of protons  in the target 
41     Float_t  fN;          // Number of neutrons in the target
42     Float_t  fAlphaGray;  // Proportionality between gray   particles and number of collisions
43     Float_t  fAlphaBlack; // Proportionality between black  particles and number of collisions
44     Bool_t   fApplySaturation;  // If true apply satoration to N_black vs. N_gray
45     Int_t    fnGraySaturation;  // N_gray value for N_black saturation
46     Int_t    fnBlackSaturation; // N_black saturation value
47     //
48     // Adding parameters for 2nd model that can be tuned during config
49     Float_t  fLCPparam;         // parameter to calculate LCP from <Nslow p>
50     Float_t  fSlownparam[3];    // parameters to calculate <Nslow n> from LCP
51     //
52     // Adding parameter to smear the number of slow nucleons
53     Float_t  fSigmaSmear;
54     
55     
56   ClassDef(AliSlowNucleonModelExp, 4) // Gray Particle Model (Experiment inspired)
57 };
58 #endif
59
60
61
62
63
64
65