Jpp  16.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
JOSCPROB::JOscChannel Struct Reference

Neutrino oscillation channel. More...

#include <JOscChannel.hh>

Inheritance diagram for JOSCPROB::JOscChannel:
JLANG::JComparable< JOscChannel >

Classes

struct  JOscChannelHelper
 Auxiliary class for I/O of oscillation channel. More...
 

Public Types

enum  JFlavour_t { ELECTRON = 12, MUON = 14, TAU = 16, FLAVOUR_UNDEFINED = 0 }
 Neutrino flavours. More...
 
enum  JChargeParity_t { ANTIPARTICLE = -1, PARTICLE = +1, CPARITY_UNDEFINED = 0 }
 Charge parities. More...
 

Public Member Functions

 JOscChannel ()
 Default constructor. More...
 
 JOscChannel (const JFlavour_t in, const JFlavour_t out, const JChargeParity_t Cparity)
 Constructor. More...
 
bool less (const JOscChannel &channel) const
 Less-than method. More...
 
JProperties getProperties (const JEquationParameters &equation=JOscChannel::getEquationParameters())
 Get properties of this class. More...
 
JProperties getProperties (const JEquationParameters &equation=JOscChannel::getEquationParameters()) const
 Get properties of this class. More...
 
void setProperties (const JProperties &properties)
 Set properties of this class. More...
 

Static Public Member Functions

static JFlavour_t getFlavour (const int pdgID)
 Get flavour of neutrino. More...
 
static JFlavour_t getFlavour (const Trk &neutrino)
 Get flavour of neutrino. More...
 
static JChargeParity_t getChargeParity (const int Cparity)
 Get charge-parity of given neutrino. More...
 
static JChargeParity_t getChargeParity (const Trk &neutrino)
 Get charge-parity of given neutrino. More...
 
static int getIncomingNeutrinoType (const JOscChannel &channel)
 Auxiliary function to retrieve incoming neutrino PDG type. More...
 
static int getOutgoingNeutrinoType (const JOscChannel &channel)
 Auxiliary function to retrieve outgoing neutrino PDG type. More...
 
static JEquationParametersgetEquationParameters ()
 Get equation parameters. More...
 
static void setEquationParameters (const JEquationParameters &equation)
 Set equation parameters. More...
 

Public Attributes

JFlavour_t in
 Incoming flavour. More...
 
JFlavour_t out
 Outcoming flavour. More...
 
JChargeParity_t Cparity
 Charge-parity. More...
 

Friends

std::ostream & operator<< (std::ostream &out, const JOscChannel &object)
 Write channel to output. More...
 
std::istream & operator>> (std::istream &in, JOscChannel &object)
 Read channel from input. More...
 

Detailed Description

Neutrino oscillation channel.

Definition at line 29 of file JOscChannel.hh.

Member Enumeration Documentation

Neutrino flavours.

Enumerator
ELECTRON 
MUON 
TAU 
FLAVOUR_UNDEFINED 

Definition at line 35 of file JOscChannel.hh.

Charge parities.

Enumerator
ANTIPARTICLE 
PARTICLE 
CPARITY_UNDEFINED 

Definition at line 43 of file JOscChannel.hh.

Constructor & Destructor Documentation

JOSCPROB::JOscChannel::JOscChannel ( )
inline

Default constructor.

Definition at line 51 of file JOscChannel.hh.

51  :
55  {}
JFlavour_t in
Incoming flavour.
Definition: JOscChannel.hh:301
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:303
JFlavour_t out
Outcoming flavour.
Definition: JOscChannel.hh:302
JOSCPROB::JOscChannel::JOscChannel ( const JFlavour_t  in,
const JFlavour_t  out,
const JChargeParity_t  Cparity 
)
inline

Constructor.

Parameters
ininput flavour
outoutput flavour
Cparitycharge parity

Definition at line 65 of file JOscChannel.hh.

67  :
68  in (in),
69  out(out),
71  {}
JFlavour_t in
Incoming flavour.
Definition: JOscChannel.hh:301
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:303
JFlavour_t out
Outcoming flavour.
Definition: JOscChannel.hh:302

Member Function Documentation

bool JOSCPROB::JOscChannel::less ( const JOscChannel channel) const
inline

Less-than method.

Parameters
firstfirst channel
secondsecond channel
Returns
true if channels are equal; else false

