This is the analysis class generated by default by KaliVedaGUI for raw data analysis.
#pragma once
#include "KVRawDataAnalyser.h"
#include <vector>
#include <string>
{
struct raw_data_t {
int n_sig;
std::vector<int> det_index;
std::vector<std::string> det_type;
std::vector<std::string> sig_type;
std::vector<float> sig_val;
void clear()
{
n_sig = 0;
det_index.clear();
det_type.clear();
sig_type.clear();
sig_val.clear();
}
};
raw_data_t raw_data;
Int_t Mult = 0;
public:
ExampleRawAnalysis() = default;
ClassDefOverride(ExampleRawAnalysis,1)
};
Abstract base class for user analysis of raw data.
virtual Bool_t Analysis()=0
virtual void EndAnalysis()=0
virtual void InitAnalysis()=0
#include "ExampleRawAnalysis.h"
#include "KVMultiDetArray.h"
ClassImp(ExampleRawAnalysis)
void ExampleRawAnalysis::InitAnalysis()
{
AddHisto<TH1F>("Mult", "Number of fired detectors in each event", 1000, -.5, 999.5);
auto tt = AddTree("raw_data", "");
tt->Branch("n_sig", &raw_data.n_sig);
tt->Branch("det_index", &raw_data.det_index);
tt->Branch("det_type", &raw_data.det_type);
tt->Branch("sig_type", &raw_data.sig_type);
tt->Branch("sig_val", &raw_data.sig_val);
SetJobOutputFileName("ExampleRawAnalysis_results.root");
}
void ExampleRawAnalysis::InitRun()
{
Info(
"InitRun",
"Beginning analysis of runfile %s containing %llu events", GetRunIndexNumber().as_string().Data(), GetCurrentRunFile()->GetEvents());
GetCurrentRunFile()->ls();
GetTree("raw_data")->SetTitle(GetSystem()->GetName());
}
Bool_t ExampleRawAnalysis::Analysis()
{
raw_data.clear();
FillHisto("Mult", Mult);
TIter it(sigs);
++raw_data.n_sig;
raw_data.sig_type.push_back(det_sig->
GetType());
raw_data.sig_val.push_back(det_sig->
GetValue());
}
FillTree();
}
return kTRUE;
}
const Char_t * GetLabel() const
Base class for output signal data produced by a detector.
const Char_t * GetType() const override
virtual Double_t GetValue(const KVNameValueList ¶ms="") const
const KVDetector * GetDetector() const
virtual Int_t GetIndex() const
const KVSeqCollection * GetFiredSignals() const
Bool_t HandledRawData() const
const KVSeqCollection * GetFiredDetectors() const
void Info(UserClass p, const char *location, const char *va_(fmt),...)