ParisiTensor.hh
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #ifndef RIVET_ParisiTensor_HH 00003 #define RIVET_ParisiTensor_HH 00004 00005 #include "Rivet/Projection.hh" 00006 #include "Rivet/Projections/FinalState.hh" 00007 #include "Rivet/Projections/Sphericity.hh" 00008 #include "Rivet/Event.hh" 00009 00010 namespace Rivet { 00011 00012 00013 /// @brief Calculate the Parisi event shape tensor (or linear momentum tensor). 00014 /// 00015 /// The Parisi event shape C and D variables are derived from the eigenvalues of 00016 /// the linear momentum tensor 00017 /// \f[ 00018 /// \theta^{\alpha \beta} = 00019 /// \frac{\sum_i \frac{p_i^\alpha p_i^\beta}{|\mathbf{p}_i|}} 00020 /// {\sum_i |\mathbf{p}_i|} 00021 /// \f] 00022 /// which is actually a linearized (and hence infra-red safe) version of the 00023 /// {@link Sphericity} tensor. 00024 /// 00025 /// Defining the three eigenvalues of \f$\theta\f$ 00026 /// \f$ \lambda_1 \ge \lambda_2 \ge \lambda_3 \f$, with \f$ \lambda_1 + \lambda_2 + \lambda_3 = 1 \f$, 00027 /// the C and D parameters are defined as 00028 /// \f[ 00029 /// C = 3(\lambda_1\lambda_2 + \lambda_1\lambda_3 + \lambda_2\lambda_3) 00030 /// \f] 00031 /// and 00032 /// \f[ 00033 /// D = 27 \lambda_1\lambda_2\lambda_3 00034 /// \f] 00035 /// 00036 /// Internally, this Projection uses the Sphericity projection with the generalising 00037 /// \f$r\f$ parameter set to 1. 00038 /// 00039 class ParisiTensor : public Projection { 00040 public: 00041 00042 /// Constructor. The provided FinalState projection must live throughout the run. 00043 ParisiTensor(const FinalState& fsp) 00044 { 00045 setName("ParisiTensor"); 00046 addProjection(fsp, "FS"); 00047 addProjection(Sphericity(fsp, 1.0), "Sphericity"); 00048 clear(); 00049 } 00050 00051 /// Clone on the heap. 00052 DEFAULT_RIVET_PROJ_CLONE(ParisiTensor); 00053 00054 00055 protected: 00056 00057 /// Perform the projection on the Event. 00058 void project(const Event& e); 00059 00060 /// Compare with other projections. 00061 int compare(const Projection& p) const; 00062 00063 00064 public: 00065 00066 /// Clear the projection. 00067 void clear(); 00068 00069 00070 public: 00071 00072 /// @name Access the C and D params. 00073 ///@{ 00074 double C() const { return _C; } 00075 double D() const { return _D; } 00076 ///@} 00077 00078 /// @name Access the eigenvalues of \f$\theta\f$. 00079 ///@{ 00080 double lambda1() const { return _lambda[0]; } 00081 double lambda2() const { return _lambda[1]; } 00082 double lambda3() const { return _lambda[2]; } 00083 ///@} 00084 00085 00086 private: 00087 00088 /// The Parisi event shape variables. 00089 double _C, _D; 00090 00091 /// Eigenvalues. 00092 double _lambda[3]; 00093 00094 }; 00095 00096 00097 } 00098 00099 00100 #endif Generated on Tue Dec 13 2016 16:32:39 for The Rivet MC analysis system by ![]() |