Example of an analysis class for raw (i.e. unreconstructed) data
This is the analysis class generated by default by KaliVedaGUI for raw data analysis.
#ifndef __EXAMPLERAWANALYSIS_H
#define __EXAMPLERAWANALYSIS_H
#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;
public:
ExampleRawAnalysis() {}
virtual ~ExampleRawAnalysis() {}
};
#endif
#define ClassDef(name, id)
Abstract base class for user analysis of raw data.
virtual Bool_t Analysis()=0
virtual void EndAnalysis()=0
virtual void InitAnalysis()=0
DisplacementVector3D< CoordSystem, U > Mult(const Matrix &m, const DisplacementVector3D< CoordSystem, U > &v)
#include "ExampleRawAnalysis.h"
#include "KVMultiDetArray.h"
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(), GetCurrentRun()->GetEvents());
GetCurrentRunFile()->ls();
GetTree("raw_data")->SetTitle(GetSystem()->GetName());
}
Bool_t ExampleRawAnalysis::Analysis()
{
raw_data.clear();
FillHisto("Mult", Mult);
++raw_data.n_sig;
raw_data.det_index.push_back(det_sig->
GetDetector()->GetIndex());
raw_data.det_type.push_back(det_sig->
GetDetector()->GetLabel());
raw_data.sig_type.push_back(det_sig->
GetType());
raw_data.sig_val.push_back(det_sig->
GetValue());
}
}
}
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
const KVSeqCollection * GetFiredSignals() const
Bool_t HandledRawData() const
const KVSeqCollection * GetFiredDetectors() const
virtual Int_t GetEntries() const
void FillTree(TTree &myTree, const RooDataSet &data)