#include <VetoedFinalState.hh>
Definition at line 16 of file VetoedFinalState.hh.
Public Types | |
typedef pair< double, double > | BinaryCut |
Typedef for a pair of back-to-back cuts. | |
typedef map< long, BinaryCut > | VetoDetails |
Typedef for a vetoing entry. | |
typedef multimap< int, BinaryCut > | CompositeVeto |
Typedef for a veto on a composite particle mass. | |
typedef Particle | entity_type |
typedef ParticleVector | collection_type |
Public Member Functions | |
const VetoDetails & | vetoDetails () const |
Get the list of particle IDs and ![]() | |
VetoedFinalState & | addVetoDetail (const long id, const double ptmin, const double ptmax) |
VetoedFinalState & | addVetoPairDetail (const long id, const double ptmin, const double ptmax) |
VetoedFinalState & | addVetoPairId (const long id) |
VetoedFinalState & | addVetoId (const long id) |
Add a particle ID to veto (all ![]() | |
VetoedFinalState & | vetoNeutrinos () |
Veto all neutrinos (convenience method). | |
VetoedFinalState & | addCompositeMassVeto (const double &mass, const double &width, int nProducts=2) |
VetoedFinalState & | addDecayProductsVeto (const long id) |
VetoedFinalState & | setVetoDetails (const VetoDetails &ids) |
Set the list of particle IDs and ![]() | |
VetoedFinalState & | reset () |
Clear the list of particle IDs and ranges to veto. | |
VetoedFinalState & | addVetoOnThisFinalState (FinalState &fs) |
Veto particles from a supplied final state. | |
virtual const ParticleVector & | particles () const |
Get the final-state particles. | |
template<typename F> | |
const ParticleVector & | particles (F sorter) const |
Get the final-state particles, ordered by supplied sorting function object. | |
const ParticleVector & | particlesByPt () const |
Get the final-state particles, ordered by ![]() | |
const ParticleVector & | particlesByE () const |
Get the final-state particles, ordered by ![]() | |
const ParticleVector & | particlesByEt () const |
Get the final-state particles, ordered by ![]() | |
virtual size_t | size () const |
Access the projected final-state particles. | |
virtual bool | empty () const |
Is this final state empty? | |
virtual bool | isEmpty () const |
const collection_type & | entities () const |
Template-usable interface common to JetAlg. | |
bool | before (const Projection &p) const |
virtual const std::set< BeamPair > | beamPairs () const |
virtual std::string | name () const |
Get the name of the projection. | |
Projection & | addBeamPair (const ParticleName &beam1, const ParticleName &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. | |
Constructors | |
VetoedFinalState () | |
Default constructor. | |
VetoedFinalState (const FinalState &fsp) | |
Constructor with specific FinalState. | |
VetoedFinalState (const VetoDetails &vetocodes) | |
VetoedFinalState (const FinalState &fsp, const VetoDetails &vetocodes) | |
virtual const Projection * | clone () const |
Clone on the heap. | |
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) |
Apply the projection on the supplied event. | |
int | compare (const Projection &p) const |
Compare projections. | |
bool | accept (const Particle &p) const |
Decide if a particle is to be accepted or not. | |
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 | |
vector< pair< double, double > > | _etaRanges |
The ranges allowed for pseudorapidity. | |
double | _ptmin |
The minimum allowed transverse momentum. | |
ParticleVector | _theParticles |
The final-state particles. | |
bool | _allowProjReg |
Flag to forbid projection registration in analyses until the init phase. | |
Private Types | |
typedef set< long > | ParentVetos |
Private Attributes | |
VetoDetails | _vetoCodes |
The final-state particles. | |
CompositeVeto | _compositeVetoes |
Composite particle masses to veto. | |
set< int > | _nCompositeDecays |
ParentVetos | _parentVetoes |
Set of decaying particle IDs to veto. | |
set< string > | _vetofsnames |
Set of finalstate to be vetoed. | |
Friends | |
class | Event |
Event is a friend. | |
class | Cmp< Projection > |
The Cmp specialization for Projection is a friend. | |
class | Projectionhandler |
typedef pair<double, double> BinaryCut |
typedef map<long, BinaryCut> VetoDetails |
typedef multimap<int, BinaryCut> CompositeVeto |
typedef set<long> ParentVetos [private] |
Definition at line 179 of file VetoedFinalState.hh.
typedef Particle entity_type [inherited] |
Definition at line 75 of file FinalState.hh.
typedef ParticleVector collection_type [inherited] |
Definition at line 76 of file FinalState.hh.
VetoedFinalState | ( | ) | [inline] |
Default constructor.
Definition at line 33 of file VetoedFinalState.hh.
References ProjectionApplier::addProjection(), FinalState::FinalState(), and Projection::setName().
Referenced by VetoedFinalState::clone().
00033 { 00034 setName("VetoedFinalState"); 00035 addProjection(FinalState(), "FS"); 00036 }
VetoedFinalState | ( | const FinalState & | fsp | ) | [inline] |
Constructor with specific FinalState.
Definition at line 39 of file VetoedFinalState.hh.
References ProjectionApplier::addProjection(), and Projection::setName().
00040 { 00041 setName("VetoedFinalState"); 00042 addProjection(fsp, "FS"); 00043 }
VetoedFinalState | ( | const VetoDetails & | vetocodes | ) | [inline] |
You can add a map of ID plus a pair containing and
- these define the range of particles to be vetoed.
Definition at line 47 of file VetoedFinalState.hh.
References ProjectionApplier::addProjection(), FinalState::FinalState(), and Projection::setName().
00048 : _vetoCodes(vetocodes) 00049 { 00050 setName("VetoedFinalState"); 00051 addProjection(FinalState(), "FS"); 00052 }
VetoedFinalState | ( | const FinalState & | fsp, | |
const VetoDetails & | vetocodes | |||
) | [inline] |
You can add a map of ID plus a pair containing and
- these define the range of particles to be vetoed. This version also supplies a specifi FinalState to be used.
Definition at line 57 of file VetoedFinalState.hh.
References ProjectionApplier::addProjection(), and Projection::setName().
00058 : _vetoCodes(vetocodes) 00059 { 00060 setName("VetoedFinalState"); 00061 addProjection(fsp, "FS"); 00062 }
virtual const Projection* clone | ( | ) | const [inline, virtual] |
Clone on the heap.
Reimplemented from FinalState.
Definition at line 66 of file VetoedFinalState.hh.
References VetoedFinalState::VetoedFinalState().
00066 { 00067 return new VetoedFinalState(*this); 00068 }
const VetoDetails& vetoDetails | ( | ) | const [inline] |
Get the list of particle IDs and ranges to veto.
Definition at line 75 of file VetoedFinalState.hh.
References VetoedFinalState::_vetoCodes.
00075 { 00076 return _vetoCodes; 00077 }
VetoedFinalState& addVetoDetail | ( | const long | id, | |
const double | ptmin, | |||
const double | ptmax | |||
) | [inline] |
Add a particle ID and range to veto. Particles with
IN the given range will be rejected.
Definition at line 81 of file VetoedFinalState.hh.
References VetoedFinalState::_vetoCodes.
Referenced by VetoedFinalState::addVetoPairDetail().
00081 { 00082 BinaryCut ptrange(ptmin, ptmax); 00083 _vetoCodes.insert(make_pair(id, ptrange)); 00084 return *this; 00085 }
VetoedFinalState& addVetoPairDetail | ( | const long | id, | |
const double | ptmin, | |||
const double | ptmax | |||
) | [inline] |
Add a particle/antiparticle pair to veto in a given range. Given a single ID, both the particle and its conjugate antiparticle will be rejected if their
is IN the given range.
Definition at line 89 of file VetoedFinalState.hh.
References VetoedFinalState::addVetoDetail().
Referenced by D0_2004_S5992206::init(), CDF_2008_S7782535::init(), CDF_2005_S6217184::init(), and CDF_1994_S2952106::init().
00089 { 00090 addVetoDetail(id, ptmin, ptmax); 00091 addVetoDetail(-id, ptmin, ptmax); 00092 return *this; 00093 }
VetoedFinalState& addVetoPairId | ( | const long | id | ) | [inline] |
Add a particle/antiparticle pair to veto. Given a single ID, both the particle and its corresponding antiparticle (for all values) will be vetoed.
Definition at line 97 of file VetoedFinalState.hh.
References VetoedFinalState::addVetoId().
Referenced by STAR_2009_UE_HELEN::init(), and VetoedFinalState::vetoNeutrinos().
VetoedFinalState& addVetoId | ( | const long | id | ) | [inline] |
Add a particle ID to veto (all range will be vetoed).
Definition at line 104 of file VetoedFinalState.hh.
References VetoedFinalState::_vetoCodes.
Referenced by Rivet::_setup_vfs(), VetoedFinalState::addVetoPairId(), and MC_SUSY::init().
00104 { 00105 BinaryCut ptrange(0.0, numeric_limits<double>::max()); 00106 _vetoCodes.insert(make_pair(id, ptrange)); 00107 return *this; 00108 }
VetoedFinalState& vetoNeutrinos | ( | ) | [inline] |
Veto all neutrinos (convenience method).
Definition at line 111 of file VetoedFinalState.hh.
References VetoedFinalState::addVetoPairId(), Rivet::NU_E, Rivet::NU_MU, and Rivet::NU_TAU.
Referenced by Rivet::_setup_vfs(), STAR_2009_UE_HELEN::init(), MC_SUSY::init(), D0_2008_S6879055::init(), D0_2004_S5992206::init(), D0_2001_S4674421::init(), CDF_2008_S7782535::init(), CDF_2005_S6217184::init(), and CDF_1994_S2952106::init().
00111 { 00112 addVetoPairId(NU_E); 00113 addVetoPairId(NU_MU); 00114 addVetoPairId(NU_TAU); 00115 return *this; 00116 }
VetoedFinalState& addCompositeMassVeto | ( | const double & | mass, | |
const double & | width, | |||
int | nProducts = 2 | |||
) | [inline] |
Add a veto on composite masses within a given width. The composite mass is composed of nProducts decay products @ todo might we want to specify a range of pdg ids for the decay products?
Definition at line 121 of file VetoedFinalState.hh.
References VetoedFinalState::_compositeVetoes, and VetoedFinalState::_nCompositeDecays.
00121 { 00122 double halfWidth = 0.5*width; 00123 BinaryCut massRange(mass - halfWidth, mass + halfWidth); 00124 _compositeVetoes.insert(make_pair(nProducts, massRange)); 00125 _nCompositeDecays.insert(nProducts); 00126 return *this; 00127 }
VetoedFinalState& addDecayProductsVeto | ( | const long | id | ) | [inline] |
Veto the decay products of particle with pdg id
Definition at line 132 of file VetoedFinalState.hh.
References VetoedFinalState::_parentVetoes.
00132 { 00133 _parentVetoes.insert(id); 00134 return *this; 00135 }
VetoedFinalState& setVetoDetails | ( | const VetoDetails & | ids | ) | [inline] |
Set the list of particle IDs and ranges to veto.
Definition at line 138 of file VetoedFinalState.hh.
References VetoedFinalState::_vetoCodes.
00138 { 00139 _vetoCodes = ids; 00140 return *this; 00141 }
VetoedFinalState& reset | ( | ) | [inline] |
Clear the list of particle IDs and ranges to veto.
Definition at line 144 of file VetoedFinalState.hh.
References VetoedFinalState::_vetoCodes.
00144 { 00145 _vetoCodes.clear(); 00146 return *this; 00147 }
VetoedFinalState& addVetoOnThisFinalState | ( | FinalState & | fs | ) | [inline] |
Veto particles from a supplied final state.
Definition at line 151 of file VetoedFinalState.hh.
References VetoedFinalState::_vetofsnames, ProjectionApplier::addProjection(), and Projection::name().
Referenced by ZFinder::_init(), WFinder::_init(), MC_PHOTONJETS::init(), D0_2008_S7719523::init(), D0_2008_S6879055::init(), CDF_2008_S8095620::init(), CDF_2008_S7541902::init(), and CDF_2006_S6653332::init().
00151 { 00152 stringstream st_name; 00153 st_name << "FS_" << _vetofsnames.size(); 00154 string name = st_name.str(); 00155 addProjection(fs, name); 00156 _vetofsnames.insert(name); 00157 return *this; 00158 }
void project | ( | const Event & | e | ) | [protected, virtual] |
Apply the projection on the supplied event.
Reimplemented from FinalState.
Definition at line 34 of file VetoedFinalState.cc.
References VetoedFinalState::_compositeVetoes, VetoedFinalState::_nCompositeDecays, VetoedFinalState::_parentVetoes, FinalState::_theParticles, VetoedFinalState::_vetoCodes, VetoedFinalState::_vetofsnames, Log::DEBUG, Projection::getLog(), Log::isActive(), std::join(), Rivet::mass(), Rivet::mass2(), Particle::momentum(), FinalState::particles(), Particle::pdgId(), FourMomentum::pT(), and Log::TRACE.
00034 { 00035 const FinalState& fs = applyProjection<FinalState>(e, "FS"); 00036 _theParticles.clear(); 00037 _theParticles.reserve(fs.particles().size()); 00038 foreach (const Particle& p, fs.particles()) { 00039 if (getLog().isActive(Log::DEBUG)) { 00040 vector<long> codes; 00041 for (VetoDetails::const_iterator code = _vetoCodes.begin(); code != _vetoCodes.end(); ++code) { 00042 codes.push_back(code->first); 00043 } 00044 const string codestr = "{ " + join(codes) + " }"; 00045 getLog() << Log::TRACE << p.pdgId() << " vs. veto codes = " 00046 << codestr << " (" << codes.size() << ")" << endl; 00047 } 00048 const long pdgid = p.pdgId(); 00049 const double pt = p.momentum().pT(); 00050 VetoDetails::iterator iter = _vetoCodes.find(pdgid); 00051 if (iter == _vetoCodes.end()) { 00052 getLog() << Log::TRACE << "Storing with PDG code = " << pdgid << ", pT = " << pt << endl; 00053 _theParticles.push_back(p); 00054 } else { 00055 // This particle code is listed as a possible veto... check pT. 00056 // Make sure that the pT range is sensible: 00057 BinaryCut ptrange = iter->second; 00058 assert(ptrange.first <= ptrange.second); 00059 stringstream rangess; 00060 if (ptrange.first < numeric_limits<double>::max()) rangess << ptrange.second; 00061 rangess << " - "; 00062 if (ptrange.second < numeric_limits<double>::max()) rangess << ptrange.second; 00063 getLog() << Log::TRACE << "ID = " << pdgid << ", pT range = " << rangess.str(); 00064 stringstream debugline; 00065 debugline << "with PDG code = " << pdgid << " pT = " << p.momentum().pT(); 00066 if (pt < ptrange.first || pt > ptrange.second) { 00067 getLog() << Log::TRACE << "Storing " << debugline.str() << endl; 00068 _theParticles.push_back(p); 00069 } else { 00070 getLog() << Log::TRACE << "Vetoing " << debugline.str() << endl; 00071 } 00072 } 00073 } 00074 00075 set<ParticleVector::iterator> toErase; 00076 for (set<int>::iterator nIt = _nCompositeDecays.begin(); 00077 nIt != _nCompositeDecays.end() && !_theParticles.empty(); ++nIt) { 00078 map<set<ParticleVector::iterator>, FourMomentum> oldMasses; 00079 map<set<ParticleVector::iterator>, FourMomentum> newMasses; 00080 set<ParticleVector::iterator> start; 00081 start.insert(_theParticles.begin()); 00082 oldMasses.insert(pair<set<ParticleVector::iterator>, FourMomentum> 00083 (start, _theParticles.begin()->momentum())); 00084 00085 for (int nParts = 1; nParts != *nIt; ++nParts) { 00086 for (map<set<ParticleVector::iterator>, FourMomentum>::iterator mIt = oldMasses.begin(); 00087 mIt != oldMasses.end(); ++mIt) { 00088 ParticleVector::iterator pStart = *(mIt->first.rbegin()); 00089 for (ParticleVector::iterator pIt = pStart + 1; pIt != _theParticles.end(); ++pIt) { 00090 FourMomentum cMom = mIt->second + pIt->momentum(); 00091 set<ParticleVector::iterator> pList(mIt->first); 00092 pList.insert(pIt); 00093 newMasses[pList] = cMom; 00094 } 00095 } 00096 oldMasses = newMasses; 00097 newMasses.clear(); 00098 } 00099 for (map<set<ParticleVector::iterator>, FourMomentum>::iterator mIt = oldMasses.begin(); 00100 mIt != oldMasses.end(); ++mIt) { 00101 double mass2 = mIt->second.mass2(); 00102 if (mass2 >= 0.0) { 00103 double mass = sqrt(mass2); 00104 for (CompositeVeto::iterator cIt = _compositeVetoes.lower_bound(*nIt); 00105 cIt != _compositeVetoes.upper_bound(*nIt); ++cIt) { 00106 BinaryCut massRange = cIt->second; 00107 if (mass < massRange.second && mass > massRange.first) { 00108 for (set<ParticleVector::iterator>::iterator lIt = mIt->first.begin(); 00109 lIt != mIt->first.end(); ++lIt) { 00110 toErase.insert(*lIt); 00111 } 00112 } 00113 } 00114 } 00115 } 00116 } 00117 00118 for (set<ParticleVector::iterator>::reverse_iterator p = toErase.rbegin(); p != toErase.rend(); ++p) { 00119 _theParticles.erase(*p); 00120 } 00121 00122 /// @todo Improve! 00123 for (ParentVetos::const_iterator vIt = _parentVetoes.begin(); vIt != _parentVetoes.end(); ++vIt) { 00124 for (ParticleVector::iterator p = _theParticles.begin(); p != _theParticles.end(); ++p) { 00125 GenVertex* startVtx = ((*p).genParticle()).production_vertex(); 00126 bool veto = false; 00127 if (startVtx!=0) { 00128 for (GenVertex::particle_iterator pIt = startVtx->particles_begin(HepMC::ancestors); 00129 pIt != startVtx->particles_end(HepMC::ancestors) && !veto; ++pIt) { 00130 if (*vIt == (*pIt)->pdg_id()) { 00131 veto = true; 00132 p = _theParticles.erase(p); 00133 --p; 00134 } 00135 } 00136 } 00137 } 00138 } 00139 00140 // Now veto on the FS 00141 foreach (const string& ifs, _vetofsnames) { 00142 const FinalState& vfs = applyProjection<FinalState>(e, ifs); 00143 const ParticleVector& vfsp = vfs.particles(); 00144 for (ParticleVector::iterator icheck = _theParticles.begin(); icheck != _theParticles.end(); ++icheck) { 00145 if (!icheck->hasGenParticle()) continue; 00146 bool found = false; 00147 for (ParticleVector::const_iterator ipart = vfsp.begin(); ipart != vfsp.end(); ++ipart){ 00148 if (!ipart->hasGenParticle()) continue; 00149 getLog() << Log::TRACE << "Comparing barcode " << icheck->genParticle().barcode() 00150 << " with veto particle " << ipart->genParticle().barcode() << endl; 00151 if (ipart->genParticle().barcode() == icheck->genParticle().barcode()){ 00152 found = true; 00153 break; 00154 } 00155 } 00156 if (found) { 00157 _theParticles.erase(icheck); 00158 --icheck; 00159 } 00160 } 00161 } 00162 }
int compare | ( | const Projection & | p | ) | const [protected, virtual] |
Compare projections.
Reimplemented from FinalState.
Definition at line 11 of file VetoedFinalState.cc.
References VetoedFinalState::_compositeVetoes, VetoedFinalState::_parentVetoes, VetoedFinalState::_vetoCodes, VetoedFinalState::_vetofsnames, Rivet::cmp(), Rivet::EQUIVALENT, ProjectionApplier::getProjection(), and Projection::mkNamedPCmp().
00011 { 00012 const PCmp fscmp = mkNamedPCmp(p, "FS"); 00013 if (fscmp != EQUIVALENT) return fscmp; 00014 const VetoedFinalState& other = dynamic_cast<const VetoedFinalState&>(p); 00015 int vfssize = cmp(_vetofsnames.size(), other._vetofsnames.size()); 00016 if (vfssize != EQUIVALENT) return vfssize; 00017 //if the size is the same retrieve the FS projections, store them in two ordered set, 00018 //compare the sets element by element 00019 set<const Projection*> vfs; 00020 set<const Projection*> other_vfs; 00021 foreach (const string& ifs, _vetofsnames) { 00022 vfs.insert(&(getProjection(ifs))); 00023 other_vfs.insert(&(other.getProjection(ifs))); 00024 } 00025 int isetcmp = cmp(vfs, other_vfs); 00026 if (isetcmp != EQUIVALENT) return isetcmp; 00027 return \ 00028 cmp(_vetoCodes, other._vetoCodes) || 00029 cmp(_compositeVetoes, other._compositeVetoes) || 00030 cmp(_parentVetoes, other._parentVetoes); 00031 }
virtual const ParticleVector& particles | ( | ) | const [inline, virtual, inherited] |
Get the final-state particles.
Definition at line 39 of file FinalState.hh.
References FinalState::_theParticles.
Referenced by UA5_1986_S1583476::analyze(), UA5_1982_S875503::analyze(), UA1_1990_S2044935::analyze(), STAR_2009_UE_HELEN::analyze(), STAR_2008_S7993412::analyze(), STAR_2006_S6500200::analyze(), SFM_1984_S1178091::analyze(), PDG_HADRON_MULTIPLICITIES_RATIOS::analyze(), PDG_HADRON_MULTIPLICITIES::analyze(), OPAL_1998_S3780481::analyze(), MC_ZJETS::analyze(), MC_WJETS::analyze(), MC_TTBAR::analyze(), MC_SUSY::analyze(), MC_PHOTONJETUE::analyze(), MC_PHOTONJETS::analyze(), MC_LEADINGJETS::analyze(), MC_DIJET::analyze(), H1_2000_S4129130::analyze(), H1_1995_S3167097::analyze(), H1_1994_S2919893::analyze(), E735_1998_S3905616::analyze(), DELPHI_2002_069_CONF_603::analyze(), DELPHI_1995_S3137023::analyze(), D0_2009_S8349509::analyze(), D0_2009_S8202443::analyze(), D0_2008_S7863608::analyze(), D0_2008_S7837160::analyze(), D0_2008_S7719523::analyze(), D0_2008_S7554427::analyze(), D0_2008_S6879055::analyze(), D0_2007_S7075677::analyze(), D0_2006_S6438750::analyze(), D0_2001_S4674421::analyze(), D0_1998_S3711838::analyze(), CDF_2009_S8383952::analyze(), CDF_2009_S8233977::analyze(), CDF_2008_S8095620::analyze(), CDF_2008_S7541902::analyze(), CDF_2008_S7540469::analyze(), CDF_2008_NOTE_9351::analyze(), CDF_2008_LEADINGJETS::analyze(), CDF_2006_S6653332::analyze(), CDF_2002_S4796047::analyze(), CDF_2000_S4155203::analyze(), CDF_1991_S2313472::analyze(), CDF_1990_S2089246::analyze(), CDF_1988_S1865951::analyze(), ATLAS_2010_S8591806::analyze(), ALEPH_1996_S3486095::analyze(), Thrust::calc(), Sphericity::calc(), FinalState::entities(), FinalState::particlesByE(), FinalState::particlesByEt(), FinalState::particlesByPt(), ZFinder::project(), WFinder::project(), VetoedFinalState::project(), TriggerUA5::project(), TriggerCDFRun0Run1::project(), TotalVisibleMomentum::project(), SVertex::project(), NeutralFinalState::project(), Multiplicity::project(), MergedFinalState::project(), LossyFinalState::project(), LeadingParticlesFinalState::project(), KtJets::project(), JetShape::project(), InvMassFinalState::project(), IdentifiedFinalState::project(), Hemispheres::project(), HadronicFinalState::project(), FoxWolframMoments::project(), FinalStateHCM::project(), FinalState::project(), FastJets::project(), DISLepton::project(), ClusteredPhotons::project(), ChargedLeptons::project(), ChargedFinalState::project(), and CentralEtHCM::project().
00039 { return _theParticles; }
const ParticleVector& particles | ( | F | sorter | ) | const [inline, inherited] |
Get the final-state particles, ordered by supplied sorting function object.
Definition at line 43 of file FinalState.hh.
References FinalState::_theParticles.
00043 { 00044 std::sort(_theParticles.begin(), _theParticles.end(), sorter); 00045 return _theParticles; 00046 }
const ParticleVector& particlesByPt | ( | ) | const [inline, inherited] |
Get the final-state particles, ordered by .
Definition at line 49 of file FinalState.hh.
References Rivet::cmpParticleByPt(), and FinalState::particles().
Referenced by MC_PHOTONJETUE::analyze().
00049 { 00050 return particles(cmpParticleByPt); 00051 }
const ParticleVector& particlesByE | ( | ) | const [inline, inherited] |
Get the final-state particles, ordered by .
Definition at line 54 of file FinalState.hh.
References Rivet::cmpParticleByE(), and FinalState::particles().
00054 { 00055 return particles(cmpParticleByE); 00056 }
const ParticleVector& particlesByEt | ( | ) | const [inline, inherited] |
Get the final-state particles, ordered by .
Definition at line 59 of file FinalState.hh.
References Rivet::cmpParticleByEt(), and FinalState::particles().
00059 { 00060 return particles(cmpParticleByEt); 00061 }
virtual size_t size | ( | ) | const [inline, virtual, inherited] |
Access the projected final-state particles.
Definition at line 65 of file FinalState.hh.
References FinalState::_theParticles.
Referenced by UA5_1986_S1583476::analyze(), UA5_1982_S875503::analyze(), UA1_1990_S2044935::analyze(), STAR_2006_S6860818::analyze(), STAR_2006_S6500200::analyze(), OPAL_2004_S6132243::analyze(), MC_SUSY::analyze(), MC_PHOTONJETUE::analyze(), D0_2008_S7837160::analyze(), D0_1998_S3711838::analyze(), CDF_2009_S8233977::analyze(), and CDF_1991_S2313472::analyze().
00065 { return _theParticles.size(); }
virtual bool empty | ( | ) | const [inline, virtual, inherited] |
Is this final state empty?
Definition at line 68 of file FinalState.hh.
References FinalState::_theParticles.
Referenced by STAR_2008_S7993412::analyze(), STAR_2006_S6870392::analyze(), MC_PHOTONJETS::analyze(), D0_2008_S7719523::analyze(), D0_2008_S7662670::analyze(), D0_2008_S6879055::analyze(), D0_2006_S6438750::analyze(), D0_2001_S4674421::analyze(), and CDF_2008_S7540469::analyze().
00068 { return _theParticles.empty(); }
virtual bool isEmpty | ( | ) | const [inline, virtual, inherited] |
Definition at line 70 of file FinalState.hh.
References FinalState::_theParticles.
00070 { return _theParticles.empty(); }
const collection_type& entities | ( | ) | const [inline, inherited] |
Template-usable interface common to JetAlg.
Definition at line 79 of file FinalState.hh.
References FinalState::particles().
00079 { 00080 return particles(); 00081 }
bool accept | ( | const Particle & | p | ) | const [protected, inherited] |
Decide if a particle is to be accepted or not.
Definition at line 99 of file FinalState.cc.
References FinalState::_etaRanges, FinalState::_ptmin, FourVector::eta(), Rivet::eta(), Particle::genParticle(), Particle::momentum(), FourMomentum::pT(), and Rivet::pT().
Referenced by LeadingParticlesFinalState::project(), InvMassFinalState::project(), and FinalState::project().
00099 { 00100 // Not having s.c. == 1 should never happen! 00101 assert(p.genParticle().status() == 1); 00102 00103 // Check pT cut 00104 if (_ptmin > 0.0) { 00105 const double pT = p.momentum().pT(); 00106 if (pT < _ptmin) return false; 00107 } 00108 00109 // Check eta cuts 00110 if (!_etaRanges.empty()) { 00111 bool eta_pass = false; 00112 const double eta = p.momentum().eta(); 00113 typedef pair<double,double> EtaPair; 00114 foreach (const EtaPair& etacuts, _etaRanges) { 00115 if (eta > etacuts.first && eta < etacuts.second) { 00116 eta_pass = true; 00117 break; 00118 } 00119 } 00120 if (!eta_pass) return false; 00121 } 00122 00123 return true; 00124 }
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 }
const set< BeamPair > 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<BeamPair> 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 }
virtual std::string name | ( | ) | const [inline, virtual, inherited] |
Get the name of the projection.
Implements ProjectionApplier.
Definition at line 99 of file Projection.hh.
References Projection::_name.
Referenced by ProjectionApplier::_addProjection(), ProjectionHandler::_checkDuplicate(), ProjectionHandler::_getEquiv(), VetoedFinalState::addVetoOnThisFinalState(), Projection::getLog(), ZFinder::project(), ClusteredPhotons::project(), Projection::Projection(), ProjectionHandler::registerProjection(), and Projection::~Projection().
00099 { 00100 return _name; 00101 }
Projection& addBeamPair | ( | const ParticleName & | beam1, | |
const ParticleName & | beam2 | |||
) | [inline, inherited] |
Add a colliding beam pair.
Definition at line 105 of file Projection.hh.
References Projection::_beamPairs.
Referenced by Projection::Projection().
00105 { 00106 _beamPairs.insert(BeamPair(beam1, beam2)); 00107 return *this; 00108 }
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 112 of file Projection.hh.
References Log::getLog(), and Projection::name().
Referenced by Sphericity::_calcSphericity(), Thrust::_calcThrust(), Projection::beamPairs(), FastJets::calc(), FastJets::FastJets(), FinalState::FinalState(), JetAlg::JetAlg(), ZFinder::project(), WFinder::project(), VetoedFinalState::project(), UnstableFinalState::project(), TriggerUA5::project(), TriggerCDFRun0Run1::project(), PVertex::project(), NeutralFinalState::project(), MergedFinalState::project(), LossyFinalState::project(), LeadingParticlesFinalState::project(), IsolationProjection::project(), InvMassFinalState::project(), InitialQuarks::project(), Hemispheres::project(), HadronicFinalState::project(), FoxWolframMoments::project(), FinalState::project(), ClusteredPhotons::project(), ChargedFinalState::project(), Beam::project(), Projection::Projection(), FastJets::splitJet(), Beam::sqrtS(), and Projection::~Projection().
00112 { 00113 string logname = "Rivet.Projection." + name(); 00114 return Log::getLog(logname); 00115 }
void setName | ( | const std::string & | name | ) | [inline, inherited] |
Used by derived classes to set their name.
Definition at line 118 of file Projection.hh.
References Projection::_name.
Referenced by ZFinder::_init(), WFinder::_init(), Beam::Beam(), CentralEtHCM::CentralEtHCM(), ChargedFinalState::ChargedFinalState(), ChargedLeptons::ChargedLeptons(), ClusteredPhotons::ClusteredPhotons(), DISKinematics::DISKinematics(), DISLepton::DISLepton(), FastJets::FastJets(), FinalState::FinalState(), FinalStateHCM::FinalStateHCM(), FoxWolframMoments::FoxWolframMoments(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), InitialQuarks::InitialQuarks(), IsolationProjection::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), KtJets::KtJets(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState::LossyFinalState(), MergedFinalState::MergedFinalState(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), PVertex::PVertex(), Sphericity::Sphericity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerUA5::TriggerUA5(), UnstableFinalState::UnstableFinalState(), and VetoedFinalState::VetoedFinalState().
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.
Referenced by ZFinder::compare(), WFinder::compare(), VetoedFinalState::compare(), TotalVisibleMomentum::compare(), Thrust::compare(), SVertex::compare(), Sphericity::compare(), ParisiTensor::compare(), NeutralFinalState::compare(), Multiplicity::compare(), MergedFinalState::compare(), LossyFinalState::compare(), LeadingParticlesFinalState::compare(), KtJets::compare(), JetShape::compare(), IsolationProjection::compare(), InvMassFinalState::compare(), IdentifiedFinalState::compare(), Hemispheres::compare(), FoxWolframMoments::compare(), FinalStateHCM::compare(), FastJets::compare(), DISLepton::compare(), DISKinematics::compare(), ClusteredPhotons::compare(), ChargedLeptons::compare(), ChargedFinalState::compare(), and CentralEtHCM::compare().
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.
std::set<ConstProjectionPtr> getProjections | ( | ) | const [inline, inherited] |
Get the contained projections, including recursion.
Definition at line 43 of file ProjectionApplier.hh.
References ProjectionHandler::DEEP, ProjectionHandler::getChildProjections(), and ProjectionApplier::getProjHandler().
Referenced by Projection::beamPairs().
00043 { 00044 return getProjHandler().getChildProjections(*this, ProjectionHandler::DEEP); 00045 }
const PROJ& getProjection | ( | const std::string & | name | ) | const [inline, inherited] |
Get the named projection, specifying return type via a template argument.
Definition at line 50 of file ProjectionApplier.hh.
References ProjectionHandler::getProjection(), and ProjectionApplier::getProjHandler().
Referenced by VetoedFinalState::compare(), Rivet::pcmp(), and Hemispheres::project().
00050 { 00051 const Projection& p = getProjHandler().getProjection(*this, name); 00052 return pcast<PROJ>(p); 00053 }
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 58 of file ProjectionApplier.hh.
References ProjectionHandler::getProjection(), and ProjectionApplier::getProjHandler().
00058 { 00059 return getProjHandler().getProjection(*this, name); 00060 }
const PROJ& applyProjection | ( | const Event & | evt, | |
const PROJ & | proj | |||
) | const [inline, inherited] |
Apply the supplied projection on event.
Definition at line 68 of file ProjectionApplier.hh.
References ProjectionApplier::_applyProjection().
Referenced by HadronicFinalState::project(), and FinalStateHCM::project().
00068 { 00069 return pcast<PROJ>(_applyProjection(evt, proj)); 00070 }
const PROJ& applyProjection | ( | const Event & | evt, | |
const Projection & | proj | |||
) | const [inline, inherited] |
Apply the supplied projection on event.
Definition at line 75 of file ProjectionApplier.hh.
References ProjectionApplier::_applyProjection().
00075 { 00076 return pcast<PROJ>(_applyProjection(evt, proj)); 00077 }
const PROJ& applyProjection | ( | const Event & | evt, | |
const std::string & | name | |||
) | const [inline, inherited] |
Apply the named projection on event.
Definition at line 82 of file ProjectionApplier.hh.
References ProjectionApplier::_applyProjection().
00082 { 00083 return pcast<PROJ>(_applyProjection(evt, name)); 00084 }
ProjectionHandler& getProjHandler | ( | ) | const [inline, protected, inherited] |
Get a reference to the ProjectionHandler for this thread.
Definition at line 95 of file ProjectionApplier.hh.
References ProjectionApplier::_projhandler.
Referenced by ProjectionApplier::_addProjection(), ProjectionApplier::getProjection(), ProjectionApplier::getProjections(), and ProjectionApplier::~ProjectionApplier().
00095 { 00096 assert(_projhandler); 00097 return *_projhandler; 00098 }
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 115 of file ProjectionApplier.hh.
References ProjectionApplier::_addProjection().
Referenced by ZFinder::_init(), WFinder::_init(), VetoedFinalState::addVetoOnThisFinalState(), 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(), HadronicFinalState::HadronicFinalState(), Hemispheres::Hemispheres(), IdentifiedFinalState::IdentifiedFinalState(), ZEUS_2001_S4815815::init(), UA5_1989_S1926373::init(), UA5_1988_S1867512::init(), UA5_1986_S1583476::init(), UA5_1982_S875503::init(), UA1_1990_S2044935::init(), STAR_2009_UE_HELEN::init(), STAR_2008_S7993412::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_1998_S3780481::init(), MC_ZJETS::init(), MC_WJETS::init(), MC_TTBAR::init(), MC_SUSY::init(), MC_PHOTONJETUE::init(), MC_PHOTONJETS::init(), MC_LEADINGJETS::init(), MC_JETS::init(), MC_DIPHOTON::init(), MC_DIJET::init(), JADE_OPAL_2000_S4300807::init(), H1_2000_S4129130::init(), H1_1995_S3167097::init(), H1_1994_S2919893::init(), ExampleAnalysis::init(), E735_1998_S3905616::init(), DELPHI_2002_069_CONF_603::init(), DELPHI_1995_S3137023::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_1998_S3711838::init(), D0_1996_S3324664::init(), D0_1996_S3214044::init(), CDF_2009_S8436959::init(), CDF_2009_S8383952::init(), CDF_2009_S8233977::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_1991_S2313472::init(), CDF_1990_S2089246::init(), CDF_1988_S1865951::init(), BELLE_2006_S6265367::init(), ATLAS_2010_S8591806::init(), ALEPH_2004_S5765862::init(), ALEPH_1996_S3486095::init(), ALEPH_1996_S3196992::init(), ALEPH_1991_S2435284::init(), IsolationProjection::IsolationProjection(), JetAlg::JetAlg(), JetShape::JetShape(), KtJets::KtJets(), LeadingParticlesFinalState::LeadingParticlesFinalState(), LossyFinalState::LossyFinalState(), MergedFinalState::MergedFinalState(), Multiplicity::Multiplicity(), NeutralFinalState::NeutralFinalState(), ParisiTensor::ParisiTensor(), Sphericity::Sphericity(), SVertex::SVertex(), Thrust::Thrust(), TotalVisibleMomentum::TotalVisibleMomentum(), TriggerCDFRun0Run1::TriggerCDFRun0Run1(), TriggerUA5::TriggerUA5(), and VetoedFinalState::VetoedFinalState().
00115 { 00116 const Projection& reg = _addProjection(proj, name); 00117 return dynamic_cast<const PROJ&>(reg); 00118 }
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, Log::ERROR, ProjectionApplier::getLog(), ProjectionApplier::getProjHandler(), ProjectionApplier::name(), Projection::name(), and ProjectionHandler::registerProjection().
Referenced by ProjectionApplier::addProjection().
00034 { 00035 if (!_allowProjReg) { 00036 getLog() << Log::ERROR << "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 }
friend class Event [friend, inherited] |
friend class Cmp< Projection > [friend, inherited] |
friend class Projectionhandler [friend, inherited] |
Definition at line 23 of file ProjectionApplier.hh.
VetoDetails _vetoCodes [private] |
The final-state particles.
Definition at line 173 of file VetoedFinalState.hh.
Referenced by VetoedFinalState::addVetoDetail(), VetoedFinalState::addVetoId(), VetoedFinalState::compare(), VetoedFinalState::project(), VetoedFinalState::reset(), VetoedFinalState::setVetoDetails(), and VetoedFinalState::vetoDetails().
CompositeVeto _compositeVetoes [private] |
Composite particle masses to veto.
Definition at line 176 of file VetoedFinalState.hh.
Referenced by VetoedFinalState::addCompositeMassVeto(), VetoedFinalState::compare(), and VetoedFinalState::project().
set<int> _nCompositeDecays [private] |
Definition at line 177 of file VetoedFinalState.hh.
Referenced by VetoedFinalState::addCompositeMassVeto(), and VetoedFinalState::project().
ParentVetos _parentVetoes [private] |
Set of decaying particle IDs to veto.
Definition at line 182 of file VetoedFinalState.hh.
Referenced by VetoedFinalState::addDecayProductsVeto(), VetoedFinalState::compare(), and VetoedFinalState::project().
set<string> _vetofsnames [private] |
Set of finalstate to be vetoed.
Definition at line 185 of file VetoedFinalState.hh.
Referenced by VetoedFinalState::addVetoOnThisFinalState(), VetoedFinalState::compare(), and VetoedFinalState::project().
vector<pair<double,double> > _etaRanges [protected, inherited] |
The ranges allowed for pseudorapidity.
Definition at line 99 of file FinalState.hh.
Referenced by FinalState::accept(), FinalState::compare(), FinalState::FinalState(), and FinalState::project().
double _ptmin [protected, inherited] |
The minimum allowed transverse momentum.
Definition at line 102 of file FinalState.hh.
Referenced by FinalState::accept(), FinalState::compare(), and FinalState::project().
ParticleVector _theParticles [mutable, protected, inherited] |
The final-state particles.
Definition at line 105 of file FinalState.hh.
Referenced by WFinder::clear(), FinalState::empty(), FinalState::isEmpty(), FinalState::particles(), ZFinder::project(), WFinder::project(), VetoedFinalState::project(), NeutralFinalState::project(), MergedFinalState::project(), LossyFinalState::project(), LeadingParticlesFinalState::project(), InvMassFinalState::project(), IdentifiedFinalState::project(), HadronicFinalState::project(), FinalStateHCM::project(), FinalState::project(), ClusteredPhotons::project(), ChargedFinalState::project(), and FinalState::size().
bool _allowProjReg [protected, inherited] |
Flag to forbid projection registration in analyses until the init phase.
Definition at line 141 of file ProjectionApplier.hh.
Referenced by ProjectionApplier::_addProjection(), and AnalysisHandler::init().