FParameter.hh
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #ifndef RIVET_FParameter_HH 00003 #define RIVET_FParameter_HH 00004 00005 #include "Rivet/Projection.hh" 00006 #include "Rivet/Projections/FinalState.hh" 00007 #include "Rivet/Event.hh" 00008 00009 namespace Rivet { 00010 00011 00012 class FParameter : public Projection { 00013 public: 00014 00015 /// @name Constructors etc. 00016 //@{ 00017 00018 /// Constructor 00019 FParameter(const FinalState& fsp); 00020 00021 /// Clone on the heap. 00022 DEFAULT_RIVET_PROJ_CLONE(FParameter); 00023 00024 //@} 00025 00026 00027 protected: 00028 00029 /// Perform the projection on the Event 00030 void project(const Event& e); 00031 00032 /// Compare with other projections 00033 //int compare(const Projection& p) const; 00034 // Taken from Thrust.hh 00035 int compare(const Projection& p) const { 00036 return mkNamedPCmp(p, "FS"); 00037 } 00038 public: 00039 00040 /// Reset the projection 00041 void clear(); 00042 00043 /// @name Access the event shapes by name 00044 /// @{ 00045 /// F-Parametr 00046 double F() const { return lambda1() >= lambda2() ? lambda2()/lambda1() : lambda1()/lambda2(); } 00047 /// @} 00048 00049 /// @name Access the linearised transverse momentum tensor eigenvalues 00050 /// @{ 00051 double lambda1() const { return _lambdas[0]; } 00052 double lambda2() const { return _lambdas[1]; } 00053 /// @} 00054 00055 00056 /// @name Direct methods 00057 /// Ways to do the calculation directly, without engaging the caching system 00058 //@{ 00059 00060 /// Manually calculate the sphericity, without engaging the caching system 00061 void calc(const FinalState& fs); 00062 00063 /// Manually calculate the sphericity, without engaging the caching system 00064 void calc(const vector<Particle>& fsparticles); 00065 00066 /// Manually calculate the sphericity, without engaging the caching system 00067 void calc(const vector<FourMomentum>& fsmomenta); 00068 00069 /// Manually calculate the sphericity, without engaging the caching system 00070 void calc(const vector<Vector3>& fsmomenta); 00071 00072 //@} 00073 private: 00074 /// Eigenvalues. 00075 vector<double> _lambdas; 00076 00077 private: 00078 00079 /// Actually do the calculation 00080 void _calcFParameter(const vector<Vector3>& fsmomenta); 00081 00082 }; 00083 } 00084 00085 00086 #endif Generated on Tue Dec 13 2016 16:32:38 for The Rivet MC analysis system by ![]() |