1 #ifndef __RATOutNtupleProc___
2 #define __RATOutNtupleProc___
4 #include <TTimeStamp.h>
8 #include <RAT/DS/Classifier.hh>
9 #include <RAT/DS/FitResult.hh>
10 #include <RAT/DS/Run.hh>
11 #include <RAT/Processor.hh>
12 #include <RAT/TransitTimeCalculator.hh>
15 #include "Math/Types.h"
26 void BeginOfRun(
DS::Run *run)
override;
28 enum mc_pe_type { noise = 0, cherenkov = 1, scintillation = 2, reemission = 3, unknown = 4 };
42 virtual bool OpenFile(std::string theFilename);
44 virtual void SetI(std::string param,
int value);
45 virtual void SetS(std::string param, std::string value);
47 static ULong64_t TTimeStamp_to_UnixTime(TTimeStamp ts) {
48 const ULong64_t stonano = 1000000000;
49 return static_cast<ULong64_t
>(ts.GetSec()) * stonano +
static_cast<ULong64_t
>(ts.GetNanoSec());
51 virtual void EndOfRun(
DS::Run *run)
override;
54 virtual void AssignAdditionalAddresses(){};
55 virtual void AssignAdditionalMetaAddresses(){};
57 virtual void FillNoTriggerEvent(
DS::Root *){};
58 virtual void FillMeta(){};
67 bool digitizerwaveforms;
78 std::vector<std::string> waveform_fitters;
79 std::map<std::string, std::vector<std::string>> waveform_fitter_FOMs;
80 std::vector<std::string> event_fitters;
81 std::map<std::string, std::vector<std::string>> event_fitter_FOMs;
82 std::vector<std::string> event_classifiers;
83 std::map<std::string, std::vector<std::string>> event_classifier_FOMs;
85 std::unique_ptr<RAT::TransitTimeCalculator> fTransitTimeCalculator;
88 std::string defaultFilename;
99 std::vector<int> pmtType;
100 std::vector<int> pmtId;
101 std::vector<int> pmtChannel;
102 std::vector<bool> pmtIsOnline;
103 std::vector<double> pmtCableOffset;
104 std::vector<double> pmtChargeScale;
105 std::vector<double> pmtPulseWidthScale;
106 std::vector<double> pmtX;
107 std::vector<double> pmtY;
108 std::vector<double> pmtZ;
109 std::vector<double> pmtU;
110 std::vector<double> pmtV;
111 std::vector<double> pmtW;
112 std::vector<int> ntId;
113 std::vector<double> ntX;
114 std::vector<double> ntY;
115 std::vector<double> ntZ;
116 std::vector<double> ntU;
117 std::vector<double> ntV;
118 std::vector<double> ntW;
119 u_int32_t digitizerWindowSize;
120 Double_t digitizerSampleRate;
121 Double_t digitizerDynamicRange;
122 Double_t digitizerVoltageResolution;
125 bool done_writing_calib;
128 Double_t calibIntensity;
129 Double_t calibWavelength;
130 std::string calibName;
132 Double_t calibX, calibY, calibZ, calibU, calibV, calibW;
135 std::vector<Double_t> inWindowPulseTimes;
136 std::vector<Double_t> inWindowPulseCharges;
137 std::vector<UShort_t> waveform;
140 double mcx, mcy, mcz;
141 double mcu, mcv, mcw;
144 std::vector<double> mcTransitTimes;
151 ULong64_t trigger_word;
152 ULong64_t event_cleaning_word;
153 double timeSinceLastTrigger_us;
156 double scintEdepQuenched;
163 std::vector<int> mcpmtid;
164 std::vector<int> mcpmtnpe;
165 std::vector<double> mcpmtcharge;
169 std::vector<int> mcNTid;
170 std::vector<double> mcNThittime;
171 std::vector<double> mcNThitx;
172 std::vector<double> mcNThity;
173 std::vector<double> mcNThitz;
175 std::vector<int> mcpepmtid;
176 std::vector<double> mcpehittime;
177 std::vector<double> mcpefrontendtime;
178 std::vector<int> mcpeprocess;
179 std::vector<double> mcpewavelength;
180 std::vector<double> mcpex;
181 std::vector<double> mcpey;
182 std::vector<double> mcpez;
183 std::vector<double> mcpecharge;
187 std::vector<Int_t> pdgcodes;
188 std::vector<double> mcKEnergies;
189 std::vector<double> mcPosx;
190 std::vector<double> mcPosy;
191 std::vector<double> mcPosz;
192 std::vector<double> mcDirx;
193 std::vector<double> mcDiry;
194 std::vector<double> mcDirz;
195 std::vector<double> mcTime;
197 std::map<std::string, double> fitvalues;
198 std::map<std::string, bool> fitvalids;
199 std::map<std::string, std::map<std::string, double>> fiteventFOMs;
200 std::map<std::string, std::map<std::string, double>> classifyeventFOMs;
202 std::vector<int> hitPMTID;
203 std::vector<double> hitPMTTime;
204 std::vector<double> hitPMTCharge;
207 std::vector<double> digitPeak;
208 std::vector<double> digitTime;
209 std::vector<double> digitCharge;
210 std::vector<double> digitTimeOverThreshold;
211 std::vector<double> digitVoltageOverThreshold;
212 std::vector<double> digitLocalTriggerTime;
213 std::vector<int> digitReconNPEs;
214 std::vector<int> digitNCrossings;
215 std::vector<int> digitPMTID;
217 int digitHitCleanedNhits;
218 std::vector<uint64_t> digitHitCleaningMask;
220 std::map<std::string, std::vector<int>> wfmFitPmtID;
221 std::map<std::string, std::vector<double>> wfmFitTime;
222 std::map<std::string, std::vector<double>> wfmFitCharge;
223 std::map<std::string, std::map<std::string, std::vector<double>>> wfmFitFOM;
225 std::map<std::string, int> processCodeMap;
226 std::vector<int> processCodeIndex;
227 std::vector<std::string> processName;
228 std::map<std::string, int> volumeCodeMap;
229 std::vector<int> volumeCodeIndex;
230 std::vector<std::string> volumeName;
233 std::vector<int> trackPDG;
234 std::vector<std::vector<double>> trackPosX;
235 std::vector<std::vector<double>> trackPosY;
236 std::vector<std::vector<double>> trackPosZ;
237 std::vector<std::vector<double>> trackMomX;
238 std::vector<std::vector<double>> trackMomY;
239 std::vector<std::vector<double>> trackMomZ;
240 std::vector<std::vector<double>> trackKE;
241 std::vector<std::vector<double>> trackTime;
242 std::vector<std::vector<int>> trackProcess;
243 std::vector<std::vector<int>> trackVolume;
Definition: OutNtupleProc.hh:22
virtual void SetI(std::string param, int value)
Definition: OutNtupleProc.cc:882
virtual Processor::Result DSEvent(DS::Root *ds)
Definition: OutNtupleProc.cc:352
virtual void SetS(std::string param, std::string value)
Definition: OutNtupleProc.cc:876
Definition: Processor.hh:36
Result
Definition: Processor.hh:59
Definition: CCCrossSecMessenger.hh:29
Definition: OutNtupleProc.hh:63