Rivet  3.1.3
HepMCHeavyIon.hh
1 // -*- C++ -*-
2 #ifndef RIVET_HepMCHeavyIon_HH
3 #define RIVET_HepMCHeavyIon_HH
4 
5 #include "Rivet/Projection.hh"
6 #include "Rivet/Tools/RivetHepMC.hh"
7 #include "Rivet/Event.hh"
8 
9 namespace Rivet {
10 
11 
12  class HepMCHeavyIon : public Projection {
13  public:
14 
16 
17 
19  HepMCHeavyIon();
20 
23 
25 
26 
27  protected:
28 
30  void project(const Event& e);
31 
33  //int compare(const Projection& p) const;
34  // Taken from Thrust.hh
35  CmpState compare(const Projection& p) const {
36  return CmpState::EQ;
37  }
38 
39  public:
40 
42  bool ok() const { return _hi != nullptr; }
43 
49  int Ncoll_hard() const;
50 
56  int Npart_proj() const;
57 
63  int Npart_targ() const;
64 
72  int Ncoll() const;
78  int N_Nwounded_collisions() const;
79 
85  int Nwounded_N_collisions() const;
86 
92  int Nwounded_Nwounded_collisions() const;
93 
98  double impact_parameter() const;
99 
106  double event_plane_angle() const;
112  double sigma_inel_NN() const;
113 
119  double centrality() const;
120 
128  double user_cent_estimate() const;
129 
135  int Nspec_proj_n() const;
136 
142  int Nspec_targ_n() const;
143 
149  int Nspec_proj_p() const;
150 
156  int Nspec_targ_p() const;
157 
163  map<int,double> participant_plane_angles() const;
164 
169  map<int,double> eccentricities() const;
170 
171  private:
172 
174  ConstGenHeavyIonPtr _hi;
175 
176  };
177 }
178 
179 
180 #endif
Definition: MC_Cent_pPb.hh:10
int Nspec_targ_n() const
The number of spectator neutrons in the target.
DEFAULT_RIVET_PROJ_CLONE(HepMCHeavyIon)
Clone on the heap.
int Ncoll() const
the number of inelastic nucleon-nucleon collisions.
double sigma_inel_NN() const
The assumed inelastic nucleon-nucleon cross section.
int Npart_targ() const
the number of participating nucleons in the target.
int Nwounded_N_collisions() const
Collisions with a diffractively excited projectile nucleon.
Definition: HepMCHeavyIon.hh:12
void project(const Event &e)
Perform the projection on the Event.
double event_plane_angle() const
The event plane angle.
double centrality() const
The centrality.
Representation of a HepMC event, and enabler of Projection caching.
Definition: Event.hh:22
int Nspec_targ_p() const
The number of spectator protons in the target.
double impact_parameter() const
The impact parameter.
int Nspec_proj_p() const
The number of spectator protons in the projectile.
int Npart_proj() const
the number of participating nucleons in the projectile.
map< int, double > participant_plane_angles() const
Participant plane angles.
HepMCHeavyIon()
Constructor.
int Nwounded_Nwounded_collisions() const
Non-diffractive or doubly diffractive collisions.
int N_Nwounded_collisions() const
Collisions with a diffractively excited target nucleon.
double user_cent_estimate() const
A user defined centrality estimator.
int Ncoll_hard() const
the number of hard nucleon-nucleon collisions.
CmpState compare(const Projection &p) const
Compare with other projections.
Definition: HepMCHeavyIon.hh:35
Base class for all Rivet projections.
Definition: Projection.hh:29
int Nspec_proj_n() const
The number of spectator neutrons in the projectile.
bool ok() const
Check that there were at all any heavy ion info in HepMC.
Definition: HepMCHeavyIon.hh:42
map< int, double > eccentricities() const
Eccentricities.