00001 // -*- C++ -*- 00002 #ifndef RIVET_PL273B181_HH 00003 #define RIVET_PL273B181_HH 00004 00005 #include "Rivet/Analysis.hh" 00006 #include "Rivet/Projections/Multiplicity.hh" 00007 #include "Rivet/RivetAIDA.fhh" 00008 00009 00010 namespace Rivet { 00011 00012 /// This analysis just measures the charged multiplicity. 00013 class PL273B181 : public Analysis { 00014 00015 public: 00016 00017 /// Default constructor. 00018 inline PL273B181() 00019 : _multproj(_fsproj) 00020 { 00021 setBeams(ELECTRON, POSITRON); 00022 addProjection(_fsproj); 00023 addProjection(_multproj); 00024 } 00025 00026 public: 00027 00028 00029 /// Factory method 00030 static Analysis* create() { return new PL273B181(); } 00031 00032 /// Return the name of this analysis. 00033 inline string getName() const { 00034 return "PL273B181"; 00035 } 00036 00037 virtual void init(); 00038 00039 virtual void analyze(const Event & event); 00040 00041 virtual void finalize(); 00042 00043 private: 00044 00045 /// @name The projectors used by this analysis. 00046 //{ 00047 FinalState _fsproj; 00048 00049 Multiplicity _multproj; 00050 //} 00051 00052 private: 00053 00054 /// Hide the assignment operator 00055 PL273B181& operator=(const PL273B181&); 00056 00057 /// @name Histograms 00058 //@{ 00059 AIDA::IHistogram1D* _histChTot; 00060 //@} 00061 00062 }; 00063 00064 } 00065 00066 00067 #endif