|
The Rivet MC analysis system
2.1.0
|
Get the DIS kinematic variables and relevant boosts for an event.
More...
#include <DISKinematics.hh>
List of all members.
Public Member Functions |
| DISKinematics () |
| The default constructor.
|
virtual const Projection * | clone () const |
| Clone on the heap.
|
double | Q2 () const |
| The .
|
double | W2 () const |
| The .
|
double | x () const |
| The Bjorken .
|
double | y () const |
| The Inelasticity .
|
double | s () const |
| The centre of mass energy .
|
const LorentzTransform & | boostHCM () const |
| The LorentzRotation needed to boost a particle to the hadronic CM frame.
|
const LorentzTransform & | boostBreit () const |
| The LorentzRotation needed to boost a particle to the hadronic Breit frame.
|
const Particle & | beamHadron () const |
| The incoming Hadron beam particle.
|
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.
|
|
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 |
|
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 |
virtual void | project (const Event &e) |
| Perform the projection operation on the supplied event.
|
virtual 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.
|
|
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 | _theQ2 |
| The .
|
double | _theW2 |
| The .
|
double | _theX |
| The Bjorken .
|
double | _theY |
| The Inelasticity .
|
double | _theS |
| The centre of mass energy .
|
Particle | _inHadron |
LorentzTransform | _hcm |
| The LorentzRotation needed to boost a particle to the hadronic CM frame.
|
LorentzTransform | _breit |
| The LorentzRotation needed to boost a particle to the hadronic Breit frame.
|
Friends |
class | Event |
| Event is a friend.
|
class | Cmp< Projection > |
| The Cmp specialization for Projection is a friend.
|
Detailed Description
Get the DIS kinematic variables and relevant boosts for an event.
Definition at line 15 of file DISKinematics.hh.
Constructor & Destructor Documentation
Member Function Documentation
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 116 of file ProjectionApplier.hh.
References ProjectionApplier::_addProjection().
Referenced by VetoedFinalState::addVetoOnThisFinalState(), BeamThrust::BeamThrust(), CDF_2009_S8057893::CDF_2009_S8057893::init(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), DISFinalState::DISFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), DressedLeptons::DressedLeptons(), FinalState::FinalState(), FoxWolframMoments::FoxWolframMoments(), FParameter::FParameter(), HadronicFinalState::HadronicFinalState(), HeavyHadrons::HeavyHadrons(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), CMS_2010_S8656010::init(), CMS_2010_S8547297::init(), ATLAS_2010_S8894728::init(), ALICE_2012_I1181770::init(), ATLAS_2011_S8994773::init(), CMS_2011_S8950903::init(), CMS_2012_PAS_QCD_11_010::init(), CMS_2011_S8978280::init(), ATLAS_2010_CONF_2010_049::init(), ATLAS_2011_I894867::init(), LHCB_2013_I1208105::init(), ALICE_2011_S8909580::init(), CMS_2011_S8941262::init(), CMS_2011_S8968497::init(), CMS_2011_S8973270::init(), CMS_2011_S9086218::init(), CMS_2011_S9215166::init(), TOTEM_2012_I1115294::init(), CMS_2012_I1087342::init(), CMS_2012_I1184941::init(), CMS_2012_I1193338::init(), ALICE_2011_S8945144::init(), CDF_2007_S7057202::init(), TOTEM_2012_002::init(), CMS_2011_I954992::init(), CMS_2011_S8957746::init(), ATLAS_2010_S8591806::init(), ATLAS_2011_S9002537::init(), D0_2011_I895662::init(), CMS_2011_S9088458::init(), LHCF_2012_I1115479::init(), ATLAS_2011_I930220::init(), D0_2010_S8570965::init(), MC_JETS::init(), MC_KTSPLITTINGS::init(), CDF_2012_NOTE10874::init(), STAR_2006_S6500200::init(), STAR_2008_S7993412::init(), UA5_1987_S1640666::init(), CMS_2013_I1209721::init(), CMS_QCD_10_024::init(), CDF_1997_S3541940::init(), BABAR_2007_S7266081::init(), ATLAS_2011_S9128077::init(), CDF_1993_S2742446::init(), CDF_2000_S4155203::init(), CDF_2005_S6080774::init(), MC_DIJET::init(), MC_DIPHOTON::init(), CDF_2006_S6450792::init(), MC_HINC::init(), MC_WINC::init(), MC_ZINC::init(), MC_ZZINC::init(), SFM_1984_S1178091::init(), ARGUS_1993_S2789213::init(), ATLAS_2012_I1204784::init(), CMS_2013_I1258128::init(), MC_ZKTSPLITTINGS::init(), STAR_2006_S6870392::init(), UA5_1982_S875503::init(), UA5_1989_S1926373::init(), D0_2008_S6879055::init(), D0_2010_S8821313::init(), MC_HJETS::init(), MC_HKTSPLITTINGS::init(), MC_PHOTONINC::init(), CDF_2008_S8093652::init(), MC_WKTSPLITTINGS::init(), MC_WWINC::init(), MC_ZJETS::init(), CDF_2008_S7782535::init(), ARGUS_1993_S2669951::init(), MC_ZZJETS::init(), MC_ZZKTSPLITTINGS::init(), ATLAS_2012_I1091481::init(), ALEPH_1991_S2435284::init(), CMS_2012_I1102908::init(), MC_WWKTSPLITTINGS::init(), ATLAS_2012_I1183818::init(), ATLAS_2013_I1243871::init(), D0_2008_S7863608::init(), ATLAS_2011_S9035664::init(), D0_2010_S8671338::init(), CMS_2012_I1107658::init(), E735_1998_S3905616::init(), MC_PHOTONJETS::init(), MC_PHOTONKTSPLITTINGS::init(), MC_WJETS::init(), MC_WWJETS::init(), ATLAS_2011_I944826::init(), CDF_1990_S2089246::init(), UA5_1986_S1583476::init(), CDF_1988_S1865951::init(), EXAMPLE_CUTS::init(), ALEPH_2002_S4823664::init(), MC_GENERIC::init(), CDF_2005_S6217184::init(), MC_IDENTIFIED::init(), MC_LEADJETUE::init(), MC_TTBAR::init(), MC_PHOTONJETUE::init(), OPAL_1995_S3198391::init(), OPAL_1996_S3257789::init(), OPAL_1997_S3608263::init(), OPAL_1998_S3702294::init(), OPAL_1998_S3749908::init(), OPAL_2000_S4418603::init(), ATLAS_2011_S8924791::init(), ATLAS_2010_S8817804::init(), D0_1996_S3324664::init(), D0_2007_S7075677::init(), ALEPH_1996_S3196992::init(), D0_2009_S8202443::init(), DELPHI_1999_S3960137::init(), ATLAS_2011_I945498::init(), ATLAS_2011_I954993::init(), ATLAS_2012_I1119557::init(), D0_2001_S4674421::init(), D0_2008_S7554427::init(), CDF_1994_S2952106::init(), H1_1995_S3167097::init(), MC_QCD_PARTONS::init(), UA1_1990_S2044935::init(), ZEUS_2001_S4815815::init(), ATLAS_2012_I1188891::init(), D0_2008_S7837160::init(), ATLAS_2011_S9131140::init(), LHCB_2011_I919315::init(), CDF_2008_S7540469::init(), CDF_2008_S7828950::init(), STAR_2009_UE_HELEN::init(), CMS_2012_I941555::init(), STAR_2006_S6860818::init(), ALICE_2010_S8624100::init(), JADE_1998_S3612880::init(), OPAL_1997_S3396100::init(), JADE_OPAL_2000_S4300807::init(), EXAMPLE::init(), CDF_2008_S8095620::init(), D0_1996_S3214044::init(), DELPHI_1995_S3137023::init(), MC_PHOTONS::init(), MC_SUSY::init(), ATLAS_2011_I925932::init(), ALEPH_2004_S5765862::init(), ATLAS_2012_I1125575::init(), CMS_2013_I1218372::init(), ALICE_2010_S8625980::init(), ALICE_2010_S8706239::init(), LHCB_2013_I1218996::init(), CDF_2009_NOTE_9936::init(), D0_2000_S4480767::init(), CDF_2009_S8383952::init(), ATLAS_2011_I926145::init(), CDF_2009_S8436959::init(), ATLAS_2011_S8971293::init(), CDF_1998_S3618439::init(), D0_2009_S8349509::init(), CDF_2000_S4266730::init(), CDF_1996_S3108457::init(), D0_2009_S8320160::init(), CDF_2001_S4563131::init(), MC_WPOL::init(), DELPHI_2002_069_CONF_603::init(), SLD_2002_S4869273::init(), ATLAS_2010_S8919674::init(), CDF_1996_S3349578::init(), D0_2006_S6438750::init(), ALEPH_2001_S4656318::init(), CDF_2001_S4517016::init(), ATLAS_2012_I1082936::init(), D0_2010_S8566488::init(), CDF_1996_S3418421::init(), SLD_1996_S3398250::init(), UA5_1988_S1867512::init(), D0_2008_S7662670::init(), ATLAS_2011_S9108483::init(), CDF_2006_S6653332::init(), CDF_2008_S7541902::init(), ATLAS_2013_I1230812::init(), ATLAS_2012_I1095236::init(), ATLAS_2012_CONF_2012_109::init(), ATLAS_2012_I1083318::init(), ATLAS_2012_I1125961::init(), ATLAS_2011_S9212183::init(), OPAL_2002_S5361494::init(), ATLAS_2012_CONF_2012_104::init(), ATLAS_2011_S8983313::init(), ATLAS_2012_I1190891::init(), ATLAS_2012_I943401::init(), ATLAS_2012_I946427::init(), ATLAS_2011_S9225137::init(), ATLAS_2012_I1082009::init(), ATLAS_2013_I1217867::init(), ATLAS_2011_CONF_2011_090::init(), ATLAS_2011_S9212353::init(), ATLAS_2012_CONF_2012_105::init(), ATLAS_2012_CONF_2012_001::init(), DELPHI_2000_S4328825::init(), ATLAS_2012_CONF_2012_103::init(), TASSO_1990_S2148048::init(), ATLAS_2011_S9019561::init(), ATLAS_2012_I1117704::init(), ATLAS_2012_I1112263::init(), ATLAS_2012_I1180197::init(), ATLAS_2011_CONF_2011_098::init(), CMS_2013_I1224539_ZJET::init(), ATLAS_2012_I1126136::init(), ATLAS_2012_I1084540::init(), CMS_2013_I1224539_WJET::init(), CMS_2013_I1224539_DIJET::init(), ATLAS_2012_I1186556::init(), CDF_2009_S8233977::init(), CDF_2010_S8591881_DY::init(), ATLAS_2012_CONF_2012_153::init(), CDF_2010_S8591881_QCD::init(), D0_2004_S5992206::init(), ATLAS_2010_S8914702::init(), LHCB_2011_I917009::init(), CDF_2001_S4751469::init(), ATLAS_2011_S9120807::init(), D0_2008_S7719523::init(), ATLAS_2010_S8918562::init(), LHCB_2012_I1119400::init(), ATLAS_2011_S9041966::init(), ATLAS_2012_I1094568::init(), DELPHI_1996_S3430090::init(), ALEPH_1996_S3486095::init(), ALEPH_1999_S4193598::init(), ATLAS_2012_I1093738::init(), OPAL_2004_S6132243::init(), OPAL_1994_S2927284::init(), STAR_2008_S7869363::init(), BABAR_2007_S6895344::init(), ATLAS_2011_S9126244::init(), MC_VH2BB::init(), BABAR_2005_S6181155::init(), BELLE_2001_S4598261::init(), ATLAS_2011_I919017::init(), OPAL_2001_S4553896::init(), DELPHI_2003_WUD_03_11::init(), CDF_2004_S5839831::init(), BABAR_2003_I593379::init(), ARGUS_1993_S2653028::init(), CLEO_2004_S5809304::init(), OPAL_1998_S3780481::init(), OPAL_1993_S2692198::init(), ATLAS_2012_I1093734::init(), ATLAS_2012_I1094564::init(), H1_1994_S2919893::init(), H1_2000_S4129130::init(), SLD_2004_S5693039::init(), BELLE_2006_S6265367::init(), SLD_1999_S3743934::init(), PDG_HADRON_MULTIPLICITIES::init(), PDG_HADRON_MULTIPLICITIES_RATIOS::init(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), NeutralFinalState::NeutralFinalState(), NonHadronicFinalState::NonHadronicFinalState(), ParisiTensor::ParisiTensor(), PrimaryHadrons::PrimaryHadrons(), Sphericity::Sphericity(), Spherocity::Spherocity(), Thrust::Thrust(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), VetoedFinalState::VetoedFinalState(), VisibleFinalState::VisibleFinalState(), WFinder::WFinder(), and ZFinder::ZFinder().
{
const Projection& reg = _addProjection(proj, name);
const PROJ& rtn = dynamic_cast<const PROJ&>(reg);
return rtn;
}
const PROJ& applyProjection |
( |
const Event & |
evt, |
|
|
const std::string & |
name |
|
) |
| const [inline, 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 22 of file Projection.cc.
References Projection::compare().
Referenced by less< const Rivet::Projection * >::operator()().
{
const std::type_info& thisid = typeid(*this);
const std::type_info& otherid = typeid(p);
if (thisid == otherid) {
return compare(p) < 0;
} else {
return thisid.before(otherid);
}
}
const PROJ& getProjection |
( |
const std::string & |
name | ) |
const [inline, inherited] |
Shortcut to make a named Cmp<Projection> comparison with the *this object automatically passed as one of the parent projections.
Definition at line 45 of file Projection.cc.
References Rivet::pcmp().
Referenced by BeamThrust::compare(), ChargedLeptons::compare(), FParameter::compare(), CentralEtHCM::compare(), MergedFinalState::compare(), DISLepton::compare(), ChargedFinalState::compare(), DISKinematics::compare(), DISFinalState::compare(), NeutralFinalState::compare(), VisibleFinalState::compare(), LeadingParticlesFinalState::compare(), ParisiTensor::compare(), Spherocity::compare(), FoxWolframMoments::compare(), DressedLeptons::compare(), LossyFinalState< ConstRandomFilter >::compare(), MissingMomentum::compare(), Thrust::compare(), InvMassFinalState::compare(), Sphericity::compare(), Hemispheres::compare(), ZFinder::compare(), IdentifiedFinalState::compare(), WFinder::compare(), JetShape::compare(), VetoedFinalState::compare(), and FastJets::compare().
{
return pcmp(*this, otherparent, pname);
}
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().
{
return pcmp(*this, otherparent, pname);
}
virtual std::string name |
( |
| ) |
const [inline, virtual, inherited] |
Perform the projection operation on the supplied event.
Implements Projection.
Definition at line 8 of file DISKinematics.cc.
References DISKinematics::_breit, DISKinematics::_hcm, DISKinematics::_inHadron, DISKinematics::_theQ2, DISKinematics::_theS, DISKinematics::_theW2, DISKinematics::_theX, DISKinematics::_theY, Rivet::angle(), FourVector::azimuthalAngle(), Vector3::azimuthalAngle(), Rivet::beams(), FourMomentum::boostVector(), LorentzTransform::combine(), Rivet::dot(), DISLepton::in(), Rivet::invariant(), Rivet::PID::isHadron(), Rivet::isZero(), FourMomentum::mass2(), Vector3::mkX(), Vector3::mkY(), Vector3::mkZ(), Particle::momentum(), DISLepton::out(), Rivet::PI, FourVector::polarAngle(), LorentzTransform::preMult(), FourMomentum::px(), DISKinematics::Q2(), LorentzTransform::setBoost(), LorentzTransform::transform(), FourVector::vector3(), and DISKinematics::x().
{
const ParticlePair& inc = applyProjection<Beam>(e, "Beam").beams();
bool firstIsHadron = PID::isHadron(inc.first.pdgId());
bool secondIsHadron = PID::isHadron(inc.second.pdgId());
if (firstIsHadron && !secondIsHadron) {
_inHadron = inc.first;
} else if (!firstIsHadron && secondIsHadron) {
_inHadron = inc.second;
} else {
throw Error("DISKinematics projector could not find the correct beam hadron");
}
const DISLepton& dislep = applyProjection<DISLepton>(e, "Lepton");
const FourMomentum pLepIn = dislep.in().momentum();
const FourMomentum pLepOut = dislep.out().momentum();
const FourMomentum pHad = _inHadron.momentum();
const FourMomentum pGamma = pLepIn - pLepOut;
const FourMomentum tothad = pGamma + pHad;
_theQ2 = -pGamma.mass2();
_theW2 = tothad.mass2();
_theX = Q2()/(2.0 * pGamma * pHad);
_theY = (pGamma * pHad) / (pLepIn * pHad);
_theS = invariant(pLepIn + pHad);
LorentzTransform tmp;
tmp.setBoost(-tothad.boostVector());
FourMomentum pGammaHCM = tmp.transform(pGamma);
tmp.preMult(Matrix3(Vector3::mkZ(), -pGammaHCM.azimuthalAngle()));
pGammaHCM = tmp.transform(pGamma);
assert(isZero(dot(pGammaHCM.vector3(), Vector3::mkY())));
const double rot_angle = pGammaHCM.polarAngle() * (pGammaHCM.px() >= 0 ? -1 : 1);
tmp.preMult(Matrix3(Vector3::mkY(), rot_angle));
pGammaHCM = tmp.transform(pGamma);
assert(isZero(dot(pGammaHCM.vector3(), Vector3::mkX())));
assert(isZero(dot(pGammaHCM.vector3(), Vector3::mkY())));
assert(isZero(angle(pGammaHCM.vector3(), Vector3::mkZ())));
FourMomentum pLepOutHCM = tmp.transform(pLepOut);
tmp.preMult(Matrix3(Vector3::mkZ(), -pLepOutHCM.azimuthalAngle()));
assert(isZero(tmp.transform(pLepOut).azimuthalAngle()));
_hcm = tmp;
tmp.preMult(Matrix3(Vector3::mkX(), PI));
const double bz = 1 - 2*x();
_breit = LorentzTransform(Vector3::mkZ() * bz).combine(tmp);
assert(isZero(angle(_breit.transform(pGamma).vector3(), -Vector3::mkZ())));
assert(isZero(_breit.transform(pLepOut).azimuthalAngle()));
}
double Q2 |
( |
| ) |
const [inline] |
double s |
( |
| ) |
const [inline] |
void setName |
( |
const std::string & |
name | ) |
[inline, inherited] |
Used by derived classes to set their name.
Definition at line 122 of file Projection.hh.
References Projection::_name, and Projection::name().
Referenced by FastJets::_init1(), FastJets::_init2(), FastJets::_init3(), Beam::Beam(), BeamThrust::BeamThrust(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ConstLossyFinalState::ConstLossyFinalState(), DISFinalState::DISFinalState(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), DressedLeptons::DressedLeptons(), FinalState::FinalState(), FoxWolframMoments::FoxWolframMoments(), FParameter::FParameter(), HadronicFinalState::HadronicFinalState(), HeavyHadrons::HeavyHadrons(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), InitialQuarks::InitialQuarks(), JetAlg::JetAlg(), JetShape::JetShape(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState< ConstRandomFilter >::LossyFinalState(), MergedFinalState::MergedFinalState(), MissingMomentum::MissingMomentum(), NeutralFinalState::NeutralFinalState(), NonHadronicFinalState::NonHadronicFinalState(), ParisiTensor::ParisiTensor(), PrimaryHadrons::PrimaryHadrons(), Sphericity::Sphericity(), Spherocity::Spherocity(), Thrust::Thrust(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerCDFRun2::TriggerCDFRun2(), TriggerUA5::TriggerUA5(), UnstableFinalState::UnstableFinalState(), VetoedFinalState::VetoedFinalState(), VisibleFinalState::VisibleFinalState(), WFinder::WFinder(), and ZFinder::ZFinder().
double W2 |
( |
| ) |
const [inline] |
double x |
( |
| ) |
const [inline] |
double y |
( |
| ) |
const [inline] |
Friends And Related Function Documentation
friend class Event [friend, inherited] |
Member Data Documentation
The documentation for this class was generated from the following files:
|