-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathExampleEventDisplay.cpp
More file actions
81 lines (41 loc) · 1.62 KB
/
ExampleEventDisplay.cpp
File metadata and controls
81 lines (41 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <ExampleEventDisplay.h>
ExampleEventDisplay::ExampleEventDisplay():Plot(){};
bool ExampleEventDisplay::Initialise(Store* variables, std::map<int, std::map<int, PMT> >* PMTInfo, std::vector<std::string>* SlackErrors){
PMTinfo=PMTInfo;
Slackerrors=SlackErrors;
variables->Get("OutputPath",outpath); // Get dynamic variables like this
//Initialise plots and variables here
canvas=new TCanvas("canvasEventDisplay","canvasEventDisplay",600,400);
return true;
}
bool ExampleEventDisplay::Execute(std::vector<CardData*> *data){
try{
//Fill and draw plots here
TH2D EventDisplay("EventDisplay","EventDisplay",10,0,10,10,0,10);
for(int card=0; card<data->size(); card++){
for(int channel=0; channel<data->at(card)->channels; channel++){
long sum=0;
for(int bin=(data->at(card)->buffersize * channel); bin<(data->at(card)->buffersize * (channel+1)); bin++){
sum+=data->at(card)->Data[bin];
}
EventDisplay.SetBinContent((*PMTinfo)[data->at(card)->CardID][channel].gx+1, (*PMTinfo)[data->at(card)->CardID][channel].gy+1, sum);
}
canvas->cd();
EventDisplay.Draw("col");
std::stringstream tmp;
tmp<<outpath<<"EventDisplay" << std::setfill('0') << std::setw(2) << card << ".png";
canvas->SaveAs(tmp.str().c_str());
}
}
catch(...){
Slackerrors->push_back("EventDisplay caused an error");
return false;
}
return true;
}
bool ExampleEventDisplay::Finalise(){
/// delete and cleaen up plots and variables here
delete canvas;
canvas=0;
return true;
}