ROOT logo
#ifndef ALIGENHEPMCEVENTHEADER_H
#define ALIGENHEPMCEVENTHEADER_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

#include "AliGenEventHeader.h"


class AliGenHepMCEventHeader : public AliGenEventHeader
{
public:
   AliGenHepMCEventHeader();
   AliGenHepMCEventHeader(const char* name);
   AliGenHepMCEventHeader(
         Int_t    Ncoll_hard,                    // Number of hard scatterings
         Int_t    Npart_proj,                    // Number of projectile participants
         Int_t    Npart_targ,                    // Number of target participants
         Int_t    Ncoll,                         // Number of NN (nucleon-nucleon) collisions
         Int_t    spectator_neutrons,            // Number of spectator neutrons
         Int_t    spectator_protons,             // Number of spectator protons
         Int_t    N_Nwounded_collisions,         // Number of N-Nwounded collisions
         Int_t    Nwounded_N_collisions,         // Number of Nwounded-N collisons
         Int_t    Nwounded_Nwounded_collisions,  // Number of Nwounded-Nwounded collisions
         Float_t  impact_parameter,              // Impact Parameter(in fm) of collision
         Float_t  event_plane_angle,             // Azimuthal angle of event plane
         Float_t  eccentricity,                  // eccentricity of participating nucleons in the transverse plane (as in phobos nucl-ex/0510031)
         Float_t  sigma_inel_NN,                 // nucleon-nucleon inelastic (including diffractive) cross-section
         Int_t    id1,        // flavour code of first parton
         Int_t    id2,        // flavour code of second parton
         Int_t    pdf_id1,    // LHAPDF set id of first parton
         Int_t    pdf_id2,    // LHAPDF set id of second parton
         Double_t x1,         // fraction of beam momentum carried by first parton ("beam side")
         Double_t x2,         // fraction of beam momentum carried by second parton ("target side")
         Double_t scalePDF,   // Q-scale used in evaluation of PDF's   (in GeV)
         Double_t pdf1,       // PDF (id1, x1, Q) - x*f(x)
         Double_t pdf2        // PDF (id2, x2, Q) - x*f(x)
   );
   virtual ~AliGenHepMCEventHeader() {}


   Int_t    Ncoll_hard() const {return fNcoll_hard;} // Number of hard scatterings
   Int_t    Npart_proj() const {return fNpart_proj;} // Number of projectile participants
   Int_t    Npart_targ() const {return fNpart_targ;} // Number of target participants
   Int_t    Ncoll() const {return fNcoll;} // Number of NN (nucleon-nucleon) collisions
   Int_t    spectator_neutrons() const {return fspectator_neutrons;} // Number of spectator neutrons
   Int_t    spectator_protons() const {return fspectator_protons;} // Number of spectator protons
   Int_t    N_Nwounded_collisions() const {return fN_Nwounded_collisions;} // Number of N-Nwounded collisions
   Int_t    Nwounded_N_collisions() const {return fNwounded_N_collisions;} // Number of Nwounded-N collisons
   Int_t    Nwounded_Nwounded_collisions() const {return fNwounded_Nwounded_collisions;} // Number of Nwounded-Nwounded collisions
   Float_t  impact_parameter() const {return fimpact_parameter;} // Impact Parameter(in fm) of collision
   Float_t  event_plane_angle() const {return fevent_plane_angle;} // Azimuthal angle of event plane
   Float_t  eccentricity() const {return feccentricity;} // eccentricity of participating nucleons in the transverse plane (as in phobos nucl-ex/0510031)
   Float_t  sigma_inel_NN() const {return fsigma_inel_NN;} // nucleon-nucleon inelastic (including diffractive) cross-section

   Int_t    id1() const {return fid1;} // flavour code of first parton
   Int_t    id2() const {return fid2;} // flavour code of second parton
   Int_t    pdf_id1() const {return fpdf_id1;} // LHAPDF set id of first parton
   Int_t    pdf_id2() const {return fpdf_id2;} // LHAPDF set id of second parton
   Double_t x1() const {return fx1;} // fraction of beam momentum carried by first parton ("beam side")
   Double_t x2() const {return fx2;} // fraction of beam momentum carried by second parton ("target side")
   Double_t scalePDF() const {return fscalePDF;} // Q-scale used in evaluation of PDF's   (in GeV)
   Double_t pdf1() const {return fpdf1;} // PDF (id1, x1, Q) - x*f(x)
   Double_t pdf2() const {return fpdf2;} // PDF (id2, x2, Q) - x*f(x)

   // convenience functions to check if the headers are containing information
   Bool_t   HeavyIonInfoValid();
   Bool_t   PDFValid();

protected:

   Int_t    fNcoll_hard;                    // Number of hard scatterings
   Int_t    fNpart_proj;                    // Number of projectile participants
   Int_t    fNpart_targ;                    // Number of target participants
   Int_t    fNcoll;                         // Number of NN (nucleon-nucleon) collisions
   Int_t    fspectator_neutrons;            // Number of spectator neutrons
   Int_t    fspectator_protons;             // Number of spectator protons
   Int_t    fN_Nwounded_collisions;         // Number of N-Nwounded collisions
   Int_t    fNwounded_N_collisions;         // Number of Nwounded-N collisons
   Int_t    fNwounded_Nwounded_collisions;  // Number of Nwounded-Nwounded collisions
   Float_t  fimpact_parameter;              // Impact Parameter(in fm) of collision
   Float_t  fevent_plane_angle;             // Azimuthal angle of event plane
   Float_t  feccentricity;                  // eccentricity of participating nucleons in the transverse plane (as in phobos nucl-ex/0510031)
   Float_t  fsigma_inel_NN;                 // nucleon-nucleon inelastic (including diffractive) cross-section

