00001 // -*- C++ -*- 00002 00003 #include "Rivet/Projections/ParisiTensor.hh" 00004 #include "Rivet/Cmp.hh" 00005 #include "Rivet/RivetCLHEP.hh" 00006 00007 using namespace Rivet; 00008 using namespace std; 00009 00010 00011 int ParisiTensor::compare(const Projection& p) const { 00012 const ParisiTensor& other = dynamic_cast<const ParisiTensor&>(p); 00013 int sphcmp = pcmp(_sphproj, other._sphproj); 00014 return sphcmp; 00015 } 00016 00017 00018 // RivetInfo ParisiTensor::getInfo() const { 00019 // return Projection::getInfo() + _sphproj.getInfo(); 00020 // } 00021 00022 00023 void ParisiTensor::project(const Event & e) { 00024 // Apply sphericity projection to event 00025 Sphericity sph = e.applyProjection(_sphproj); 00026 00027 // Set parameters 00028 _lambda[0] = sph.lambda1(); 00029 _lambda[1] = sph.lambda2(); 00030 _lambda[2] = sph.lambda3(); 00031 _C = 3 * ( lambda1()*lambda2() + lambda1()*lambda3() + lambda2()*lambda3() ); 00032 _D = 27 * lambda1() * lambda2() * lambda3(); 00033 00034 }