Definition at line 81 of file JOscChannel.hh.

82  {
83  if (this->Cparity == channel.Cparity) {
84 
85  if (this->in == channel.in) {
86 
87  return this->out < channel.out;
88 
89  } else {
90 
91  return this->in < channel.in;
92  }
93 
94  } else {
95 
96  return this->Cparity < channel.Cparity;
97  }
98  }
JFlavour_t in
Incoming flavour.
Definition: JOscChannel.hh:301
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:303
JFlavour_t out
Outcoming flavour.
Definition: JOscChannel.hh:302
static JFlavour_t JOSCPROB::JOscChannel::getFlavour ( const int  pdgID)
inlinestatic

Get flavour of neutrino.

Parameters
pdgIDPDG identifier
Returns
flavour

Definition at line 140 of file JOscChannel.hh.

141  {
142  using namespace JPP;
143 
144  switch(abs(pdgID)) {
145  case (int) ELECTRON:
146  return ELECTRON;
147  case (int) MUON:
148  return MUON;
149  case (int) TAU:
150  return TAU;
151  default:
152  return FLAVOUR_UNDEFINED;
153  }
154  }
static JFlavour_t JOSCPROB::JOscChannel::getFlavour ( const Trk neutrino)
inlinestatic

Get flavour of neutrino.

Parameters
neutrinoneutrino track

Definition at line 162 of file JOscChannel.hh.

163  {
164  return getFlavour(neutrino.type);
165  }
static JFlavour_t getFlavour(const int pdgID)
Get flavour of neutrino.
Definition: JOscChannel.hh:140
int type
MC: particle type in PDG encoding.
Definition: Trk.hh:24
static JChargeParity_t JOSCPROB::JOscChannel::getChargeParity ( const int  Cparity)
inlinestatic

Get charge-parity of given neutrino.

Parameters
Cparitycharge parity (1 for neutrinos; -1 for anti-neutrinos)
Returns
oscillation channel charge parity

Definition at line 174 of file JOscChannel.hh.

175  {
176  switch (Cparity) {
177  case ((int) PARTICLE):
178  return PARTICLE;
179  case ((int) ANTIPARTICLE):
180  return ANTIPARTICLE;
181  default:
182  return CPARITY_UNDEFINED;
183  }
184  }
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:303
static JChargeParity_t JOSCPROB::JOscChannel::getChargeParity ( const Trk neutrino)
inlinestatic

Get charge-parity of given neutrino.

Parameters
neutrinoneutrino track
Returns
charge-parity (1 for neutrinos; -1 for anti-neutrinos)

Definition at line 193 of file JOscChannel.hh.

194  {
195  return getChargeParity(neutrino.type / abs(neutrino.type));
196  }
static JChargeParity_t getChargeParity(const int Cparity)
Get charge-parity of given neutrino.
Definition: JOscChannel.hh:174
int type
MC: particle type in PDG encoding.
Definition: Trk.hh:24
static int JOSCPROB::JOscChannel::getIncomingNeutrinoType ( const JOscChannel channel)
inlinestatic

Auxiliary function to retrieve incoming neutrino PDG type.

Parameters
channeloscillation channel
Returns
incoming neutrino PDG type

Definition at line 205 of file JOscChannel.hh.

206  {
207  switch (channel.in) {
208  case ELECTRON:
209  return (int)channel.Cparity * (int)ELECTRON;
210  case MUON:
211  return (int)channel.Cparity * (int)MUON;
212  case TAU:
213  return (int)channel.Cparity * (int)TAU;
214  default:
215  THROW(JLANG::JValueOutOfRange, "getIncomingNeutrinoType(): Invalid oscillation channel " << channel);
216  }
217  }
JFlavour_t in
Incoming flavour.
Definition: JOscChannel.hh:301
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:303
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:162
static int JOSCPROB::JOscChannel::getOutgoingNeutrinoType ( const JOscChannel channel)
inlinestatic

Auxiliary function to retrieve outgoing neutrino PDG type.

Parameters
channeloscillation channel
Returns
outgoing neutrino PDG type

Definition at line 226 of file JOscChannel.hh.

