Jpp  16.0.1
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:299
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:301
JFlavour_t out
Outcoming flavour.
Definition: JOscChannel.hh:300
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:299
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:301
JFlavour_t out
Outcoming flavour.
Definition: JOscChannel.hh:300

Member Function Documentation

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

Less-than method.

Parameters
channelchannel
Returns
true this channel less than given channel; else false

Definition at line 80 of file JOscChannel.hh.

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

Get flavour of neutrino.

Parameters
pdgIDPDG identifier
Returns
flavour

Definition at line 139 of file JOscChannel.hh.

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

Get flavour of neutrino.

Parameters
neutrinoneutrino track

Definition at line 161 of file JOscChannel.hh.

162  {
163  return getFlavour(neutrino.type);
164  }
static JFlavour_t getFlavour(const int pdgID)
Get flavour of neutrino.
Definition: JOscChannel.hh:139
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 173 of file JOscChannel.hh.

174  {
175  switch (Cparity) {
176  case ((int) PARTICLE):
177  return PARTICLE;
178  case ((int) ANTIPARTICLE):
179  return ANTIPARTICLE;
180  default:
181  return CPARITY_UNDEFINED;
182  }
183  }
JChargeParity_t Cparity
Charge-parity.
Definition: JOscChannel.hh:301
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 192 of file JOscChannel.hh.

193  {
194  return getChargeParity(neutrino.type / abs(neutrino.type));
195  }
static JChargeParity_t getChargeParity(const int Cparity)
Get charge-parity of given neutrino.
Definition: JOscChannel.hh:173
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 204 of file JOscChannel.hh.

205  {
206  switch (channel.in) {
207  case ELECTRON:
208  return (int)channel.Cparity * (int)ELECTRON;
209  case MUON:
210  return (int)channel.Cparity * (int)MUON;
211  case TAU:
212  return (int)channel.Cparity * (int)TAU;
213  default:
214  THROW(JLANG::JValueOutOfRange, "getIncomingNeutrinoType(): Invalid oscillation channel " << channel);
215  }
216  }
JFlavour_t in
Incoming flavour.
Definition: JOscChannel.hh:299
#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:301
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 225 of file JOscChannel.hh.

226  {
227  switch (channel.out) {
228  case ELECTRON:
229  return (int)channel.Cparity * (int)ELECTRON;
230  case MUON:
231  return (int)channel.Cparity * (int)MUON;
232  case TAU:
233  return (int)channel.Cparity * (int)TAU;
234  default:
235  THROW(JLANG::JValueOutOfRange, "getOutgoingNeutrinoType(): Invalid oscillation channel " << channel);
236  }
237  }
#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:301
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:300
static JEquationParameters& JOSCPROB::JOscChannel::getEquationParameters ( )
inlinestatic

Get equation parameters.

Returns
equation parameters

Definition at line 245 of file JOscChannel.hh.

246  {
247  static JEquationParameters equation("=", "\n\r;,", "./", "#");
248 
249  return equation;
250  }
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 258 of file JOscChannel.hh.

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

Get properties of this class.

Parameters
equationequation parameters

Definition at line 269 of file JOscChannel.hh.

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

Get properties of this class.

Parameters
equationequation parameters

Definition at line 280 of file JOscChannel.hh.

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

Set properties of this class.

Parameters
propertiesproperties

Definition at line 291 of file JOscChannel.hh.

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

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 107 of file JOscChannel.hh.

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

Read channel from input.

Parameters
ininput stream
objectoscillation channel
Returns
input stream

Definition at line 120 of file JOscChannel.hh.

121  {
122 
123  JProperties properties(object.getProperties());
124 
125  in >> properties;
126 
127  object.setProperties(properties);
128 
129  return in;
130  }
JFlavour_t in
Incoming flavour.
Definition: JOscChannel.hh:299
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:269

Member Data Documentation

JFlavour_t JOSCPROB::JOscChannel::in

Incoming flavour.

Definition at line 299 of file JOscChannel.hh.

JFlavour_t JOSCPROB::JOscChannel::out

Outcoming flavour.

Definition at line 300 of file JOscChannel.hh.

JChargeParity_t JOSCPROB::JOscChannel::Cparity

Charge-parity.

Definition at line 301 of file JOscChannel.hh.


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