Get the transverse spherocity scalars for hadron-colliders. More...
#include <Spherocity.hh>
Public Member Functions | |
Spherocity (const FinalState &fsp) | |
Constructor. | |
virtual const Projection * | clone () const |
Clone on the heap. | |
bool | before (const Projection &p) const |
virtual const std::set< PdgIdPair > | beamPairs () const |
virtual std::string | name () const |
Get the name of the projection. | |
Projection & | addPdgIdPair (PdgId beam1, PdgId beam2) |
Add a colliding beam pair. | |
Log & | getLog () const |
Get a Log object based on the getName() property of the calling projection object. | |
void | setName (const std::string &name) |
Used by derived classes to set their name. | |
double | spherocity () const |
const Vector3 & | spherocityAxis () const |
const Vector3 & | spherocityMajorAxis () const |
The spherocity major axis (axis of max spherocity perpendicular to spherocity axis). | |
const Vector3 & | spherocityMinorAxis () const |
The spherocity minor axis (axis perpendicular to spherocity and spherocity major). | |
const Vector3 & | axis1 () const |
AxesDefinition axis accessors. | |
const Vector3 & | axis2 () const |
The 2nd most significant ("major") axis. | |
const Vector3 & | axis3 () const |
The least significant ("minor") axis. | |
Direct methods | |
void | calc (const FinalState &fs) |
Manually calculate the spherocity, without engaging the caching system. | |
void | calc (const vector< Particle > &fsparticles) |
Manually calculate the spherocity, without engaging the caching system. | |
void | calc (const vector< FourMomentum > &fsmomenta) |
Manually calculate the spherocity, without engaging the caching system. | |
void | calc (const vector< Vector3 > &threeMomenta) |
Manually calculate the spherocity, without engaging the caching system. | |
Projection "getting" functions | |
std::set< ConstProjectionPtr > | getProjections () const |
Get the contained projections, including recursion. | |
template<typename PROJ > | |
const PROJ & | getProjection (const std::string &name) const |
Get the named projection, specifying return type via a template argument. | |
const Projection & | getProjection (const std::string &name) const |
Projection applying functions | |
template<typename PROJ > | |
const PROJ & | applyProjection (const Event &evt, const PROJ &proj) const |
Apply the supplied projection on event. | |
template<typename PROJ > | |
const PROJ & | applyProjection (const Event &evt, const Projection &proj) const |
Apply the supplied projection on event. | |
template<typename PROJ > | |
const PROJ & | applyProjection (const Event &evt, const std::string &name) const |
Apply the named projection on event. | |
Protected Member Functions | |
void | project (const Event &e) |
Perform the projection on the Event. | |
int | compare (const Projection &p) const |
Compare projections. | |
Cmp< Projection > | mkNamedPCmp (const Projection &otherparent, const std::string &pname) const |
Cmp< Projection > | mkPCmp (const Projection &otherparent, const std::string &pname) const |
ProjectionHandler & | getProjHandler () const |
Get a reference to the ProjectionHandler for this thread. | |
Projection registration functions | |
template<typename PROJ > | |
const PROJ & | addProjection (const PROJ &proj, const std::string &name) |
const Projection & | _addProjection (const Projection &proj, const std::string &name) |
Untemplated function to do the work... | |
Protected Attributes | |
bool | _allowProjReg |
Flag to forbid projection registration in analyses until the init phase. | |
Private Member Functions | |
void | _calcSpherocity (const vector< Vector3 > &fsmomenta) |
Explicitly calculate the spherocity values. | |
Private Attributes | |
vector< double > | _spherocities |
The spherocity scalars. | |
vector< Vector3 > | _spherocityAxes |
The spherocity axes. | |
bool | _calculatedSpherocity |
Caching flag to avoid costly recalculations. | |
Friends | |
class | Event |
Event is a friend. | |
class | Cmp< Projection > |
The Cmp specialization for Projection is a friend. |
Get the transverse spherocity scalars for hadron-colliders.
The scalar (maximum) transverse spherocity is defined as
, with the direction of the unit vector which maximises
being identified as the spherocity axis. The unit vector which maximises the spherocity scalar in the plane perpendicular to
is the "spherocity major" direction, and the vector perpendicular to both the spherocity and spherocity major directions is the spherocity minor. Both the major and minor directions have associated spherocity scalars.
Care must be taken in the case of Drell-Yan processes - there we should use the newly proposed observable .
Definition at line 33 of file Spherocity.hh.
Spherocity | ( | const FinalState & | fsp | ) | [inline] |
Constructor.
Definition at line 37 of file Spherocity.hh.
References ProjectionApplier::addProjection(), and Projection::setName().
Referenced by Spherocity::clone().
00038 : _calculatedSpherocity(false) 00039 { 00040 setName("Spherocity"); 00041 addProjection(fsp, "FS"); 00042 }
const Projection & _addProjection | ( | const Projection & | proj, | |
const std::string & | name | |||
) | [protected, inherited] |
Untemplated function to do the work...
Definition at line 33 of file ProjectionApplier.cc.
References ProjectionApplier::_allowProjReg, ProjectionApplier::getProjHandler(), ProjectionApplier::name(), Projection::name(), and ProjectionHandler::registerProjection().
Referenced by ProjectionApplier::addProjection().
00034 { 00035 if (!_allowProjReg) { 00036 cerr << "Trying to register projection '" 00037 << proj.name() << "' before init phase in '" << this->name() << "'." << endl; 00038 exit(2); 00039 } 00040 const Projection& reg = getProjHandler().registerProjection(*this, proj, name); 00041 return reg; 00042 }
void _calcSpherocity | ( | const vector< Vector3 > & | fsmomenta | ) | [private] |
Explicitly calculate the spherocity values.
Definition at line 109 of file Spherocity.cc.
References Rivet::_calcS(), Spherocity::_spherocities, Spherocity::_spherocityAxes, Rivet::cross(), Vector3::cross(), Rivet::mod(), MSG_DEBUG, MSG_WARNING, Rivet::PI, Spherocity::spherocity(), Rivet::unit(), Vector3::unit(), Vector3::x(), Vector3::y(), and Vector3::z().
Referenced by Spherocity::calc().
00109 { 00110 00111 // Make a vector of the three-momenta in the final state 00112 // Explicitly set the z-component (parallel to beam axis) to zero 00113 // This creates a 3D-vector representation of the transverse momentum 00114 // but take the full information momentum vectors as input 00115 00116 vector<Vector3> fsperpmomenta; 00117 // A small iteration over full momenta but set z-coord. to 0.0 to get transverse momenta 00118 foreach (const Vector3& p, fsmomenta) { 00119 fsperpmomenta.push_back(Vector3(p.x(), p.y(), 0.0)); 00120 } 00121 00122 // This returns the scalar sum of (transverse) momenta 00123 double perpmomentumSum(0.0); 00124 foreach (const Vector3& p, fsperpmomenta) { 00125 perpmomentumSum += mod(p); 00126 } 00127 00128 // Clear the caches 00129 _spherocities.clear(); 00130 _spherocityAxes.clear(); 00131 00132 // If there are fewer than 2 visible particles, we can't do much 00133 // This is blindly copied from the Thrust projection 00134 if (fsmomenta.size() < 2) { 00135 for (int i = 0; i < 3; ++i) { 00136 _spherocities.push_back(-1); 00137 _spherocityAxes.push_back(Vector3(0,0,0)); 00138 } 00139 return; 00140 } 00141 00142 // Handle special case of spherocity = 1 if there are only 2 particles 00143 // This is blindly copied from the Thrust projection 00144 if (fsmomenta.size() == 2) { 00145 Vector3 axis(0,0,0); 00146 _spherocities.push_back(1.0); 00147 _spherocities.push_back(0.0); 00148 _spherocities.push_back(0.0); 00149 axis = fsmomenta[0].unit(); 00150 if (axis.z() < 0) axis = -axis; 00151 _spherocityAxes.push_back(axis); 00152 /// @todo Improve this --- special directions bad... 00153 /// (a,b,c) _|_ 1/(a^2+b^2) (b,-a,0) etc., but which combination minimises error? 00154 if (axis.z() < 0.75) 00155 _spherocityAxes.push_back( (axis.cross(Vector3(0,0,1))).unit() ); 00156 else 00157 _spherocityAxes.push_back( (axis.cross(Vector3(0,1,0))).unit() ); 00158 _spherocityAxes.push_back( _spherocityAxes[0].cross(_spherocityAxes[1]) ); 00159 return; 00160 } 00161 00162 // Temporary variables for calcs 00163 Vector3 axis(0,0,0); 00164 double val = 0.; 00165 00166 // Get spherocity 00167 _calcS(fsperpmomenta, val, axis); 00168 MSG_DEBUG("Mom sum = " << perpmomentumSum); 00169 double spherocity = PI*PI* val*val / (4 * perpmomentumSum*perpmomentumSum); 00170 _spherocities.push_back(spherocity); 00171 00172 // See if calclulated spherocity value makes sense 00173 if (spherocity < 0.0 || spherocity > 1.0) { 00174 MSG_WARNING("Spherocity = " << spherocity); 00175 } 00176 00177 MSG_DEBUG("Spherocity value = " << spherocity); 00178 00179 MSG_DEBUG("Sperocity axis = " << axis); 00180 00181 _spherocityAxes.push_back(axis); 00182 00183 00184 //// Get spherocity minor 00185 //// 00186 //// 00187 //// The Beam axis is eZ = (0, 0, 1) 00188 //// 00189 //double perpMinor = 0.0; 00190 //const Vector3 ez = Vector3(0, 0, 1); 00191 //foreach (const Vector3& v, fsperpmomenta) { 00192 //Vector3 temp = Vector3(v[0], v[1], 0.0); 00193 //perpMinor += mod(temp.cross(_spherocityAxes[0])); 00194 //} 00195 //_spherocitys.push_back(perpMinor / perpmomentumSum); 00196 00197 00198 //// Manual check 00199 //double test = 0.; 00200 //Vector<2> ex; 00201 //ex.set(0, 1.0); 00202 //ex.set(1, 0); 00203 //foreach (const Vector<2> & v, fsperpmomenta2D) { 00204 //test+=fabs(dot(ex, v)); 00205 //} 00206 //if (test/perpmomentumSum < _spherocities[0]) { 00207 //std::cout << "Warning: " << test/perpmomentumSum << " > " << _spherocitys[0] << " " << _spherocityAxes[0] << endl; 00208 //} 00209 00210 }
Projection& addPdgIdPair | ( | PdgId | beam1, | |
PdgId | beam2 | |||
) | [inline, inherited] |
Add a colliding beam pair.
Definition at line 107 of file Projection.hh.
References Projection::_beamPairs.
Referenced by Projection::Projection().
00107 { 00108 _beamPairs.insert(PdgIdPair(beam1, beam2)); 00109 return *this; 00110 }
const PROJ& addProjection | ( | const PROJ & | proj, | |
const std::string & | name | |||
) | [inline, protected, inherited] |
Register a contained projection. The type of the argument is used to instantiate a new projection internally: this new object is applied to events rather than the argument object. Hence you are advised to only use locally-scoped Projection objects in your Projection and Analysis constructors, and to avoid polymorphism (e.g. handling ConcreteProjection
via a pointer or reference to type Projection
) since this will screw up the internal type management.
Definition at line 113 of file ProjectionApplier.hh.
References ProjectionApplier::_addProjection().
Referenced by ZFinder::_init(), WFinder::_init(), VetoedFinalState::addVetoOnThisFinalState(), BeamThrust::BeamThrust(), CDF_2009_S8057893::CDF_2009_S8057893::init(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ClusteredPhotons::ClusteredPhotons(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FinalState::FinalState(), FinalStateHCM::FinalStateHCM(), FoxWolframMoments::FoxWolframMoments(), FParameter::FParameter(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), ZEUS_2001_S4815815::init(), UA5_1989_S1926373::init(), UA5_1988_S1867512::init(), UA5_1987_S1640666::init(), UA5_1986_S1583476::init(), UA5_1982_S875503::init(), UA1_1990_S2044935::init(), TASSO_1990_S2148048::init(), STAR_2009_UE_HELEN::init(), STAR_2008_S7993412::init(), STAR_2008_S7869363::init(), STAR_2006_S6870392::init(), STAR_2006_S6860818::init(), STAR_2006_S6500200::init(), SFM_1984_S1178091::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), PDG_HADRON_MULTIPLICITIES::init(), OPAL_2004_S6132243::init(), OPAL_2001_S4553896::init(), OPAL_1998_S3780481::init(), OPAL_1993_S2692198::init(), MC_ZZJETS::init(), MC_ZJETS::init(), MC_WWJETS::init(), MC_WPOL::init(), MC_WJETS::init(), MC_TTBAR::init(), MC_SUSY::init(), MC_PHOTONJETUE::init(), MC_PHOTONJETS::init(), MC_LEADINGJETS::init(), MC_JETS::init(), MC_HJETS::init(), MC_GENERIC::init(), MC_DIPHOTON::init(), MC_DIJET::init(), LHCB_2010_S8758301::init(), JADE_OPAL_2000_S4300807::init(), JADE_1998_S3612880::init(), H1_2000_S4129130::init(), H1_1995_S3167097::init(), H1_1994_S2919893::init(), ExampleAnalysis::init(), E735_1998_S3905616::init(), DELPHI_2003_WUD_03_11::init(), DELPHI_2002_069_CONF_603::init(), DELPHI_1996_S3430090::init(), DELPHI_1995_S3137023::init(), D0_2010_S8821313::init(), D0_2010_S8671338::init(), D0_2010_S8570965::init(), D0_2010_S8566488::init(), D0_2009_S8349509::init(), D0_2009_S8320160::init(), D0_2009_S8202443::init(), D0_2008_S7863608::init(), D0_2008_S7837160::init(), D0_2008_S7719523::init(), D0_2008_S7662670::init(), D0_2008_S7554427::init(), D0_2008_S6879055::init(), D0_2007_S7075677::init(), D0_2006_S6438750::init(), D0_2004_S5992206::init(), D0_2001_S4674421::init(), D0_2000_S4480767::init(), D0_1996_S3324664::init(), D0_1996_S3214044::init(), CMS_2011_S8978280::init(), CMS_2011_S8968497::init(), CMS_2011_S8957746::init(), CMS_2011_S8884919::init(), CMS_2010_S8656010::init(), CMS_2010_S8547297::init(), CDF_2010_S8591881_QCD::init(), CDF_2010_S8591881_DY::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2009_S8233977::init(), CDF_2009_NOTE_9936::init(), CDF_2008_S8095620::init(), CDF_2008_S8093652::init(), CDF_2008_S7828950::init(), CDF_2008_S7782535::init(), CDF_2008_S7541902::init(), CDF_2008_S7540469::init(), CDF_2008_NOTE_9351::init(), CDF_2008_LEADINGJETS::init(), CDF_2007_S7057202::init(), CDF_2006_S6653332::init(), CDF_2006_S6450792::init(), CDF_2005_S6217184::init(), CDF_2005_S6080774::init(), CDF_2004_S5839831::init(), CDF_2002_S4796047::init(), CDF_2001_S4751469::init(), CDF_2001_S4563131::init(), CDF_2001_S4517016::init(), CDF_2000_S4266730::init(), CDF_2000_S4155203::init(), CDF_1998_S3618439::init(), CDF_1997_S3541940::init(), CDF_1996_S3418421::init(), CDF_1996_S3349578::init(), CDF_1996_S3108457::init(), CDF_1994_S2952106::init(), CDF_1993_S2742446::init(), CDF_1990_S2089246::init(), CDF_1988_S1865951::init(), BELLE_2006_S6265367::init(), ATLAS_2011_S9120807::init(), ATLAS_2011_S9019561::init(), ATLAS_2011_S9002537::init(), ATLAS_2011_S8994773::init(), ATLAS_2011_S8983313::init(), ATLAS_2011_S8971293::init(), ATLAS_2011_S8924791::init(), ATLAS_2011_CONF_2011_090::init(), ATLAS_2010_S8919674::init(), ATLAS_2010_S8918562::init(), ATLAS_2010_S8914702::init(), ATLAS_2010_S8894728::init(), ATLAS_2010_S8817804::init(), ATLAS_2010_S8591806::init(), ATLAS_2010_CONF_2010_049::init(), ALICE_2010_S8706239::init(), ALICE_2010_S8625980::init(), ALICE_2010_S8624100::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), ALEPH_1991_S2435284::init(), IsolationProjection< PROJ1, PROJ2, EST >::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LeptonClusters::LeptonClusters(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), Sphericity::Sphericity(), Spherocity::Spherocity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), VetoedFinalState::VetoedFinalState(), and VisibleFinalState::VisibleFinalState().
00113 { 00114 const Projection& reg = _addProjection(proj, name); 00115 const PROJ& rtn = dynamic_cast<const PROJ&>(reg); 00116 return rtn; 00117 }
const PROJ& applyProjection | ( | const Event & | evt, | |
const std::string & | name | |||
) | const [inline, inherited] |
Apply the named projection on event.
Definition at line 81 of file ProjectionApplier.hh.
References ProjectionApplier::_applyProjection().
00081 { 00082 return pcast<PROJ>(_applyProjection(evt, name)); 00083 }
const PROJ& applyProjection | ( | const Event & | evt, | |
const Projection & | proj | |||
) | const [inline, inherited] |
Apply the supplied projection on event.
Definition at line 74 of file ProjectionApplier.hh.
References ProjectionApplier::_applyProjection().
00074 { 00075 return pcast<PROJ>(_applyProjection(evt, proj)); 00076 }
const PROJ& applyProjection | ( | const Event & | evt, | |
const PROJ & | proj | |||
) | const [inline, inherited] |
Apply the supplied projection on event.
Definition at line 67 of file ProjectionApplier.hh.
References ProjectionApplier::_applyProjection().
Referenced by HadronicFinalState::project(), and FinalStateHCM::project().
00067 { 00068 return pcast<PROJ>(_applyProjection(evt, proj)); 00069 }
const Vector3& axis1 | ( | ) | const [inline, virtual] |
AxesDefinition axis accessors.
Implements AxesDefinition.
Definition at line 85 of file Spherocity.hh.
References Spherocity::spherocityAxis().
00085 { return spherocityAxis(); }
const Vector3& axis2 | ( | ) | const [inline, virtual] |
The 2nd most significant ("major") axis.
Implements AxesDefinition.
Definition at line 86 of file Spherocity.hh.
References Spherocity::spherocityMajorAxis().
00086 { return spherocityMajorAxis(); }
const Vector3& axis3 | ( | ) | const [inline, virtual] |
The least significant ("minor") axis.
Implements AxesDefinition.
Definition at line 87 of file Spherocity.hh.
References Spherocity::spherocityMinorAxis().
00087 { return spherocityMinorAxis(); }
const set< PdgIdPair > beamPairs | ( | ) | const [virtual, inherited] |
Return the BeamConstraints for this projection, not including recursion. Derived classes should ensure that all contained projections are registered in the _projections set for the beam constraint chaining to work.
Definition at line 39 of file Projection.cc.
References Projection::_beamPairs, Projection::beamPairs(), Projection::getLog(), ProjectionApplier::getProjections(), Rivet::intersection(), and Log::TRACE.
Referenced by Projection::beamPairs().
00039 { 00040 set<PdgIdPair> ret = _beamPairs; 00041 set<ConstProjectionPtr> projs = getProjections(); 00042 for (set<ConstProjectionPtr>::const_iterator ip = projs.begin(); ip != projs.end(); ++ip) { 00043 ConstProjectionPtr p = *ip; 00044 getLog() << Log::TRACE << "Proj addr = " << p << endl; 00045 if (p) ret = intersection(ret, p->beamPairs()); 00046 } 00047 return ret; 00048 }
bool before | ( | const Projection & | p | ) | const [inherited] |
Determine whether this object should be ordered before the object p given as argument. If p is of a different class than this, the before() function of the corresponding type_info objects is used. Otherwise, if the objects are of the same class, the virtual compare(const Projection &) will be returned.
Definition at line 28 of file Projection.cc.
References Projection::compare().
Referenced by less< const Rivet::Projection * >::operator()().
00028 { 00029 const std::type_info& thisid = typeid(*this); 00030 const std::type_info& otherid = typeid(p); 00031 if (thisid == otherid) { 00032 return compare(p) < 0; 00033 } else { 00034 return thisid.before(otherid); 00035 } 00036 }
void calc | ( | const vector< Vector3 > & | threeMomenta | ) |
Manually calculate the spherocity, without engaging the caching system.
Definition at line 36 of file Spherocity.cc.
References Spherocity::_calcSpherocity().
00036 { 00037 _calcSpherocity(fsmomenta); 00038 }
void calc | ( | const vector< FourMomentum > & | fsmomenta | ) |
Manually calculate the spherocity, without engaging the caching system.
Definition at line 26 of file Spherocity.cc.
References Spherocity::_calcSpherocity(), and FourVector::vector3().
00026 { 00027 vector<Vector3> threeMomenta; 00028 threeMomenta.reserve(fsmomenta.size()); 00029 foreach (const FourMomentum& v, fsmomenta) { 00030 threeMomenta.push_back(v.vector3()); 00031 } 00032 _calcSpherocity(threeMomenta); 00033 }
void calc | ( | const vector< Particle > & | fsparticles | ) |
Manually calculate the spherocity, without engaging the caching system.
Definition at line 15 of file Spherocity.cc.
References Spherocity::_calcSpherocity(), Particle::momentum(), and FourVector::vector3().
00015 { 00016 vector<Vector3> threeMomenta; 00017 threeMomenta.reserve(fsparticles.size()); 00018 foreach (const Particle& p, fsparticles) { 00019 const Vector3 p3 = p.momentum().vector3(); 00020 threeMomenta.push_back(p3); 00021 } 00022 _calcSpherocity(threeMomenta); 00023 }
void calc | ( | const FinalState & | fs | ) |
Manually calculate the spherocity, without engaging the caching system.
Definition at line 10 of file Spherocity.cc.
References FinalState::particles().
Referenced by Spherocity::project().
00010 { 00011 calc(fs.particles()); 00012 }
virtual const Projection* clone | ( | ) | const [inline, virtual] |
Clone on the heap.
Implements AxesDefinition.
Definition at line 45 of file Spherocity.hh.
References Spherocity::Spherocity().
00045 { 00046 return new Spherocity(*this); 00047 }
int compare | ( | const Projection & | p | ) | const [inline, protected, virtual] |
Compare projections.
Implements Projection.
Definition at line 61 of file Spherocity.hh.
References Projection::mkNamedPCmp().
00061 { 00062 return mkNamedPCmp(p, "FS"); 00063 }
Log& getLog | ( | ) | const [inline, inherited] |
Get a Log object based on the getName() property of the calling projection object.
Reimplemented from ProjectionApplier.
Definition at line 114 of file Projection.hh.
References Projection::name().
Referenced by FParameter::_calcFParameter(), Sphericity::_calcSphericity(), Thrust::_calcThrust(), Projection::beamPairs(), InvMassFinalState::calc(), FinalState::FinalState(), JetAlg::JetAlg(), ZFinder::project(), WFinder::project(), VetoedFinalState::project(), UnstableFinalState::project(), TriggerUA5::project(), TriggerCDFRun2::project(), TriggerCDFRun0Run1::project(), PVertex::project(), NeutralFinalState::project(), MergedFinalState::project(), LossyFinalState< ConstRandomFilter >::project(), LeadingParticlesFinalState::project(), IsolationProjection< PROJ1, PROJ2, EST >::project(), InitialQuarks::project(), Hemispheres::project(), HadronicFinalState::project(), FoxWolframMoments::project(), ClusteredPhotons::project(), ChargedFinalState::project(), and TotalVisibleMomentum::TotalVisibleMomentum().
00114 { 00115 string logname = "Rivet.Projection." + name(); 00116 return Log::getLog(logname); 00117 }
const Projection& getProjection | ( | const std::string & | name | ) | const [inline, inherited] |
Get the named projection (non-templated, so returns as a reference to a Projection base class).
Definition at line 57 of file ProjectionApplier.hh.
References ProjectionHandler::getProjection(), and ProjectionApplier::getProjHandler().
00057 { 00058 return getProjHandler().getProjection(*this, name); 00059 }
const PROJ& getProjection | ( | const std::string & | name | ) | const [inline, inherited] |
Get the named projection, specifying return type via a template argument.
Definition at line 49 of file ProjectionApplier.hh.
References ProjectionHandler::getProjection(), and ProjectionApplier::getProjHandler().
Referenced by ProjectionApplier::_applyProjection(), Rivet::pcmp(), and Hemispheres::project().
00049 { 00050 const Projection& p = getProjHandler().getProjection(*this, name); 00051 return pcast<PROJ>(p); 00052 }
std::set<ConstProjectionPtr> getProjections | ( | ) | const [inline, inherited] |
Get the contained projections, including recursion.
Definition at line 42 of file ProjectionApplier.hh.
References ProjectionHandler::DEEP, ProjectionHandler::getChildProjections(), and ProjectionApplier::getProjHandler().
Referenced by Projection::beamPairs().
00042 { 00043 return getProjHandler().getChildProjections(*this, ProjectionHandler::DEEP); 00044 }
ProjectionHandler& getProjHandler | ( | ) | const [inline, protected, inherited] |
Get a reference to the ProjectionHandler for this thread.
Definition at line 94 of file ProjectionApplier.hh.
References ProjectionApplier::_projhandler.
Referenced by ProjectionApplier::_addProjection(), ProjectionApplier::getProjection(), ProjectionApplier::getProjections(), and ProjectionApplier::~ProjectionApplier().
00094 { 00095 return _projhandler; 00096 }
Cmp< Projection > mkNamedPCmp | ( | const Projection & | otherparent, | |
const std::string & | pname | |||
) | const [protected, inherited] |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
Definition at line 51 of file Projection.cc.
References Rivet::pcmp().
Referenced by ZFinder::compare(), WFinder::compare(), VisibleFinalState::compare(), VetoedFinalState::compare(), TotalVisibleMomentum::compare(), Thrust::compare(), SVertex::compare(), Spherocity::compare(), Sphericity::compare(), ParisiTensor::compare(), NeutralFinalState::compare(), Multiplicity::compare(), MissingMomentum::compare(), MergedFinalState::compare(), LossyFinalState< ConstRandomFilter >::compare(), LeptonClusters::compare(), LeadingParticlesFinalState::compare(), JetShape::compare(), IsolationProjection< PROJ1, PROJ2, EST >::compare(), InvMassFinalState::compare(), IdentifiedFinalState::compare(), Hemispheres::compare(), FParameter::compare(), FoxWolframMoments::compare(), FinalStateHCM::compare(), FastJets::compare(), DISLepton::compare(), DISKinematics::compare(), ClusteredPhotons::compare(), ChargedLeptons::compare(), ChargedFinalState::compare(), CentralEtHCM::compare(), and BeamThrust::compare().
00052 { 00053 return pcmp(*this, otherparent, pname); 00054 }
Cmp< Projection > mkPCmp | ( | const Projection & | otherparent, | |
const std::string & | pname | |||
) | const [protected, inherited] |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
Definition at line 57 of file Projection.cc.
References Rivet::pcmp().
00058 { 00059 return pcmp(*this, otherparent, pname); 00060 }
virtual std::string name | ( | ) | const [inline, virtual, inherited] |
Get the name of the projection.
Implements ProjectionApplier.
Definition at line 101 of file Projection.hh.
References Projection::_name.
Referenced by ProjectionApplier::_addProjection(), ProjectionHandler::_checkDuplicate(), ProjectionHandler::_clone(), ProjectionHandler::_getEquiv(), VetoedFinalState::addVetoOnThisFinalState(), Projection::getLog(), ZFinder::project(), ClusteredPhotons::project(), and ProjectionHandler::registerProjection().
00101 { 00102 return _name; 00103 }
void project | ( | const Event & | e | ) | [inline, protected, virtual] |
Perform the projection on the Event.
Implements Projection.
Definition at line 53 of file Spherocity.hh.
References Spherocity::calc(), and Rivet::particles().
void setName | ( | const std::string & | name | ) | [inline, inherited] |
Used by derived classes to set their name.
Definition at line 120 of file Projection.hh.
References Projection::_name.
Referenced by ZFinder::_init(), WFinder::_init(), FastJets::_init1(), FastJets::_init2(), FastJets::_init3(), Beam::Beam(), BeamThrust::BeamThrust(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ClusteredPhotons::ClusteredPhotons(), ConstLossyFinalState::ConstLossyFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FinalState::FinalState(), FinalStateHCM::FinalStateHCM(), FoxWolframMoments::FoxWolframMoments(), FParameter::FParameter(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), InitialQuarks::InitialQuarks(), IsolationProjection< PROJ1, PROJ2, EST >::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LeptonClusters::LeptonClusters(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), PVertex::PVertex(), Sphericity::Sphericity(), Spherocity::Spherocity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), UnstableFinalState::UnstableFinalState(), VetoedFinalState::VetoedFinalState(), and VisibleFinalState::VisibleFinalState().
double spherocity | ( | ) | const [inline] |
Spherocity scalar accessors The spherocity scalar, , (minimum spherocity).
Definition at line 70 of file Spherocity.hh.
References Spherocity::_spherocities.
Referenced by Spherocity::_calcSpherocity().
00070 { return _spherocities[0]; }
const Vector3& spherocityAxis | ( | ) | const [inline] |
Spherocity axis accessors The spherocity axis.
Definition at line 76 of file Spherocity.hh.
References Spherocity::_spherocityAxes.
Referenced by Spherocity::axis1().
00076 { return _spherocityAxes[0]; }
const Vector3& spherocityMajorAxis | ( | ) | const [inline] |
The spherocity major axis (axis of max spherocity perpendicular to spherocity axis).
Definition at line 78 of file Spherocity.hh.
References Spherocity::_spherocityAxes.
Referenced by Spherocity::axis2().
00078 { return _spherocityAxes[1]; }
const Vector3& spherocityMinorAxis | ( | ) | const [inline] |
The spherocity minor axis (axis perpendicular to spherocity and spherocity major).
Definition at line 80 of file Spherocity.hh.
References Spherocity::_spherocityAxes.
Referenced by Spherocity::axis3().
00080 { return _spherocityAxes[2]; }
friend class Cmp< Projection > [friend, inherited] |
The Cmp specialization for Projection is a friend.
Definition at line 36 of file Projection.hh.
friend class Event [friend, inherited] |
Event is a friend.
Definition at line 33 of file Projection.hh.
bool _allowProjReg [protected, inherited] |
Flag to forbid projection registration in analyses until the init phase.
Definition at line 140 of file ProjectionApplier.hh.
Referenced by ProjectionApplier::_addProjection(), and Analysis::Analysis().
bool _calculatedSpherocity [private] |
Caching flag to avoid costly recalculations.
Definition at line 121 of file Spherocity.hh.
vector<double> _spherocities [private] |
The spherocity scalars.
Definition at line 115 of file Spherocity.hh.
Referenced by Spherocity::_calcSpherocity(), and Spherocity::spherocity().
vector<Vector3> _spherocityAxes [private] |
The spherocity axes.
Definition at line 118 of file Spherocity.hh.
Referenced by Spherocity::_calcSpherocity(), Spherocity::spherocityAxis(), Spherocity::spherocityMajorAxis(), and Spherocity::spherocityMinorAxis().