![]() |
|
|||
File indexing completed on 2025-05-12 09:05:03
0001 // -*- C++ -*- 0002 #ifndef RIVET_ParisiTensor_HH 0003 #define RIVET_ParisiTensor_HH 0004 0005 #include "Rivet/Projection.hh" 0006 #include "Rivet/Projections/FinalState.hh" 0007 #include "Rivet/Projections/Sphericity.hh" 0008 #include "Rivet/Event.hh" 0009 0010 namespace Rivet { 0011 0012 0013 /// @brief Calculate the Parisi event shape tensor (or linear momentum tensor). 0014 /// 0015 /// The Parisi event shape C and D variables are derived from the eigenvalues of 0016 /// the linear momentum tensor 0017 /// \f[ 0018 /// \theta^{\alpha \beta} = 0019 /// \frac{\sum_i \frac{p_i^\alpha p_i^\beta}{|\mathbf{p}_i|}} 0020 /// {\sum_i |\mathbf{p}_i|} 0021 /// \f] 0022 /// which is actually a linearized (and hence infra-red safe) version of the 0023 /// {@link Sphericity} tensor. 0024 /// 0025 /// Defining the three eigenvalues of \f$\theta\f$ 0026 /// \f$ \lambda_1 \ge \lambda_2 \ge \lambda_3 \f$, with \f$ \lambda_1 + \lambda_2 + \lambda_3 = 1 \f$, 0027 /// the C and D parameters are defined as 0028 /// \f[ 0029 /// C = 3(\lambda_1\lambda_2 + \lambda_1\lambda_3 + \lambda_2\lambda_3) 0030 /// \f] 0031 /// and 0032 /// \f[ 0033 /// D = 27 \lambda_1\lambda_2\lambda_3 0034 /// \f] 0035 /// 0036 /// Internally, this Projection uses the Sphericity projection with the generalising 0037 /// \f$r\f$ parameter set to 1. 0038 /// 0039 class ParisiTensor : public Projection { 0040 public: 0041 0042 /// Constructor. The provided FinalState projection must live throughout the run. 0043 ParisiTensor(const FinalState& fsp) 0044 { 0045 setName("ParisiTensor"); 0046 declare(fsp, "FS"); 0047 declare(Sphericity(fsp, 1.0), "Sphericity"); 0048 clear(); 0049 } 0050 0051 /// Clone on the heap. 0052 RIVET_DEFAULT_PROJ_CLONE(ParisiTensor); 0053 0054 /// Import to avoid warnings about overload-hiding 0055 using Projection::operator =; 0056 0057 0058 protected: 0059 0060 /// Perform the projection on the Event. 0061 void project(const Event& e); 0062 0063 /// Compare with other projections. 0064 CmpState compare(const Projection& p) const; 0065 0066 0067 public: 0068 0069 /// Clear the projection. 0070 void clear(); 0071 0072 0073 public: 0074 0075 /// @name Access the C and D params. 0076 /// @{ 0077 double C() const { return _C; } 0078 double D() const { return _D; } 0079 /// @} 0080 0081 /// @name Access the eigenvalues of \f$\theta\f$. 0082 /// @{ 0083 double lambda1() const { return _lambda[0]; } 0084 double lambda2() const { return _lambda[1]; } 0085 double lambda3() const { return _lambda[2]; } 0086 /// @} 0087 0088 0089 protected: 0090 0091 /// The Parisi event shape variables. 0092 double _C, _D; 0093 0094 /// Eigenvalues. 0095 double _lambda[3]; 0096 0097 }; 0098 0099 0100 } 0101 0102 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |