1 #ifndef PROJECTIONS_ALICECOMMON_HH 2 #define PROJECTIONS_ALICECOMMON_HH 3 #include "Rivet/Tools/AliceCommon.hh" 4 #include "Rivet/Projections/FinalState.hh" 5 #include "Rivet/Projections/SingleValueProjection.hh" 6 #include "Rivet/Projections/TriggerProjection.hh" 7 #include "Rivet/Projections/PrimaryParticles.hh" 28 setName(
"ALICE::V0Multiplicity");
37 this->
declare(fs,
"FinalState");
50 set(apply<FinalState>(e,
"FinalState").particles().size());
56 virtual std::unique_ptr<Rivet::Projection>
clone()
const {
64 CmpState::EQ : CmpState::NEQ;
99 setName(
"ALICE::CLMultiplicity");
107 this->
declare(fs,
"FinalState");
120 set(apply<FinalState>(e,
"FinalState").particles().size());
126 virtual std::unique_ptr<Rivet::Projection>
clone()
const {
135 CmpState::EQ : CmpState::NEQ;
171 this->
declare(fs,
"FinalState");
189 virtual std::unique_ptr<Rivet::Projection>
clone()
const {
201 CmpState::EQ : CmpState::NEQ;
244 if (apply<V0ATrigger>(e,
"V0A")() && apply<V0CTrigger>(e,
"V0C")()) pass();
253 CmpState::EQ : CmpState::NEQ;
259 virtual std::unique_ptr<Rivet::Projection>
clone()
const {
260 return std::unique_ptr<Projection>(
new V0AndTrigger(*
this));
288 if (_cuts != o->_cuts)
return CmpState::NEQ;
289 return mkPCmp(*o,
"PrimaryParticles");
293 virtual std::unique_ptr<Rivet::Projection>
clone()
const {
313 const int pdg = abs(p->pdg_id());
315 if (pdg > 1000000000)
return true;
318 case Rivet::PID::MUON:
319 case Rivet::PID::ELECTRON:
320 case Rivet::PID::GAMMA:
321 case Rivet::PID::PIPLUS:
322 case Rivet::PID::KPLUS:
323 case Rivet::PID::K0S:
324 case Rivet::PID::K0L:
325 case Rivet::PID::PROTON:
326 case Rivet::PID::NEUTRON:
327 case Rivet::PID::LAMBDA:
328 case Rivet::PID::SIGMAMINUS:
329 case Rivet::PID::SIGMAPLUS:
330 case Rivet::PID::XIMINUS:
331 case Rivet::PID::XI0:
332 case Rivet::PID::OMEGAMINUS:
333 case Rivet::PID::NU_E:
334 case Rivet::PID::NU_MU:
335 case Rivet::PID::NU_TAU:
void setName(const std::string &name)
Used by derived classes to set their name.
Definition: Projection.hh:142
Definition: MC_Cent_pPb.hh:10
virtual ~CLMultiplicity()
Destructor.
Definition: AliceCommon.hh:111
V0Multiplicity<+1 > V0CMultiplicity
Definition: AliceCommon.hh:77
V0AndTrigger()
Constructor.
Definition: AliceCommon.hh:228
virtual void project(const Event &e)
Definition: AliceCommon.hh:48
virtual void project(const Event &e)
Definition: AliceCommon.hh:181
Base class for projections returning a single floating point value.
Definition: SingleValueProjection.hh:17
CLMultiplicity< false > CL1Multiplicity
Definition: AliceCommon.hh:149
virtual ~V0Multiplicity()
Destructor.
Definition: AliceCommon.hh:41
Project out primary particles according to definition.
Definition: PrimaryParticles.hh:19
Definition: AliceCommon.hh:161
virtual CmpState compare(const Projection &p) const
Definition: AliceCommon.hh:62
const Cut & open()
Fully open cut singleton, accepts everything.
virtual CmpState compare(const Projection &p) const
Definition: AliceCommon.hh:250
CLMultiplicity()
Constructor.
Definition: AliceCommon.hh:98
V0Multiplicity<-1 > V0AMultiplicity
Definition: AliceCommon.hh:72
const Cut V0Aacceptance
Definition: AliceCommon.hh:24
Representation of a HepMC event, and enabler of Projection caching.
Definition: Event.hh:22
Cmp< Projection > mkPCmp(const Projection &otherparent, const std::string &pname) const
Base class for projections returning a bool corresponding to a trigger.
Definition: TriggerProjection.hh:19
bool isPrimaryPID(ConstGenParticlePtr p) const
Definition: AliceCommon.hh:312
virtual CmpState compare(const Projection &p) const
Definition: AliceCommon.hh:133
void fail()
Set the projection in an unvalid state.
Definition: Projection.hh:147
Definition: AliceCommon.hh:25
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).
Definition: ProjectionApplier.hh:89
virtual ~V0AndTrigger()
Destructor.
Definition: AliceCommon.hh:236
virtual CmpState compare(const Projection &p) const
Definition: AliceCommon.hh:199
Project out all final-state particles in an event. Probably the most important projection in Rivet! ...
Definition: FinalState.hh:12
const PROJ & declare(const PROJ &proj, const std::string &name)
Register a contained projection (user-facing version)
Definition: ProjectionApplier.hh:170
Trigger projection for the ALICE V0-AND (a.k.a. CINT7) requirement.
Definition: AliceCommon.hh:224
virtual void project(const Event &e)
Definition: AliceCommon.hh:118
virtual CmpState compare(const Projection &p) const
Definition: AliceCommon.hh:286
const Cut CL0acceptance
Definition: AliceCommon.hh:36
virtual std::unique_ptr< Rivet::Projection > clone() const
Definition: AliceCommon.hh:189
V0Trigger()
Constructor.
Definition: AliceCommon.hh:165
SingleValueProjection()
The default constructor.
Definition: SingleValueProjection.hh:21
const Cut CL1acceptance
Definition: AliceCommon.hh:42
virtual void project(const Event &e)
Definition: AliceCommon.hh:242
virtual std::unique_ptr< Rivet::Projection > clone() const
Definition: AliceCommon.hh:126
virtual std::unique_ptr< Rivet::Projection > clone() const
Clone this projection.
Definition: AliceCommon.hh:293
Definition: AliceCommon.hh:94
Base class for all Rivet projections.
Definition: Projection.hh:29
CLMultiplicity< true > CL0Multiplicity
Definition: AliceCommon.hh:144
virtual std::unique_ptr< Rivet::Projection > clone() const
Definition: AliceCommon.hh:56
Standard ALICE primary particle definition.
Definition: AliceCommon.hh:272
virtual ~V0Trigger()
Destructor.
Definition: AliceCommon.hh:175
virtual std::unique_ptr< Rivet::Projection > clone() const
Definition: AliceCommon.hh:259
V0Multiplicity< 0 > V0MMultiplicity
Definition: AliceCommon.hh:82
void clear()
Unset the value.
Definition: SingleValueProjection.hh:54
const Cut V0Cacceptance
Definition: AliceCommon.hh:30