herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
LEPBMultiplicity.h
1 // -*- C++ -*-
2 //
3 // LEPBMultiplicity.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2017 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef HERWIG_LEPBMultiplicity_H
10 #define HERWIG_LEPBMultiplicity_H
11 //
12 // This is the declaration of the LEPBMultiplicity class.
13 //
14 
15 #include "ThePEG/Handlers/AnalysisHandler.h"
16 
17 namespace Herwig {
18 
19 using namespace ThePEG;
20 
21 
25 struct BranchingInfo {
31  BranchingInfo(double mult=0.,double error=0.);
32 
36  double obsBranching;
37 
41  double obsError;
42 
47 
51  double sumofsquares;
52 
58  double simBranching(long N,BranchingInfo den=BranchingInfo());
59 
65  double simError(long N,BranchingInfo den=BranchingInfo());
66 
72  double nSigma(long N,BranchingInfo den=BranchingInfo());
73 
79  string bargraph(long N,BranchingInfo den=BranchingInfo());
80 };
81 
91 
92 public:
93 
98 
99 public:
100 
120  virtual void analyze(tEventPtr event, long ieve, int loop, int state);
122 
123 public:
124 
131  static void Init();
132 
133 protected:
134 
141  virtual IBPtr clone() const {return new_ptr(*this);}
142 
147  virtual IBPtr fullclone() const {return new_ptr(*this);}
149 
150 protected:
151 
158  virtual void dofinish();
160 
161 private:
162 
168 
173  LEPBMultiplicity & operator=(const LEPBMultiplicity &) = delete;
174 
175 private:
176 
180  map<long,BranchingInfo> _data;
181 };
182 
183 }
184 
185 #include "ThePEG/Utilities/ClassTraits.h"
186 
187 namespace ThePEG {
188 
193 template <>
194 struct BaseClassTrait<Herwig::LEPBMultiplicity,1> {
196  typedef AnalysisHandler NthBase;
197 };
198 
201 template <>
202 struct ClassTraits<Herwig::LEPBMultiplicity>
203  : public ClassTraitsBase<Herwig::LEPBMultiplicity> {
205  static string className() { return "Herwig::LEPBMultiplicity"; }
213  static string library() { return "HwAnalysis.so"; }
214 };
215 
218 }
219 
220 #endif /* HERWIG_LEPBMultiplicity_H */
double obsBranching
The observed multiplicity.
static NoPIOClassDescription< LEPBMultiplicity > initLEPBMultiplicity
The static object used to initialize the description of this class.
The LEPBBMultiplicity class is designed to compare the production rates of , , and B-baryons in B ev...
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual IBPtr clone() const
Make a simple clone of this object.
Struct for the multiplcity data.
ThePEG::Ptr< Event >::transient_pointer tEventPtr
long actualCount
Number of particles of this type.
-*- C++ -*-
double sumofsquares
Sum of squares of number per event for error.
double obsError
The error on the observed multiplicity.
map< long, BranchingInfo > _data
Map of PDG codes to multiplicity info.