Tools for Reactor-Antineutrino Studies in RAT-PAC  1.2.0
Code for running and analyzing reactor-IBD simulations
TKSMultiRibbons.h
1 // TKSMultiRibbons
3 // See TKSMultiRes for more information
4 // -- Note: For CINT, load using gROOT->LoadMacro("TKSMultiRibbons.cxx");
5 // ~ Mark J. Duvall ~ mjduvall@hawaii.edu ~ 08/2022 ~ //
6 
7 //Copyright (C) 2022 Mark J. Duvall / T. Rocks Science
8 //
9 // This program is free software: you can redistribute it and/or modify
10 // it under the terms of the GNU General Public License as published by
11 // the Free Software Foundation, either version 3 of the License, or
12 // (at your option) any later version.
13 //
14 // This program is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 
49 #ifndef TKSMultiRibbons
50 #define TKSMultiRibbons
51 
52 //#include "TKSMultiRes.cxx"
53 
54 class TKSMultiRibbons : public TClass {
55 
56 public:
57  // graph-selection enum
58  enum EPlotTypes
59  {
62  kBoth
63  };
64 
65 private:
66  // members
67  /* TKSMultiRes* fkMultiRes; ///< Invoking TKSMultiRes object (if any) */
68  Bool_t fkInit;
69  Int_t fkNFiles;
70  Int_t fkNAngles;
73  TObjArray* fFileList;
74  TString fOutFileName;
75  TFile* fOutFile;
76  TCanvas* fHeatmapCanvas;
77  TCanvas* fRibbonCanvas;
78  TList* fRibbonList;
79  TList* fCutList;
80  TMatrixD* fDeltas;
81 
82 private:
83  // internal methods
84  /* void SetMultiRes(TKSMultiRes* newMultiRes) { fkMultiRes=newMultiRes; } */
85  void SetInit(Bool_t newInit) { fkInit=newInit; }
86  void FillFileList();
87  void SetNFiles(Int_t newNFiles) { fkNFiles=newNFiles; }
88  void SetNAngles(Int_t newNAngles) { fkNAngles=newNAngles; }
89  void SetDeltas(TMatrixD *newDeltas);
90  TMatrixD RetrieveData();
91  void FillData();
92 
93 public:
94  // public methods
95  TKSMultiRibbons();
96  Bool_t IsInit() { return fkInit; }
97  // setters and getters
98  void SetPlotTypes(EPlotTypes plotSelection) { fPlotTypes=plotSelection; }
99  void SetCurrentPlotType(EPlotTypes plotSelection) { fCurrentPlotType=plotSelection; }
100  void SetFileList(TObjArray* newFileList) { fFileList=newFileList; }
101  void SetOutFileName(TString fileName) { fOutFileName=fileName; }
102  void SetOutFileName(const char* filename) { fOutFileName=TString(filename); }
103  void SetOutFile(TFile *fNew) { fOutFile=fNew; }
104  /* TKSMultiRes* GetMultiRes() { return fkMultiRes; } */
105  Int_t GetNFiles() { return fkNFiles; }
106  Int_t GetNAngles() { return fkNAngles; }
107  EPlotTypes GetPlotTypes() { return fPlotTypes; }
108  EPlotTypes GetCurrentPlotType() { return fCurrentPlotType; }
109  TObjArray* GetFileList() { return fFileList; }
110  TString GetOutFileName() { return fOutFileName; }
111  TFile* GetOutFile() { return fOutFile; }
112  TCanvas* GetHeatmapCanvas() { return fHeatmapCanvas; }
113  TCanvas* GetRibbonCanvas() { return fRibbonCanvas; }
114  TList* GetRibbonList() { return fRibbonList; }
115  TList* GetCutList() { return fCutList; }
116  TMatrixD* GetDeltas() { return fDeltas; }
117  // general
118  void Init();
119  void DrawPlots();
120  void Ribbons();
121  void Heatmap();
122  void Save();
123  void Run();
124  void PrintEnums();
125 
126 // Integrating the TKSMultiRibbons class into ROOT
127 ClassDef(TKSMultiRibbons,2)
128 
129 }; //end class
130 
131 // all pau! )
132 #endif
133 
Class for analyzing DeltaPhi for each individual angle alongside TKSMultiRes.
Definition: TKSMultiRibbons.h:54
TCanvas * fRibbonCanvas
Canvas for ribbon plots.
Definition: TKSMultiRibbons.h:77
void DrawPlots()
Draw specified plots.
Definition: TKSMultiRibbons.cxx:128
Bool_t fkInit
Whether Init() has been run yet.
Definition: TKSMultiRibbons.h:68
EPlotTypes
Which plots to make:
Definition: TKSMultiRibbons.h:59
@ kRibbons
Ribbon plot only.
Definition: TKSMultiRibbons.h:60
@ kBoth
Both plots.
Definition: TKSMultiRibbons.h:62
@ kHeatmap
Heatmap plot only.
Definition: TKSMultiRibbons.h:61
void Save()
Save results.
Definition: TKSMultiRibbons.cxx:266
TObjArray * fFileList
List of KSSummary files to analyze.
Definition: TKSMultiRibbons.h:73
Bool_t IsInit()
Whether Init() has been run yet.
Definition: TKSMultiRibbons.h:96
void SetDeltas(TMatrixD *newDeltas)
Fill difference matrix.
Definition: TKSMultiRibbons.cxx:112
TKSMultiRibbons()
Default ctor.
Definition: TKSMultiRibbons.cxx:13
void Ribbons()
Fit distributions for each angle and draw as ribbon plot.
Definition: TKSMultiRibbons.cxx:239
void FillFileList()
Scan for KSSummary files and store in fFileList.
Definition: TKSMultiRibbons.cxx:30
void Init()
Initialize.
Definition: TKSMultiRibbons.cxx:56
EPlotTypes fPlotTypes
Which plots to make.
Definition: TKSMultiRibbons.h:71
void Run()
Perform all selected analyses.
Definition: TKSMultiRibbons.cxx:323
TFile * fOutFile
Output TFile*.
Definition: TKSMultiRibbons.h:75
TMatrixD * fDeltas
Matrix containing (phi_recon-phi_true), dimensions <N_files>x<N_angles>
Definition: TKSMultiRibbons.h:80
TMatrixD RetrieveData()
Fetch data from files.
Definition: TKSMultiRibbons.cxx:72
EPlotTypes fCurrentPlotType
Currently-active plot type.
Definition: TKSMultiRibbons.h:72
Int_t fkNAngles
Number of angles in each file.
Definition: TKSMultiRibbons.h:70
void FillData()
Fill difference data.
Definition: TKSMultiRibbons.cxx:121
void PrintEnums()
Display this class' enums.
Definition: TKSMultiRibbons.cxx:374
void Heatmap()
Fit distributions for each angle and draw as heatmap.
Definition: TKSMultiRibbons.cxx:253
Int_t fkNFiles
Number of 'KSSummary.root' files found.
Definition: TKSMultiRibbons.h:69
TList * fCutList
List of xy cuts for ribbon plots.
Definition: TKSMultiRibbons.h:79
TString fOutFileName
Output filename.
Definition: TKSMultiRibbons.h:74
TCanvas * fHeatmapCanvas
Canvas for heatmap plot.
Definition: TKSMultiRibbons.h:76
TList * fRibbonList
List of ribbon plots.
Definition: TKSMultiRibbons.h:78