227  {
228  switch (channel.out) {
229  case ELECTRON:
230  return (int)channel.Cparity * (int)ELECTRON;
231  case MUON:
232  return (int)channel.Cparity * (int)MUON;
233  case TAU:
234  return (int)channel.Cparity * (int)TAU;
235  default:
236  THROW(JLANG::JValueOutOfRange, "getOutgoingNeutrinoType(): Invalid oscillation channel " << channel);
237  }
238  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:696
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:303
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:162
JFlavour_t out
Outcoming flavour.
Definition: JOscChannel.hh:302
static JEquationParameters& JOSCPROB::JOscChannel::getEquationParameters ( )
inlinestatic

Get equation parameters.

Returns
equation parameters

Definition at line 246 of file JOscChannel.hh.

247  {
248  static JEquationParameters equation("=", "\n\r;,", "./", "#");
249 
250  return equation;
251  }
Simple data structure to support I/O of equations (see class JLANG::JEquation).
static void JOSCPROB::JOscChannel::setEquationParameters ( const JEquationParameters equation)
inlinestatic

Set equation parameters.

Parameters
equationequation parameters

Definition at line 259 of file JOscChannel.hh.

260  {
261  getEquationParameters() = equation;
262  }
static JEquationParameters & getEquationParameters()
Get equation parameters.
Definition: JOscChannel.hh:246
JProperties JOSCPROB::JOscChannel::getProperties ( const JEquationParameters equation = JOscChannel::getEquationParameters())
inline

Get properties of this class.

Parameters
equationequation parameters

Definition at line 270 of file JOscChannel.hh.

271  {
272  return JOscChannelHelper(*this, equation);
273  }
JProperties JOSCPROB::JOscChannel::getProperties ( const JEquationParameters equation = JOscChannel::getEquationParameters()) const
inline

Get properties of this class.

Parameters
equationequation parameters

Definition at line 281 of file JOscChannel.hh.

282  {
283  return JOscChannelHelper(*this, equation);
284  }
void JOSCPROB::JOscChannel::setProperties ( const JProperties properties)
inline

Set properties of this class.

Parameters
propertiesproperties
equationequation parameters

Definition at line 293 of file JOscChannel.hh.

294  {
295  this->in = JOscChannel::getFlavour (properties.getValue<int>("in"));
296  this->out = JOscChannel::getFlavour (properties.getValue<int>("out"));
297  this->Cparity = JOscChannel::getChargeParity(properties.getValue<int>("Cparity"));
298  }
static JChargeParity_t getChargeParity(const int Cparity)
Get charge-parity of given neutrino.
Definition: JOscChannel.hh:174
JFlavour_t in
Incoming flavour.
Definition: JOscChannel.hh:301
const T & getValue(const std::string &key) const
Get value.
Definition: JProperties.hh:974
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:303
static JFlavour_t getFlavour(const int pdgID)
Get flavour of neutrino.
Definition: JOscChannel.hh:140
JFlavour_t out
Outcoming flavour.
Definition: JOscChannel.hh:302

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const JOscChannel object 
)
friend

Write channel to output.

Parameters
outoutput stream
objectoscillation channel
Returns
output stream

Definition at line 108 of file JOscChannel.hh.

109  {
110  return out << object.getProperties();
111  }
JFlavour_t out
Outcoming flavour.
Definition: JOscChannel.hh:302
std::istream& operator>> ( std::istream &  in,
JOscChannel object 
)
friend

Read channel from input.

Parameters
ininput stream
objectoscillation channel
Returns
input stream

Definition at line 121 of file JOscChannel.hh.

122  {
123 
124  JProperties properties(object.getProperties());
125 
126  in >> properties;
127 
128  object.setProperties(properties);
129 
130  return in;
131  }
JFlavour_t in
Incoming flavour.
Definition: JOscChannel.hh:301
Utility class to parse parameter values.
Definition: JProperties.hh:496
JProperties getProperties(const JEquationParameters &equation=JOscChannel::getEquationParameters())
Get properties of this class.
Definition: JOscChannel.hh:270

Member Data Documentation

JFlavour_t JOSCPROB::JOscChannel::in

Incoming flavour.

Definition at line 301 of file JOscChannel.hh.

JFlavour_t JOSCPROB::JOscChannel::out

Outcoming flavour.

Definition at line 302 of file JOscChannel.hh.

JChargeParity_t JOSCPROB::JOscChannel::Cparity

Charge-parity.

Definition at line 303 of file JOscChannel.hh.


The documentation for this struct was generated from the following file: