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;
162 return (
in != JFlavour_t::FLAVOUR_UNDEFINED &&
163 out != JFlavour_t::FLAVOUR_UNDEFINED &&
164 Cparity != JChargeParity_t::CPARITY_UNDEFINED);
178 if (this->
in == channel.
in) {
180 return this->
out < channel.
out;
184 return this->
in < channel.
in;
203 return out <<
object.getProperties();
220 object.setProperties(properties);
303 template<
class JOscChannel_t>
307 in ((int) object.
in),
327 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::ELECTRON, JChargeParity_t::PARTICLE),
328 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::MUON, JChargeParity_t::PARTICLE),
329 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::TAU, JChargeParity_t::PARTICLE),
330 JOscChannel(JFlavour_t::MUON, JFlavour_t::ELECTRON, JChargeParity_t::PARTICLE),
331 JOscChannel(JFlavour_t::MUON, JFlavour_t::MUON, JChargeParity_t::PARTICLE),
332 JOscChannel(JFlavour_t::MUON, JFlavour_t::TAU, JChargeParity_t::PARTICLE),
333 JOscChannel(JFlavour_t::TAU, JFlavour_t::ELECTRON, JChargeParity_t::PARTICLE),
334 JOscChannel(JFlavour_t::TAU, JFlavour_t::MUON, JChargeParity_t::PARTICLE),
335 JOscChannel(JFlavour_t::TAU, JFlavour_t::TAU, JChargeParity_t::PARTICLE),
336 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::ELECTRON, JChargeParity_t::ANTIPARTICLE),
337 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::MUON, JChargeParity_t::ANTIPARTICLE),
338 JOscChannel(JFlavour_t::ELECTRON, JFlavour_t::TAU, JChargeParity_t::ANTIPARTICLE),
339 JOscChannel(JFlavour_t::MUON, JFlavour_t::ELECTRON, JChargeParity_t::ANTIPARTICLE),
340 JOscChannel(JFlavour_t::MUON, JFlavour_t::MUON, JChargeParity_t::ANTIPARTICLE),
341 JOscChannel(JFlavour_t::MUON, JFlavour_t::TAU, JChargeParity_t::ANTIPARTICLE),
342 JOscChannel(JFlavour_t::TAU, JFlavour_t::ELECTRON, JChargeParity_t::ANTIPARTICLE),
343 JOscChannel(JFlavour_t::TAU, JFlavour_t::MUON, JChargeParity_t::ANTIPARTICLE),
344 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)
macros 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.
JOscChannel(const int in, const int out, const int Cparity)
Constructor.
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.
then set_variable DETECTOR set_variable OUTPUT_FILE set_variable DAQ_FILE set_variable PMT_FILE else fatal Wrong number of arguments fi JPrintTree f $DAQ_FILE type
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.