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