All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IPrediction.h
Go to the documentation of this file.
1 #pragma once
2 
4 
6 
7 class TDirectory;
8 
9 namespace ana
10 {
11  /// Enumeration of neutrino transition modes
12  namespace Flavors{
13  enum Flavors_t{
14  kNuEToNuE = 1<<0, ///< \f$\nu_e\to\nu_e\f$ ('beam \f$\nu_e \f$')
15  kNuEToNuMu = 1<<1, ///< \f$\nu_e\to\nu_\mu\f$ ('\f$\nu_\mu\f$ appearance')
16  kNuEToNuTau = 1<<2, ///< \f$\nu_e\to\nu_\tau\f$
17  kNuMuToNuE = 1<<3, ///< \f$\nu_\mu\to\nu_e\f$ ('\f$\nu_e\f$ appearance')
18  kNuMuToNuMu = 1<<4, ///< \f$\nu_\mu\to\nu_\mu\f$ ('\f$\nu_\mu\f$ survival')
19  kNuMuToNuTau = 1<<5, ///< \f$\nu_\mu\to\nu_\tau\f$
20 
21  kAllNuE = kNuEToNuE | kNuMuToNuE, ///< All \f$\nu_e\f$
22  kAllNuMu = kNuEToNuMu | kNuMuToNuMu, ///< All \f$\nu_\mu\f$
23  kAllNuTau = kNuEToNuTau | kNuMuToNuTau, ///< All \f$\nu_\tau\f$
24 
25  kAll = kAllNuE | kAllNuMu | kAllNuTau ///< All neutrinos, any flavor
26  };
27 
29  {
30  // The default definition returns an int. We don't want that
31  return Flavors_t(int(a) | int(b));
32  }
33  }
34 
35  /// Enumeration for interaction currents (CC/NC)
36  namespace Current{
37  enum Current_t{
38  kCC = 1<<0, ///< Charged-current interactions
39  kNC = 1<<1, ///< Neutral-current interactions
40 
41  kBoth = kCC | kNC ///< Interactions of both types
42  };
43  }
44 
45  /// Enumeration for neutrino sign (neutrino/antineutrino)
46  namespace Sign{
47  enum Sign_t{
48  kNu = 1<<0, ///< Neutrinos-only
49  kAntiNu = 1<<1, ///< Antineutrinos-only
50 
51  kBoth = kNu | kAntiNu ///< Both neutrinos and antineutrinos
52  };
53  }
54 
55  class SystShifts;
56 
57  /// Standard interface to all prediction techniques
59  {
60  public:
61  virtual ~IPrediction(){}
62  virtual Spectrum PredictUnoscillated() const;
63  virtual Spectrum Predict(osc::IOscCalc* calc) const = 0;
64  virtual Spectrum PredictSyst(osc::IOscCalc* calc,
65  const SystShifts& syst) const;
66 
68  Flavors::Flavors_t flav,
69  Current::Current_t curr,
70  Sign::Sign_t sign) const = 0;
72  const SystShifts& syst,
73  Flavors::Flavors_t flav,
74  Current::Current_t curr,
75  Sign::Sign_t sign) const;
76 
77  virtual OscillatableSpectrum ComponentCC(int from, int to) const
78  {std::cout << "OscillatableSpectrum::ComponentCC() unimplemented" << std::endl; abort();}
79  //virtual Spectrum ComponentNC() const
80  //{std::cout << "OscillatableSpectrum::ComponentNC() unimplemented" << std::endl; abort();}
81 
82  virtual void SaveTo(TDirectory* dir) const;
83  };
84 }
Antineutrinos-only.
Definition: IPrediction.h:49
(&#39; appearance&#39;)
Definition: IPrediction.h:17
virtual void SaveTo(TDirectory *dir) const
Definition: IPrediction.cxx:85
Simple record of shifts applied to systematic parameters.
Definition: SystShifts.h:16
(&#39;beam &#39;)
Definition: IPrediction.h:14
virtual Spectrum PredictComponentSyst(osc::IOscCalc *calc, const SystShifts &syst, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const
Definition: IPrediction.cxx:72
virtual Spectrum PredictUnoscillated() const
Definition: IPrediction.cxx:54
process_name opflashCryoW ana
virtual ~IPrediction()
Definition: IPrediction.h:61
Representation of a spectrum in any variable, with associated POT.
Definition: Spectrum.h:30
virtual Spectrum Predict(osc::IOscCalc *calc) const =0
process_name gaushit a
Charged-current interactions.
Definition: IPrediction.h:38
Interactions of both types.
Definition: IPrediction.h:41
virtual Spectrum PredictSyst(osc::IOscCalc *calc, const SystShifts &syst) const
Definition: IPrediction.cxx:62
Neutrinos-only.
Definition: IPrediction.h:48
(&#39; survival&#39;)
Definition: IPrediction.h:18
tuple dir
Definition: dropbox.py:28
int sign(double val)
Definition: UtilFunc.cxx:104
Flavors_t operator|(Flavors_t a, Flavors_t b)
Definition: IPrediction.h:28
virtual OscillatableSpectrum ComponentCC(int from, int to) const
Definition: IPrediction.h:77
Neutral-current interactions.
Definition: IPrediction.h:39
virtual Spectrum PredictComponent(osc::IOscCalc *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const =0
Both neutrinos and antineutrinos.
Definition: IPrediction.h:51
Standard interface to all prediction techniques.
Definition: IPrediction.h:58
All neutrinos, any flavor.
Definition: IPrediction.h:25
(&#39; appearance&#39;)
Definition: IPrediction.h:15
Spectrum with true energy information, allowing it to be oscillated
BEGIN_PROLOG could also be cout