   Int_t    fid1;        // flavour code of first parton
   Int_t    fid2;        // flavour code of second parton
   Int_t    fpdf_id1;    // LHAPDF set id of first parton
   Int_t    fpdf_id2;    // LHAPDF set id of second parton
   Double_t fx1;         // fraction of beam momentum carried by first parton ("beam side")
   Double_t fx2;         // fraction of beam momentum carried by second parton ("target side")
   Double_t fscalePDF;   // Q-scale used in evaluation of PDF's   (in GeV)
   Double_t fpdf1;       // PDF (id1, x1, Q) - x*f(x)
   Double_t fpdf2;       // PDF (id2, x2, Q) - x*f(x)

   ClassDef(AliGenHepMCEventHeader, 2)  // Event header for HepMC event
};



#endif
 AliGenHepMCEventHeader.h:1
 AliGenHepMCEventHeader.h:2
 AliGenHepMCEventHeader.h:3
 AliGenHepMCEventHeader.h:4
 AliGenHepMCEventHeader.h:5
 AliGenHepMCEventHeader.h:6
 AliGenHepMCEventHeader.h:7
 AliGenHepMCEventHeader.h:8
 AliGenHepMCEventHeader.h:9
 AliGenHepMCEventHeader.h:10
 AliGenHepMCEventHeader.h:11
 AliGenHepMCEventHeader.h:12
 AliGenHepMCEventHeader.h:13
 AliGenHepMCEventHeader.h:14
 AliGenHepMCEventHeader.h:15
 AliGenHepMCEventHeader.h:16
 AliGenHepMCEventHeader.h:17
 AliGenHepMCEventHeader.h:18
 AliGenHepMCEventHeader.h:19
 AliGenHepMCEventHeader.h:20
 AliGenHepMCEventHeader.h:21
 AliGenHepMCEventHeader.h:22
 AliGenHepMCEventHeader.h:23
 AliGenHepMCEventHeader.h:24
 AliGenHepMCEventHeader.h:25
 AliGenHepMCEventHeader.h:26
 AliGenHepMCEventHeader.h:27
 AliGenHepMCEventHeader.h:28
 AliGenHepMCEventHeader.h:29
 AliGenHepMCEventHeader.h:30
 AliGenHepMCEventHeader.h:31
 AliGenHepMCEventHeader.h:32
 AliGenHepMCEventHeader.h:33
 AliGenHepMCEventHeader.h:34
 AliGenHepMCEventHeader.h:35
 AliGenHepMCEventHeader.h:36
 AliGenHepMCEventHeader.h:37
 AliGenHepMCEventHeader.h:38
 AliGenHepMCEventHeader.h:39
 AliGenHepMCEventHeader.h:40
 AliGenHepMCEventHeader.h:41
 AliGenHepMCEventHeader.h:42
 AliGenHepMCEventHeader.h:43
 AliGenHepMCEventHeader.h:44
 AliGenHepMCEventHeader.h:45
 AliGenHepMCEventHeader.h:46
 AliGenHepMCEventHeader.h:47
 AliGenHepMCEventHeader.h:48
 AliGenHepMCEventHeader.h:49
 AliGenHepMCEventHeader.h:50
 AliGenHepMCEventHeader.h:51
 AliGenHepMCEventHeader.h:52
 AliGenHepMCEventHeader.h:53
 AliGenHepMCEventHeader.h:54
 AliGenHepMCEventHeader.h:55
 AliGenHepMCEventHeader.h:56
 AliGenHepMCEventHeader.h:57
 AliGenHepMCEventHeader.h:58
 AliGenHepMCEventHeader.h:59
 AliGenHepMCEventHeader.h:60
 AliGenHepMCEventHeader.h:61
 AliGenHepMCEventHeader.h:62
 AliGenHepMCEventHeader.h:63
 AliGenHepMCEventHeader.h:64
 AliGenHepMCEventHeader.h:65
 AliGenHepMCEventHeader.h:66
 AliGenHepMCEventHeader.h:67
 AliGenHepMCEventHeader.h:68
 AliGenHepMCEventHeader.h:69
 AliGenHepMCEventHeader.h:70
 AliGenHepMCEventHeader.h:71
 AliGenHepMCEventHeader.h:72
 AliGenHepMCEventHeader.h:73
 AliGenHepMCEventHeader.h:74
 AliGenHepMCEventHeader.h:75
 AliGenHepMCEventHeader.h:76
 AliGenHepMCEventHeader.h:77
 AliGenHepMCEventHeader.h:78
 AliGenHepMCEventHeader.h:79
 AliGenHepMCEventHeader.h:80
 AliGenHepMCEventHeader.h:81
 AliGenHepMCEventHeader.h:82
 AliGenHepMCEventHeader.h:83
 AliGenHepMCEventHeader.h:84
 AliGenHepMCEventHeader.h:85
 AliGenHepMCEventHeader.h:86
 AliGenHepMCEventHeader.h:87
 AliGenHepMCEventHeader.h:88
 AliGenHepMCEventHeader.h:89
 AliGenHepMCEventHeader.h:90
 AliGenHepMCEventHeader.h:91
 AliGenHepMCEventHeader.h:92
 AliGenHepMCEventHeader.h:93
 AliGenHepMCEventHeader.h:94
 AliGenHepMCEventHeader.h:95
 AliGenHepMCEventHeader.h:96
 AliGenHepMCEventHeader.h:97
 AliGenHepMCEventHeader.h:98
 AliGenHepMCEventHeader.h:99
 AliGenHepMCEventHeader.h:100
 AliGenHepMCEventHeader.h:101
 AliGenHepMCEventHeader.h:102
 AliGenHepMCEventHeader.h:103