GamR  0.0.0
GammaROOT
Loading...
Searching...
No Matches
Transition.hh
Go to the documentation of this file.
1#ifndef GAMR_NUCLEUS_TRANSITION_HH
2#define GAMR_NUCLEUS_TRANSITION_HH
3
4#include <map>
5#include <iostream>
6#include <string>
7
8/* ROOT */
9#include <Rtypes.h>
10#include <TNamed.h>
11
12/* GAMR */
13#include <toolkit/Gate.hh>
14
15namespace GamR {
16 namespace Nucleus {
17
18 class Transition : public TNamed {
19 protected:
21 std::vector<GamR::TK::Gate> fBackground;
22 double fEnergy = 0;
23 public:
24 Transition(double E=0, double PL=0, double PH=4096, double BL=0, double BH=4096) :
25 fPeak(PL,PH), fEnergy(E) {if (BL!=0 || BH!=4096) {fBackground.push_back(GamR::TK::Gate(BL,BH));}}
26 void SetEnergy(double E) { fEnergy = E; }
27 void SetPeak() { std::cout << "Setting peak: " << std::endl; fPeak.SetGate(); }
28 void SetPeak(double Low, double High) { fPeak.SetGate(Low, High); }
29 void SetBackground() { std::cout << "Setting background: " << std::endl; GamR::TK::Gate tempgate; tempgate.SetGate(); fBackground.push_back(tempgate); }
30 void SetBackground(double Low, double High) { GamR::TK::Gate tempgate; tempgate.SetGate(Low, High); fBackground.push_back(tempgate); }
31 void AddBackground();
32 void AddBackground(double Low, double High);
34 double Apply(TH1D *hist) const;
35 double ApplyError(TH1D *hist) const;
36 double ApplyCounts(TH1D *hist) const;
37 double ApplyCountsError(TH1D *hist) const;
38 double GetEnergy() { return fEnergy; }
39 const GamR::TK::Gate* GetGate() const { return &fPeak; }
40 const GamR::TK::Gate* GetGateBG() const { return &(fBackground[0]); }
41 const std::vector<GamR::TK::Gate>* GetGateBGs() const { return &fBackground; }
42
44 };
45
46 class TransitionMap: public TNamed {
47 private:
48 std::map<std::string, Transition > fMap;
49 public:
51 TransitionMap(const char *name) : TNamed(name, name) {};
52 TransitionMap(const char *name, std::string asciimapfilename);
53 Transition& operator[] (std::string key){ return fMap[key]; }
54 std::map<std::string, Transition > *GetMap() { return &fMap; }
55 void ReadFile(std::string asciimapfilename);
56 void WriteFile(std::string asciimapfilename);
57 void ls(Option_t *option = "") const
58 {
59 (void)option;
60 printf("Key Peak Low Peak High Background Low Background High\n");
61 for (auto i = fMap.begin(); i != fMap.end(); ++i) {
62 for (int ibackgate = 0; ibackgate<(i->second.GetGateBGs())->size(); ++ibackgate ) {
63 printf("%-20s%-12.2f%-12.2f%-18.2f%-18.2f\n", (i->first).c_str(),
64 (double)((i->second).GetGate()->GetLow()),
65 (double)((i->second).GetGate()->GetHigh()),
66 (double)((*(i->second).GetGateBGs())[ibackgate].GetLow()),
67 (double)((*(i->second).GetGateBGs())[ibackgate].GetHigh()));
68 }
69 }
70 }
71
73 ClassDef(TransitionMap, 2)
75 };
76
77 }
78}
79
80#endif
void SetEnergy(double E)
Definition Transition.hh:26
double Apply(TH1D *hist) const
Definition Transition.cc:53
const GamR::TK::Gate * GetGate() const
Definition Transition.hh:39
double ApplyCountsError(TH1D *hist) const
Definition Transition.cc:62
std::vector< GamR::TK::Gate > fBackground
Definition Transition.hh:21
const std::vector< GamR::TK::Gate > * GetGateBGs() const
Definition Transition.hh:41
double ApplyError(TH1D *hist) const
Definition Transition.cc:56
Transition(double E=0, double PL=0, double PH=4096, double BL=0, double BH=4096)
Definition Transition.hh:24
void SetBackground(double Low, double High)
Definition Transition.hh:30
void SetPeak(double Low, double High)
Definition Transition.hh:28
const GamR::TK::Gate * GetGateBG() const
Definition Transition.hh:40
double ApplyCounts(TH1D *hist) const
Definition Transition.cc:59
void WriteFile(std::string asciimapfilename)
Definition Transition.cc:37
std::map< std::string, Transition > * GetMap()
Definition Transition.hh:54
TransitionMap(const char *name)
Definition Transition.hh:51
void ReadFile(std::string asciimapfilename)
Definition Transition.cc:21
void ls(Option_t *option="") const
Definition Transition.hh:57
Transition & operator[](std::string key)
Definition Transition.hh:53
int SetGate()
Definition Gate.cc:76
Definition Gain.cc:19