-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcalc_rms_runs.C
executable file
·98 lines (80 loc) · 2.77 KB
/
calc_rms_runs.C
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
void calc_rms_runs(int runs)
{
gSystem->Load("/scratch3/wparker2/dmtpc_software/DmtpcCore/lib/libDmtpcCore.so");
gSystem->Load("/scratch3/wparker2/dmtpc_software/DmtpcAnalysis/lib/libDmtpcAnalysis.so");
double stops[5] = {0,0.34,0.61,0.84,1.0};
gStyle->SetOptStat(0);
double red[5] = {0.0,0.0,0.87,1.0,0.51};
double green[5] = {0.0,0.81,1.00,0.2,0.0};
double blue[5] = {0.51,1.0,0.12,0.0,0.0};
TColor::CreateGradientColorTable(5,stops,red,green,blue,255);
gStyle->SetNumberContours(255);
const char * dir ="/scratch3/wparker2/dmtpc2/data/2017/06/raw/";
int cam = 1;
int ncam = 1;
for (int fi=0;fi<runs;fi++){
d = new dmtpc::core::Dataset;
int run=1038014;
d->open(TString::Format("%s/hptpc_test_R%05d.raw.root",dir,run+fi));
TH2 * bias = d->biasAvg(cam);
int n = d->nevents();
TH2 * image = new TH2D("image","image", d->event()->ccdData(cam)->GetNbinsX(),
d->event()->ccdData(cam)->GetXaxis()->GetXmin(),
d->event()->ccdData(cam)->GetXaxis()->GetXmax(),
d->event()->ccdData(cam)->GetNbinsY(),
d->event()->ccdData(cam)->GetYaxis()->GetXmin(),
d->event()->ccdData(cam)->GetYaxis()->GetXmax());
TFile * calc_rms1 = new TFile("calc_rms1.root","RECREATE");
TTree t("pix_t","Pixel Tree");
int nbins = 1000;
// TF1 * gFit = new TF1("gFit","gaus");
TH1F* intensity=new TH1F("intensity","intensity",nbins,-100,100);
double rms = 0;
double mean = 0;
double chi = 0;
int runnum = 0;
double ccdTemp;
int nevents = 0;
//t.Branch("intensity",&intensity);
t.Branch("mean",&mean);
t.Branch("rms",&rms);
// t.Branch("runnum",&runnum);
t.Branch("nevents",&nevents);
t.Branch("chi",&chi);
t.Branch("ccdTemp",&ccdTemp);
for (int i = 0; i < d->nevents(); i++)
{
d->getEvent(i);
//runnum = d->event()->runNumber();
nevents = d->nevents();
image = d->event()->getImage(cam)->getVisible();
image->Add(d->biasAvg(cam),-1);
ccdTemp = d->event()->ccdConfig(cam)->ccdTemp;
for (int m=0; m<image->GetNbinsX(); m++){
for (int n=0; n<image->GetNbinsY(); n++) {
float pixval=image->GetBinContent(m,n);
intensity->Fill(pixval);
}
}
TF1 * gFit = new TF1("gFit","gaus");
intensity->Fit(gFit);
rms = intensity->GetRMS(); //gFit->GetParameter(2);
mean = gFit->GetParameter(1);
chi = gFit->GetChisquare();
t.Fill();
}
intensity->SetStats(kTRUE);
gStyle->SetOptStat(1111);
intensity->SetXTitle("ADU");
intensity->SetYTitle("Number of Entries");
t->Write();
// TCanvas *c2 = new TCanvas("c2","",0,0,600,600);
// c2->cd();
// intensity->Draw();
// intensity->Write();
// c2->Update();
// c2->SetLogy();
// Fe55_gain->Write();
// Fe55_gain->Close();
}
}