Calculate the hemisphere masses and broadenings. More...
#include <Hemispheres.hh>
Public Member Functions | |
Hemispheres (const AxesDefinition &ax) | |
Constructor. | |
virtual const Projection * | clone () const |
Clone on the heap. | |
void | clear () |
bool | massMatchesBroadening () |
Is the hemisphere with the max mass the same as the one with the max broadening? | |
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. | |
Hemisphere masses (scaled by \f$ 1 / E^2_\mathrm{vis} \f$). | |
double | E2vis () const |
double | Evis () const |
double | M2high () const |
double | Mhigh () const |
double | M2low () const |
double | Mlow () const |
double | M2diff () const |
double | Mdiff () const |
double | scaledM2high () const |
double | scaledMhigh () const |
double | scaledM2low () const |
double | scaledMlow () const |
double | scaledM2diff () const |
double | scaledMdiff () const |
Hemisphere broadenings. | |
double | Bmax () const |
double | Bmin () const |
double | Bsum () const |
double | Bdiff () const |
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 with other 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 Attributes | |
double | _E2vis |
Visible energy-squared, ![]() | |
double | _M2high |
Hemisphere mass variables. | |
double | _M2low |
double | _Bmax |
Hemisphere broadening variables. | |
double | _Bmin |
bool | _highMassEqMaxBroad |
Is the hemisphere with the max mass the same as the one with the max broadening? | |
Friends | |
class | Event |
Event is a friend. | |
class | Cmp< Projection > |
The Cmp specialization for Projection is a friend. |
Calculate the hemisphere masses and broadenings.
Calculate the hemisphere masses and broadenings, with event hemispheres defined by the plane normal to the thrust vector, .
The "high" hemisphere mass, , is defined as
and the corresponding "low" hemisphere mass, , is the sum of momentum vectors in the opposite hemisphere, i.e.
in the formula above.
Finally, we define a hemisphere mass difference:
Similarly to the masses, we also define hemisphere broadenings, using the momenta transverse to the thrust axis:
and then a set of the broadening maximum, minimum, sum and difference as follows:
Internally, this projection uses a Thrust or Sphericity projection to determine the hemisphere orientation.
Definition at line 58 of file Hemispheres.hh.
Hemispheres | ( | const AxesDefinition & | ax | ) | [inline] |
Constructor.
Definition at line 62 of file Hemispheres.hh.
References ProjectionApplier::addProjection(), Hemispheres::clear(), and Projection::setName().
Referenced by Hemispheres::clone().
00062 { 00063 setName("Hemispheres"); 00064 addProjection(ax, "Axes"); 00065 clear(); 00066 }
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 }
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(), DISFinalState::DISFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FinalState::FinalState(), 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_VH2BB::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_S9120041::init(), CMS_2011_S9088458::init(), CMS_2011_S9086218::init(), CMS_2011_S8978280::init(), CMS_2011_S8968497::init(), CMS_2011_S8957746::init(), CMS_2011_S8950903::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_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_S9225137::init(), ATLAS_2011_S9212183::init(), ATLAS_2011_S9131140::init(), ATLAS_2011_S9128077::init(), ATLAS_2011_S9126244::init(), ATLAS_2011_S9120807::init(), ATLAS_2011_S9108483::init(), ATLAS_2011_S9041966::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_I925932::init(), ATLAS_2011_I919017::init(), ATLAS_2011_CONF_2011_098::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_2011_S8945144::init(), ALICE_2011_S8909580::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(), NonHadronicFinalState::NonHadronicFinalState(), 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 DISFinalState::project().
00067 { 00068 return pcast<PROJ>(_applyProjection(evt, proj)); 00069 }
double Bdiff | ( | ) | const [inline] |
Definition at line 140 of file Hemispheres.hh.
References Hemispheres::_Bmax, and Hemispheres::_Bmin.
Referenced by DELPHI_1996_S3430090::analyze().
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 }
double Bmax | ( | ) | const [inline] |
Definition at line 137 of file Hemispheres.hh.
References Hemispheres::_Bmax.
Referenced by OPAL_2004_S6132243::analyze(), JADE_1998_S3612880::analyze(), DELPHI_1996_S3430090::analyze(), and ALEPH_2004_S5765862::analyze().
00137 { return _Bmax; }
double Bmin | ( | ) | const [inline] |
Definition at line 138 of file Hemispheres.hh.
References Hemispheres::_Bmin.
Referenced by OPAL_2004_S6132243::analyze(), and DELPHI_1996_S3430090::analyze().
00138 { return _Bmin; }
double Bsum | ( | ) | const [inline] |
Definition at line 139 of file Hemispheres.hh.
References Hemispheres::_Bmax, and Hemispheres::_Bmin.
Referenced by OPAL_2004_S6132243::analyze(), JADE_1998_S3612880::analyze(), DELPHI_1996_S3430090::analyze(), and ALEPH_2004_S5765862::analyze().
void clear | ( | ) | [inline] |
Definition at line 74 of file Hemispheres.hh.
References Hemispheres::_Bmax, Hemispheres::_Bmin, Hemispheres::_E2vis, Hemispheres::_highMassEqMaxBroad, Hemispheres::_M2high, and Hemispheres::_M2low.
Referenced by Hemispheres::Hemispheres(), and Hemispheres::project().
virtual const Projection* clone | ( | ) | const [inline, virtual] |
Clone on the heap.
Implements Projection.
Definition at line 69 of file Hemispheres.hh.
References Hemispheres::Hemispheres().
00069 { 00070 return new Hemispheres(*this); 00071 }
int compare | ( | const Projection & | p | ) | const [inline, protected, virtual] |
Compare with other projections.
Implements Projection.
Definition at line 90 of file Hemispheres.hh.
References Projection::mkNamedPCmp().
00090 { 00091 return mkNamedPCmp(p, "Axes"); 00092 }
double E2vis | ( | ) | const [inline] |
Definition at line 100 of file Hemispheres.hh.
References Hemispheres::_E2vis.
00100 { return _E2vis; }
double Evis | ( | ) | const [inline] |
Definition at line 101 of file Hemispheres.hh.
References Hemispheres::_E2vis.
Referenced by Hemispheres::project().
00101 { return sqrt(_E2vis); }
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 Projection::beamPairs(), InvMassFinalState::calc(), VetoedFinalState::project(), UnstableFinalState::project(), LossyFinalState< ConstRandomFilter >::project(), IsolationProjection< PROJ1, PROJ2, EST >::project(), InitialQuarks::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 }
double M2diff | ( | ) | const [inline] |
Definition at line 109 of file Hemispheres.hh.
References Hemispheres::_M2high, and Hemispheres::_M2low.
Referenced by Hemispheres::Mdiff(), and Hemispheres::scaledM2diff().
double M2high | ( | ) | const [inline] |
Definition at line 103 of file Hemispheres.hh.
References Hemispheres::_M2high.
Referenced by Hemispheres::Mhigh().
00103 { return _M2high; }
double M2low | ( | ) | const [inline] |
Definition at line 106 of file Hemispheres.hh.
References Hemispheres::_M2low.
Referenced by Hemispheres::Mlow().
00106 { return _M2low; }
bool massMatchesBroadening | ( | ) | [inline] |
Is the hemisphere with the max mass the same as the one with the max broadening?
Definition at line 145 of file Hemispheres.hh.
References Hemispheres::_highMassEqMaxBroad.
00145 { 00146 return _highMassEqMaxBroad; 00147 }
double Mdiff | ( | ) | const [inline] |
Definition at line 110 of file Hemispheres.hh.
References Hemispheres::M2diff().
00110 { return sqrt(M2diff()); }
double Mhigh | ( | ) | const [inline] |
Definition at line 104 of file Hemispheres.hh.
References Hemispheres::M2high().
00104 { return sqrt(M2high()); }
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(), FastJets::compare(), DISLepton::compare(), DISKinematics::compare(), DISFinalState::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 }
double Mlow | ( | ) | const [inline] |
Definition at line 107 of file Hemispheres.hh.
References Hemispheres::M2low().
00107 { return sqrt(M2low()); }
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(), ClusteredPhotons::project(), and ProjectionHandler::registerProjection().
00101 { 00102 return _name; 00103 }
void project | ( | const Event & | e | ) | [protected, virtual] |
Perform the projection on the Event.
Implements Projection.
Definition at line 7 of file Hemispheres.cc.
References Hemispheres::_Bmax, Hemispheres::_Bmin, Hemispheres::_E2vis, Hemispheres::_highMassEqMaxBroad, Hemispheres::_M2high, Hemispheres::_M2low, AxesDefinition::axis1(), Hemispheres::clear(), Rivet::dot(), FourMomentum::E(), Hemispheres::Evis(), ProjectionApplier::getProjection(), FourMomentum::mass2(), Rivet::mod(), Particle::momentum(), MSG_DEBUG, MSG_WARNING, Rivet::PID::n, FinalState::particles(), Rivet::particles(), and FourVector::vector3().
00007 { 00008 clear(); 00009 00010 // Get thrust axes. 00011 const AxesDefinition& ax = applyProjection<AxesDefinition>(e, "Axes"); 00012 const Vector3 n = ax.axis1(); 00013 MSG_DEBUG("Thrust axis = " << n); 00014 00015 FourMomentum p4With, p4Against; 00016 double Evis(0), broadWith(0), broadAgainst(0), broadDenom(0); 00017 const FinalState& fs = applyProjection<FinalState>(e, ax.getProjection("FS")); 00018 const ParticleVector& particles = fs.particles(); 00019 MSG_DEBUG("Number of particles = " << particles.size()); 00020 foreach (const Particle& p, particles) { 00021 const FourMomentum p4 = p.momentum(); 00022 const Vector3 p3 = p4.vector3(); 00023 const double p3Mag = mod(p3); 00024 const double p3Para = dot(p3, n); 00025 const double p3Trans = mod(p3 - p3Para * n); 00026 00027 // Update normalisations 00028 Evis += p4.E(); 00029 broadDenom += 2.0 * p3Mag; 00030 00031 // Update the mass and broadening variables 00032 if (p3Para > 0) { 00033 p4With += p4; 00034 broadWith += p3Trans; 00035 } else if (p3Para < 0) { 00036 p4Against += p4; 00037 broadAgainst += p3Trans; 00038 } else { 00039 // In the incredibly unlikely event that a particle goes exactly along the 00040 // thrust plane, add half to each hemisphere. 00041 MSG_WARNING("Particle split between hemispheres"); 00042 p4With += 0.5 * p4; 00043 p4Against += 0.5 * p4; 00044 broadWith += 0.5 * p3Trans; 00045 broadAgainst += 0.5 * p3Trans; 00046 } 00047 } 00048 00049 // Visible energy squared. 00050 _E2vis = Evis * Evis; 00051 00052 // Calculate masses. 00053 const double mass2With = p4With.mass2(); 00054 const double mass2Against = p4Against.mass2(); 00055 _M2high = max(mass2With, mass2Against); 00056 _M2low = min(mass2With, mass2Against); 00057 00058 // Calculate broadenings. 00059 broadWith /= broadDenom; 00060 broadAgainst /= broadDenom; 00061 _Bmax = max(broadWith, broadAgainst); 00062 _Bmin = min(broadWith, broadAgainst); 00063 00064 // Calculate high-max correlation flag. 00065 const int maxMassID = (mass2With >= mass2Against); 00066 const int maxBroadID = (broadWith >= broadAgainst); 00067 _highMassEqMaxBroad = (maxMassID == maxBroadID); 00068 }
double scaledM2diff | ( | ) | const [inline] |
Definition at line 126 of file Hemispheres.hh.
References Hemispheres::_E2vis, and Hemispheres::M2diff().
Referenced by DELPHI_1996_S3430090::analyze(), ALEPH_2004_S5765862::analyze(), and Hemispheres::scaledMdiff().
double scaledM2high | ( | ) | const [inline] |
Definition at line 112 of file Hemispheres.hh.
References Hemispheres::_E2vis, Hemispheres::_M2high, and Rivet::isZero().
Referenced by JADE_1998_S3612880::analyze(), DELPHI_1996_S3430090::analyze(), ALEPH_2004_S5765862::analyze(), ALEPH_1996_S3486095::analyze(), and Hemispheres::scaledMhigh().
double scaledM2low | ( | ) | const [inline] |
Definition at line 119 of file Hemispheres.hh.
References Hemispheres::_E2vis, Hemispheres::_M2low, and Rivet::isZero().
Referenced by DELPHI_1996_S3430090::analyze(), and Hemispheres::scaledMlow().
double scaledMdiff | ( | ) | const [inline] |
Definition at line 131 of file Hemispheres.hh.
References Hemispheres::scaledM2diff().
00131 { return sqrt(scaledM2diff()); }
double scaledMhigh | ( | ) | const [inline] |
Definition at line 117 of file Hemispheres.hh.
References Hemispheres::scaledM2high().
Referenced by OPAL_2004_S6132243::analyze().
00117 { return sqrt(scaledM2high()); }
double scaledMlow | ( | ) | const [inline] |
Definition at line 124 of file Hemispheres.hh.
References Hemispheres::scaledM2low().
Referenced by OPAL_2004_S6132243::analyze().
00124 { return sqrt(scaledM2low()); }
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(), DISFinalState::DISFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FinalState::FinalState(), 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(), NonHadronicFinalState::NonHadronicFinalState(), 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().
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().
double _Bmax [private] |
Hemisphere broadening variables.
Definition at line 159 of file Hemispheres.hh.
Referenced by Hemispheres::Bdiff(), Hemispheres::Bmax(), Hemispheres::Bsum(), Hemispheres::clear(), and Hemispheres::project().
double _Bmin [private] |
Definition at line 159 of file Hemispheres.hh.
Referenced by Hemispheres::Bdiff(), Hemispheres::Bmin(), Hemispheres::Bsum(), Hemispheres::clear(), and Hemispheres::project().
double _E2vis [private] |
Visible energy-squared, .
Definition at line 153 of file Hemispheres.hh.
Referenced by Hemispheres::clear(), Hemispheres::E2vis(), Hemispheres::Evis(), Hemispheres::project(), Hemispheres::scaledM2diff(), Hemispheres::scaledM2high(), and Hemispheres::scaledM2low().
bool _highMassEqMaxBroad [private] |
Is the hemisphere with the max mass the same as the one with the max broadening?
Definition at line 162 of file Hemispheres.hh.
Referenced by Hemispheres::clear(), Hemispheres::massMatchesBroadening(), and Hemispheres::project().
double _M2high [private] |
Hemisphere mass variables.
Definition at line 156 of file Hemispheres.hh.
Referenced by Hemispheres::clear(), Hemispheres::M2diff(), Hemispheres::M2high(), Hemispheres::project(), and Hemispheres::scaledM2high().
double _M2low [private] |
Definition at line 156 of file Hemispheres.hh.
Referenced by Hemispheres::clear(), Hemispheres::M2diff(), Hemispheres::M2low(), Hemispheres::project(), and Hemispheres::scaledM2low().