![]() |
Rivet
3.1.3
|
Calculate the hemisphere masses and broadenings. More...
#include <Hemispheres.hh>
Public Member Functions | |
Hemispheres (const AxesDefinition &ax) | |
Constructor. | |
DEFAULT_RIVET_PROJ_CLONE (Hemispheres) | |
Clone on the heap. | |
void | clear () |
Reset the projection. | |
void | calc (const Vector3 &n, const std::vector< FourMomentum > &p4s) |
Use the projection manually (i.e. outside the projection mechanism) with raw 4-momentum inputs. | |
void | calc (const Vector3 &n, const Particles &particles) |
Use the projection manually (i.e. outside the projection mechanism) with particle inputs. | |
void | calc (const Vector3 &n, const Jets &jets) |
Use the projection manually (i.e. outside the projection mechanism) with jet inputs. | |
bool | massMatchesBroadening () |
Is the hemisphere with the max mass the same as the one with the max broadening? | |
virtual std::string | name () const |
Get the name of the projection. | |
bool | valid () const |
Get the state of the projetion. | |
bool | failed () const |
Get the state of the projetion. | |
void | markAsOwned () const |
Mark this object as owned by a proj-handler. | |
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 | M2sum () const |
double | Msum () 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 |
Standard constructors and destructors. | |
virtual unique_ptr< Projection > | clone () const =0 |
Clone on the heap. | |
Projection operation and comparison | |
bool | before (const Projection &p) const |
Beam configuration | |
| |
virtual const std::set< PdgIdPair > | beamPairs () const |
Projection & | addPdgIdPair (PdgId beam1, PdgId beam2) |
Projection "getting" functions | |
std::set< ConstProjectionPtr > | getProjections () const |
Get the contained projections, including recursion. | |
bool | hasProjection (const std::string &name) const |
Does this applier have a projection registered under the name name? | |
template<typename PROJ > | |
const PROJ & | getProjection (const std::string &name) const |
const Projection & | getProjection (const std::string &name) const |
template<typename PROJ > | |
const PROJ & | get (const std::string &name) const |
Projection applying functions | |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | applyProjection (const Event &evt, const Projection &proj) const |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | applyProjection (const Event &evt, const PROJ &proj) const |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | applyProjection (const Event &evt, const std::string &name) const |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | apply (const Event &evt, const Projection &proj) const |
Apply the supplied projection on event evt (user-facing alias). | |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | apply (const Event &evt, const PROJ &proj) const |
Apply the supplied projection on event evt (user-facing alias). | |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | apply (const Event &evt, const std::string &name) const |
Apply the supplied projection on event evt (user-facing alias). | |
template<typename PROJ = Projection> | |
std::enable_if_t< std::is_base_of< Projection, PROJ >::value, const PROJ & > | apply (const std::string &name, const Event &evt) const |
Apply the supplied projection on event evt (convenience arg-reordering alias). | |
Protected Member Functions | |
void | project (const Event &e) |
Perform the projection on the Event. | |
CmpState | compare (const Projection &p) const |
Compare with other projections. | |
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. | |
void | fail () |
Set the projection in an unvalid state. | |
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 & | declareProjection (const PROJ &proj, const std::string &name) |
Register a contained projection. More... | |
template<typename PROJ > | |
const PROJ & | declare (const PROJ &proj, const std::string &name) |
Register a contained projection (user-facing version) More... | |
template<typename PROJ > | |
const PROJ & | declare (const std::string &name, const PROJ &proj) |
Register a contained projection (user-facing, arg-reordered version) More... | |
Calculate the hemisphere masses and broadenings.
Calculate the hemisphere masses and broadenings, with event hemispheres defined by the plane normal to the thrust vector, \( \vec{n}_\mathrm{T} \).
The "high" hemisphere mass, \( M^2_\mathrm{high} / E^2_\mathrm{vis} \), is defined as
\[ \frac{M^2_\mathrm{high}}{E^2_\mathrm{vis}} = \frac{1}{E^2_\mathrm{vis}} \max \left( \left| \sum_{\vec{p}_k \cdot \vec{n}_\mathrm{T} > 0} p_k \right|^2 , \left| \sum_{\vec{p}_k \cdot \vec{n}_\mathrm{T} < 0} p_k \right|^2 \right) \]
and the corresponding "low" hemisphere mass, \( M^2_\mathrm{low} / E^2_\mathrm{vis} \), is the sum of momentum vectors in the opposite hemisphere, i.e. \( \max \rightarrow \min \) in the formula above.
Finally, we define a hemisphere mass difference:
\[ \frac{M^2_\mathrm{diff} }{ E^2_\mathrm{vis}} = \frac{ M^2_\mathrm{high} - M^2_\mathrm{low} }{ E^2_\mathrm{vis}} . \]
Similarly to the masses, we also define hemisphere broadenings, using the momenta transverse to the thrust axis:
\[ B_\pm = \frac{ \sum{\pm \vec{p}_i \cdot \vec{n}_\mathrm{T} > 0} |\vec{p}_i \times \vec{n}_\mathrm{T} | }{ 2 \sum_i | \vec{p}_i | } \]
and then a set of the broadening maximum, minimum, sum and difference as follows:
\[ B_\mathrm{max} = \max(B_+, B_-) \]
\[ B_\mathrm{min} = \min(B_+, B_-) \]
\[ B_\mathrm{sum} = B_+ + B_- \]
\[ B_\mathrm{diff} = |B_+ - B_-| \]
Internally, this projection uses a Thrust or Sphericity projection to determine the hemisphere orientation.
|
inlineinherited |
Add a colliding beam pair.
|
inlineinherited |
Apply the supplied projection on event evt.
|
inlineinherited |
Apply the supplied projection on event evt.
|
inlineinherited |
Apply the named projection on event evt.
|
virtualinherited |
Return the allowed beam pairs on which this projection can operate, not including recursion. Derived classes should ensure that all contained projections are registered in the _projections set for the beam constraint chaining to work.
Referenced by Rivet::Projection::failed().
|
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.
Referenced by Rivet::Projection::fail(), and Rivet::Projection::failed().
|
inlineprotectedinherited |
Register a contained projection (user-facing version)
References Rivet::ProjectionApplier::declareProjection().
Referenced by Rivet::CentralityProjection::add(), Rivet::VetoedFinalState::addVetoOnThisFinalState(), Rivet::BeamThrust::BeamThrust(), Rivet::CentralEtHCM::CentralEtHCM(), Rivet::CentralityEstimator::CentralityEstimator(), Rivet::ChargedLeptons::ChargedLeptons(), Rivet::ALICE::CLMultiplicity< INNER >::CLMultiplicity(), Rivet::DISDiffHadron::DISDiffHadron(), Rivet::DISFinalState::DISFinalState(), Rivet::DISKinematics::DISKinematics(), Rivet::DISLepton::DISLepton(), Rivet::GammaGammaKinematics::GammaGammaKinematics(), Rivet::GammaGammaLeptons::GammaGammaLeptons(), Rivet::GeneratedCentrality::GeneratedCentrality(), Rivet::HadronicFinalState::HadronicFinalState(), Rivet::HeavyHadrons::HeavyHadrons(), Hemispheres(), Rivet::InvisibleFinalState::InvisibleFinalState(), Rivet::LeadingParticlesFinalState::LeadingParticlesFinalState(), Rivet::LossyFinalState< ConstRandomFilter >::LossyFinalState(), Rivet::MC_pPbMinBiasTrigger::MC_pPbMinBiasTrigger(), Rivet::MC_SumETFwdPbCentrality::MC_SumETFwdPbCentrality(), Rivet::ATLAS::MinBiasTrigger::MinBiasTrigger(), Rivet::MissingMomentum::MissingMomentum(), Rivet::NeutralFinalState::NeutralFinalState(), Rivet::NonHadronicFinalState::NonHadronicFinalState(), Rivet::ParisiTensor::ParisiTensor(), Rivet::PercentileProjection::PercentileProjection(), Rivet::PrimaryHadrons::PrimaryHadrons(), Rivet::CentralityBinner< T, MDist >::setProjection(), Rivet::SmearedJets::SmearedJets(), Rivet::SmearedMET::SmearedMET(), Rivet::SmearedParticles::SmearedParticles(), Rivet::Spherocity::Spherocity(), Rivet::ATLAS::SumET_PB_Centrality::SumET_PB_Centrality(), Rivet::ATLAS::SumET_PBPB_Centrality::SumET_PBPB_Centrality(), Rivet::TauFinder::TauFinder(), Rivet::Thrust::Thrust(), Rivet::TriggerCDFRun0Run1::TriggerCDFRun0Run1(), Rivet::TriggerCDFRun2::TriggerCDFRun2(), Rivet::UndressBeamLeptons::UndressBeamLeptons(), Rivet::ALICE::V0AndTrigger::V0AndTrigger(), Rivet::ALICE::V0Trigger< MODE >::V0Trigger(), Rivet::VetoedFinalState::VetoedFinalState(), and Rivet::VisibleFinalState::VisibleFinalState().
|
inlineprotectedinherited |
Register a contained projection (user-facing, arg-reordered version)
References Rivet::ProjectionApplier::declareProjection(), and Rivet::ProjectionApplier::name().
|
inlineprotectedinherited |
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.
Referenced by Rivet::ProjectionApplier::declare().
|
inlineinherited |
Get the named projection, specifying return type via a template argument (user-facing alias).
References Rivet::ProjectionApplier::name().
|
inlineinherited |
Get the named projection, specifying return type via a template argument.
References Rivet::ProjectionHandler::getProjection(), and Rivet::ProjectionApplier::getProjHandler().
Referenced by Rivet::pcmp().
|
inlineinherited |
Get the named projection (non-templated, so returns as a reference to a Projection base class).
References Rivet::ProjectionHandler::getProjection(), and Rivet::ProjectionApplier::getProjHandler().
|
protectedinherited |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
Referenced by Rivet::FParameter::compare(), Rivet::STAR_BES_Centrality::compare(), Rivet::CentralEtHCM::compare(), Rivet::BeamThrust::compare(), Rivet::MC_SumETFwdPbCentrality::compare(), Rivet::ATLAS::SumET_PB_Centrality::compare(), Rivet::Spherocity::compare(), Rivet::CentralityEstimator::compare(), Rivet::GammaGammaFinalState::compare(), Rivet::LossyFinalState< ConstRandomFilter >::compare(), Rivet::BRAHMSCentrality::compare(), Rivet::Thrust::compare(), Rivet::DISFinalState::compare(), Rivet::MC_pPbMinBiasTrigger::compare(), Rivet::ATLAS::SumET_PBPB_Centrality::compare(), compare(), Rivet::HeavyHadrons::compare(), Rivet::PercentileProjection::compare(), Rivet::ATLAS::MinBiasTrigger::compare(), Rivet::EventMixingBase::compare(), Rivet::GeneratedCentrality::compare(), and Rivet::Projection::fail().
|
protectedinherited |
Shortcut to make a named Cmp<Projection> comparison with the *this
object automatically passed as one of the parent projections.
Referenced by Rivet::SmearedMET::compare(), Rivet::SmearedParticles::compare(), Rivet::SmearedJets::compare(), Rivet::Correlators::compare(), Rivet::ALICE::PrimaryParticles::compare(), and Rivet::Projection::fail().