00001 // -*- C++ -*- 00002 #ifndef RIVET_ZPHYS73C11_HH 00003 #define RIVET_ZPHYS73C11_HH 00004 00005 #include "Rivet/Analysis.hh" 00006 #include "Rivet/Projections/Beam.hh" 00007 #include "Rivet/Projections/Sphericity.hh" 00008 #include "Rivet/Projections/Thrust.hh" 00009 #include "Rivet/Projections/ParisiTensor.hh" 00010 #include "Rivet/Projections/Hemispheres.hh" 00011 #include "Rivet/Projections/FinalState.hh" 00012 #include "Rivet/Projections/ChargedFinalState.hh" 00013 #include "Rivet/RivetAIDA.fhh" 00014 00015 00016 namespace Rivet { 00017 00018 00019 /// Implementation of DELPHI event shape paper 00020 class ZPhys73C11 : public Analysis { 00021 00022 public: 00023 00024 /// Default constructor. 00025 inline ZPhys73C11() 00026 : _cnfsproj(), _cfsproj(_cnfsproj), 00027 _cspherproj(_cfsproj), _cnspherproj(_cnfsproj), 00028 _thrustproj(_cfsproj), 00029 _parisiproj(_cfsproj), 00030 _hemiproj(_cfsproj) 00031 { 00032 setBeams(ELECTRON, POSITRON); 00033 addProjection(_cfsproj); 00034 addProjection(_cnfsproj); 00035 addProjection(_beamsproj); 00036 addProjection(_cspherproj); 00037 addProjection(_cnspherproj); 00038 addProjection(_thrustproj); 00039 addProjection(_parisiproj); 00040 addProjection(_hemiproj); 00041 } 00042 00043 /// Factory method. 00044 static Analysis* create() { 00045 return new ZPhys73C11(); 00046 } 00047 00048 /// Get the name of this analysis. 00049 inline string getName() const { 00050 return "ZPhys73C11"; 00051 } 00052 00053 virtual void init(); 00054 00055 virtual void analyze(const Event& event); 00056 00057 virtual void finalize(); 00058 00059 00060 private: 00061 00062 /// Hide the assignment operator 00063 ZPhys73C11& operator=(const ZPhys73C11&); 00064 00065 00066 private: 00067 00068 /// The final state projector. 00069 FinalState _cnfsproj; 00070 00071 /// Charged final state projector. 00072 ChargedFinalState _cfsproj; 00073 00074 /// Projection to get the beams. 00075 Beam _beamsproj; 00076 00077 /// Sphericity projection for charged particles. 00078 Sphericity _cspherproj; 00079 00080 /// Sphericity projection for all particles. 00081 Sphericity _cnspherproj; 00082 00083 /// Thrust projection. 00084 Thrust _thrustproj; 00085 00086 /// Parisi tensor (C and D params) projection. 00087 ParisiTensor _parisiproj; 00088 00089 /// Projection to calculate event hemisphere masses and broadenings. 00090 Hemispheres _hemiproj; 00091 00092 00093 /// @name Histograms 00094 //@{ 00095 AIDA::IHistogram1D* _histLogScaledMom; 00096 AIDA::IHistogram1D* _histScaledMom; 00097 AIDA::IHistogram1D* _histRapidityT; 00098 AIDA::IHistogram1D* _histRapidityS; 00099 AIDA::IHistogram1D* _histPtTIn; 00100 AIDA::IHistogram1D* _histPtTOut; 00101 AIDA::IHistogram1D* _histPtTInVsXp; 00102 AIDA::IHistogram1D* _histPtTOutVsXp; 00103 00104 AIDA::IHistogram1D* _hist1MinusT; 00105 AIDA::IHistogram1D* _histTMajor; 00106 AIDA::IHistogram1D* _histTMinor; 00107 AIDA::IHistogram1D* _histOblateness; 00108 00109 AIDA::IHistogram1D* _histDiffRate2Durham; 00110 AIDA::IHistogram1D* _histDiffRate2Jade; 00111 AIDA::IHistogram1D* _histDiffRate2JadeCN; 00112 AIDA::IHistogram1D* _histDiffRate3Durham; 00113 AIDA::IHistogram1D* _histDiffRate3Jade; 00114 AIDA::IHistogram1D* _histDiffRate3JadeCN; 00115 AIDA::IHistogram1D* _histDiffRate4Durham; 00116 AIDA::IHistogram1D* _histDiffRate4Jade; 00117 00118 AIDA::IHistogram1D* _histSphericity; 00119 AIDA::IHistogram1D* _histAplanarity; 00120 AIDA::IHistogram1D* _histPlanarity; 00121 AIDA::IHistogram1D* _histSphericityCN; 00122 AIDA::IHistogram1D* _histAplanarityCN; 00123 00124 AIDA::IHistogram1D* _histHemiMassD; 00125 AIDA::IHistogram1D* _histHemiMassH; 00126 AIDA::IHistogram1D* _histHemiMassL; 00127 00128 AIDA::IHistogram1D* _histHemiBroadW; 00129 AIDA::IHistogram1D* _histHemiBroadN; 00130 AIDA::IHistogram1D* _histHemiBroadT; 00131 AIDA::IHistogram1D* _histHemiBroadD; 00132 00133 AIDA::IHistogram1D* _histCParam; 00134 AIDA::IHistogram1D* _histDParam; 00135 00136 AIDA::IHistogram1D* _histEEC; 00137 AIDA::IHistogram1D* _histAEEC; 00138 //@} 00139 00140 }; 00141 00142 } 00143 00144 #endif