113 lines
3.2 KiB
C++
113 lines
3.2 KiB
C++
#include "iostream"
|
|
#include "TH1D.h"
|
|
#include "TFile.h"
|
|
#include "TTree.h"
|
|
#include "TCanvas.h"
|
|
#include "TApplication.h"
|
|
#include "TTreeReader.h"
|
|
#include "TList.h"
|
|
#include "DetectorData.hpp"
|
|
#include "TCanvas.h"
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
TApplication App("tapp", &argc, argv);
|
|
TFile *inFile = new TFile("data.root");
|
|
|
|
std::vector<int> non_null_tree_indexes;
|
|
|
|
std::vector<TH1D*> histo;
|
|
std::vector<TCanvas*> canvas;
|
|
|
|
int counter = 0;
|
|
|
|
std::vector<DetectorData> data;
|
|
|
|
|
|
|
|
if(inFile -> IsOpen())
|
|
{
|
|
std::cout << "File opened successfully" << std::endl;
|
|
}
|
|
|
|
TList *list = inFile -> GetListOfKeys();
|
|
|
|
TIter iterator(list -> MakeIterator());
|
|
|
|
while(TObject * obj = iterator())
|
|
{
|
|
TTree *ttreeHelper;
|
|
Data dataHelper;
|
|
|
|
TKey * theKey = (TKey*)obj;
|
|
ttreeHelper = (TTree*)inFile -> Get(theKey -> GetName());
|
|
std::cout << "TTree name: " << theKey -> GetName() << std::endl;
|
|
|
|
ttreeHelper -> SetBranchAddress("x", &dataHelper.x);
|
|
ttreeHelper -> SetBranchAddress("y", &dataHelper.y);
|
|
ttreeHelper -> SetBranchAddress("e", &dataHelper.e);
|
|
ttreeHelper -> SetBranchAddress("sipm", &dataHelper.sipm);
|
|
ttreeHelper -> SetBranchAddress("time", &dataHelper.time);
|
|
|
|
unsigned int entryNumber = ttreeHelper -> GetEntries();
|
|
|
|
if (entryNumber != 0)
|
|
{
|
|
/*
|
|
* SiPM Tree - Name
|
|
* - Data - Hits 0
|
|
* - Hits 1 ...
|
|
*/
|
|
DetectorData detectorDataHelper(theKey -> GetName());
|
|
|
|
data.push_back(detectorDataHelper);
|
|
|
|
for(int i = 0; i < entryNumber; i++)
|
|
{
|
|
ttreeHelper -> GetEntry(i);
|
|
std::cout << "x = " << dataHelper.x << std::endl
|
|
<< "y = " << dataHelper.y << std::endl
|
|
<< "e = " << dataHelper.e << std::endl
|
|
<< "sipm = " << dataHelper.sipm << std::endl
|
|
<< "time = " << dataHelper.time << std::endl;
|
|
data[counter].AddData(dataHelper);
|
|
}
|
|
counter++;
|
|
}
|
|
}
|
|
|
|
for(int i = 0; i < data.size(); i++)
|
|
{
|
|
const char * c = data[i].GetName().c_str();
|
|
|
|
//histo.push_back(new TH2D(c, c, 100, 0, 5, 100, 0, 0.000015));
|
|
//histo.push_back(new TH2D(c, c, 100, 0, 5, 100, 0, 0.000015));
|
|
histo.push_back(new TH1D(c, c, 100, 0, 5));
|
|
histo.push_back(new TH1D(c, c, 100, 0, 5));
|
|
|
|
canvas.push_back(new TCanvas(c, c, 800, 600));
|
|
|
|
std::vector<Data> data_helper = *data[i].GetDataPointer();
|
|
|
|
|
|
for(int j = 0; j < data_helper.size(); j++)
|
|
{
|
|
if(data_helper[j].sipm == 1)
|
|
{
|
|
histo[i*2] -> Fill(data_helper[j].time);
|
|
}
|
|
else if(data_helper[j].sipm == 2)
|
|
{
|
|
histo[i*2 + 1] -> Fill(data_helper[j].time);
|
|
}
|
|
}
|
|
canvas[i] -> Divide(2,1);
|
|
canvas[i] -> cd(1);
|
|
histo[i*2] -> Draw("colz");
|
|
canvas[i] -> cd(2);
|
|
histo[i*2+1] -> Draw("colz");
|
|
}
|
|
|
|
App.Run();
|
|
}
|