1 #ifndef __JOSCPROB__JOSCCHANNEL__
2 #define __JOSCPROB__JOSCCHANNEL__
21 namespace JPP {
using namespace JOSCPROB; }
52 const int type = abs(pdgType);
56 case (
int) JFlavour_t::ELECTRON:
57 case (
int) JFlavour_t::MUON:
58 case (
int) JFlavour_t::TAU:
61 return JFlavour_t::FLAVOUR_UNDEFINED;
86 return JChargeParity_t::ANTIPARTICLE;
87 }
else if (pdgType > 0) {
88 return JChargeParity_t::PARTICLE;
90 return JChargeParity_t::CPARITY_UNDEFINED;
146 return (
in != JFlavour_t::FLAVOUR_UNDEFINED &&
147 out != JFlavour_t::FLAVOUR_UNDEFINED &&
148 Cparity != JChargeParity_t::CPARITY_UNDEFINED);
162 if (this->
in == channel.
in) {
164 return this->
out < channel.
out;
168 return this->
in < channel.
in;
187 return out <<
object.getProperties();
204 object.setProperties(properties);
287 template<
class JOscChannel_t>
291 in ((int) object.
in),
311 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::ELECTRON, JChargeParity_t::PARTICLE),
312 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::MUON, JChargeParity_t::PARTICLE),
313 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::TAU, JChargeParity_t::PARTICLE),
314 JOscChannel(JFlavour_t::MUON, JFlavour_t::ELECTRON, JChargeParity_t::PARTICLE),
315 JOscChannel(JFlavour_t::MUON, JFlavour_t::MUON, JChargeParity_t::PARTICLE),
316 JOscChannel(JFlavour_t::MUON, JFlavour_t::TAU, JChargeParity_t::PARTICLE),
317 JOscChannel(JFlavour_t::TAU, JFlavour_t::ELECTRON, JChargeParity_t::PARTICLE),
318 JOscChannel(JFlavour_t::TAU, JFlavour_t::MUON, JChargeParity_t::PARTICLE),
319 JOscChannel(JFlavour_t::TAU, JFlavour_t::TAU, JChargeParity_t::PARTICLE),
320 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::ELECTRON, JChargeParity_t::ANTIPARTICLE),
321 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::MUON, JChargeParity_t::ANTIPARTICLE),
322 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::TAU, JChargeParity_t::ANTIPARTICLE),
323 JOscChannel(JFlavour_t::MUON, JFlavour_t::ELECTRON, JChargeParity_t::ANTIPARTICLE),
324 JOscChannel(JFlavour_t::MUON, JFlavour_t::MUON, JChargeParity_t::ANTIPARTICLE),
325 JOscChannel(JFlavour_t::MUON, JFlavour_t::TAU, JChargeParity_t::ANTIPARTICLE),
326 JOscChannel(JFlavour_t::TAU, JFlavour_t::ELECTRON, JChargeParity_t::ANTIPARTICLE),
327 JOscChannel(JFlavour_t::TAU, JFlavour_t::MUON, JChargeParity_t::ANTIPARTICLE),
328 JOscChannel(JFlavour_t::TAU, JFlavour_t::TAU, JChargeParity_t::ANTIPARTICLE)
JOscChannel(const JFlavour_t in, const JFlavour_t out, const JChargeParity_t Cparity)
Constructor.
static JEquationParameters & getEquationParameters()
Get equation parameters.
JOscChannel()
Default constructor.
Neutrino oscillation channel.
static void setEquationParameters(const JEquationParameters &equation)
Set equation parameters.
JOscChannelHelper(JOscChannel_t &object, const JEquationParameters &equation)
Constructor.
static const unsigned int NUMBER_OF_OSCCHANNELS
Number of neutrino oscillation channels.
#define gmake_property(A)
macro to convert (template) parameter to JPropertiesElement object
friend std::ostream & operator<<(std::ostream &out, const JOscChannel &object)
Write channel to output.
JFlavour_t in
Incoming flavour.
Utility class to parse parameter values.
Simple data structure to support I/O of equations (see class JLANG::JEquation).
friend std::istream & operator>>(std::istream &in, JOscChannel &object)
Read channel from input.
Utility class to parse parameter values.
void setProperties(const JProperties &properties)
Set properties of this class.
JChargeParity_t
Charge parities.
JProperties getProperties(const JEquationParameters &equation=JOscChannel::getEquationParameters())
Get properties of this class.
JChargeParity_t getChargeParity(const int pdgType)
Auxiliary function for retrieving the charge-parity of a given PDG type.
const T & getValue(const std::string &key) const
Get value.
static const JOscChannel getOscChannel[]
Declare group of neutrino oscillation channels.
JFlavour_t
Neutrino flavours.
JChargeParity_t Cparity
Charge-parity.
Template definition of auxiliary base class for comparison of data structures.
int type
MC: particle type in PDG encoding.
Auxiliary class for I/O of oscillation channel.
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.
JProperties getProperties(const JEquationParameters &equation=JOscChannel::getEquationParameters()) const
Get properties of this class.
JFlavour_t out
Outcoming flavour.
JFlavour_t getFlavour(const int pdgType)
Auxiliary function for retrieving the flavour corresponding to a given PDG identifier.
bool less(const JOscChannel &channel) const
Less-than method.
bool is_valid() const
Check validity of this oscillation channel.