Update master to aliroot
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliGenHepMCEventHeader.h
1 #ifndef ALIGENHEPMCEVENTHEADER_H
2 #define ALIGENHEPMCEVENTHEADER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 #include "AliGenEventHeader.h"
10
11
12 class AliGenHepMCEventHeader : public AliGenEventHeader
13 {
14 public:
15    AliGenHepMCEventHeader();
16    AliGenHepMCEventHeader(const char* name);
17    AliGenHepMCEventHeader(
18          Int_t    Ncoll_hard,                    // Number of hard scatterings
19          Int_t    Npart_proj,                    // Number of projectile participants
20          Int_t    Npart_targ,                    // Number of target participants
21          Int_t    Ncoll,                         // Number of NN (nucleon-nucleon) collisions
22          Int_t    spectator_neutrons,            // Number of spectator neutrons
23          Int_t    spectator_protons,             // Number of spectator protons
24          Int_t    N_Nwounded_collisions,         // Number of N-Nwounded collisions
25          Int_t    Nwounded_N_collisions,         // Number of Nwounded-N collisons
26          Int_t    Nwounded_Nwounded_collisions,  // Number of Nwounded-Nwounded collisions
27          Float_t  impact_parameter,              // Impact Parameter(in fm) of collision
28          Float_t  event_plane_angle,             // Azimuthal angle of event plane
29          Float_t  eccentricity,                  // eccentricity of participating nucleons in the transverse plane (as in phobos nucl-ex/0510031)
30          Float_t  sigma_inel_NN,                 // nucleon-nucleon inelastic (including diffractive) cross-section
31          Int_t    id1,        // flavour code of first parton
32          Int_t    id2,        // flavour code of second parton
33          Int_t    pdf_id1,    // LHAPDF set id of first parton
34          Int_t    pdf_id2,    // LHAPDF set id of second parton
35          Double_t x1,         // fraction of beam momentum carried by first parton ("beam side")
36          Double_t x2,         // fraction of beam momentum carried by second parton ("target side")
37          Double_t scalePDF,   // Q-scale used in evaluation of PDF's   (in GeV)
38          Double_t pdf1,       // PDF (id1, x1, Q) - x*f(x)
39          Double_t pdf2        // PDF (id2, x2, Q) - x*f(x)
40    );
41    virtual ~AliGenHepMCEventHeader() {}
42
43
44    Int_t    Ncoll_hard() const {return fNcoll_hard;} // Number of hard scatterings
45    Int_t    Npart_proj() const {return fNpart_proj;} // Number of projectile participants
46    Int_t    Npart_targ() const {return fNpart_targ;} // Number of target participants
47    Int_t    Ncoll() const {return fNcoll;} // Number of NN (nucleon-nucleon) collisions
48    Int_t    spectator_neutrons() const {return fspectator_neutrons;} // Number of spectator neutrons
49    Int_t    spectator_protons() const {return fspectator_protons;} // Number of spectator protons
50    Int_t    N_Nwounded_collisions() const {return fN_Nwounded_collisions;} // Number of N-Nwounded collisions
51    Int_t    Nwounded_N_collisions() const {return fNwounded_N_collisions;} // Number of Nwounded-N collisons
52    Int_t    Nwounded_Nwounded_collisions() const {return fNwounded_Nwounded_collisions;} // Number of Nwounded-Nwounded collisions
53    Float_t  impact_parameter() const {return fimpact_parameter;} // Impact Parameter(in fm) of collision
54    Float_t  event_plane_angle() const {return fevent_plane_angle;} // Azimuthal angle of event plane
55    Float_t  eccentricity() const {return feccentricity;} // eccentricity of participating nucleons in the transverse plane (as in phobos nucl-ex/0510031)
56    Float_t  sigma_inel_NN() const {return fsigma_inel_NN;} // nucleon-nucleon inelastic (including diffractive) cross-section
57
58    Int_t    id1() const {return fid1;} // flavour code of first parton
59    Int_t    id2() const {return fid2;} // flavour code of second parton
60    Int_t    pdf_id1() const {return fpdf_id1;} // LHAPDF set id of first parton
61    Int_t    pdf_id2() const {return fpdf_id2;} // LHAPDF set id of second parton
62    Double_t x1() const {return fx1;} // fraction of beam momentum carried by first parton ("beam side")
63    Double_t x2() const {return fx2;} // fraction of beam momentum carried by second parton ("target side")
64    Double_t scalePDF() const {return fscalePDF;} // Q-scale used in evaluation of PDF's   (in GeV)
65    Double_t pdf1() const {return fpdf1;} // PDF (id1, x1, Q) - x*f(x)
66    Double_t pdf2() const {return fpdf2;} // PDF (id2, x2, Q) - x*f(x)
67
68    // convenience functions to check if the headers are containing information
69    Bool_t   HeavyIonInfoValid();
70    Bool_t   PDFValid();
71
72 protected:
73
74    Int_t    fNcoll_hard;                    // Number of hard scatterings
75    Int_t    fNpart_proj;                    // Number of projectile participants
76    Int_t    fNpart_targ;                    // Number of target participants
77    Int_t    fNcoll;                         // Number of NN (nucleon-nucleon) collisions
78    Int_t    fspectator_neutrons;            // Number of spectator neutrons
79    Int_t    fspectator_protons;             // Number of spectator protons
80    Int_t    fN_Nwounded_collisions;         // Number of N-Nwounded collisions
81    Int_t    fNwounded_N_collisions;         // Number of Nwounded-N collisons
82    Int_t    fNwounded_Nwounded_collisions;  // Number of Nwounded-Nwounded collisions
83    Float_t  fimpact_parameter;              // Impact Parameter(in fm) of collision
84    Float_t  fevent_plane_angle;             // Azimuthal angle of event plane
85    Float_t  feccentricity;                  // eccentricity of participating nucleons in the transverse plane (as in phobos nucl-ex/0510031)
86    Float_t  fsigma_inel_NN;                 // nucleon-nucleon inelastic (including diffractive) cross-section
87
88    Int_t    fid1;        // flavour code of first parton
89    Int_t    fid2;        // flavour code of second parton
90    Int_t    fpdf_id1;    // LHAPDF set id of first parton
91    Int_t    fpdf_id2;    // LHAPDF set id of second parton
92    Double_t fx1;         // fraction of beam momentum carried by first parton ("beam side")
93    Double_t fx2;         // fraction of beam momentum carried by second parton ("target side")
94    Double_t fscalePDF;   // Q-scale used in evaluation of PDF's   (in GeV)
95    Double_t fpdf1;       // PDF (id1, x1, Q) - x*f(x)
96    Double_t fpdf2;       // PDF (id2, x2, Q) - x*f(x)
97
98    ClassDef(AliGenHepMCEventHeader, 2)  // Event header for HepMC event
99 };
100
101
102
103 #endif