Subversion Repositories f9daq

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
326 f9daq 1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <TROOT.h>
4
#include <TF1.h>
5
#include <TH1F.h>
6
#include <TH1D.h>
7
#include <TH2D.h>
8
#include <TCanvas.h>
9
#include <TStyle.h>
10
#include <TSystem.h>
11
#include <TFile.h>
12
#include <TDirectory.h>
13
#include <TApplication.h>
14
#include <TPaveText.h>
15
 
16
 
17
void onBrowserClose() {
18
   gApplication->Terminate(0);
19
}
20
 
21
int febreport(char *path, int run){
22
 
23
        char hname[0xFF];
24
        char name[0xFF];
25
 
26
                gROOT->SetMacroPath("../macros");
27
                gROOT->LoadMacro("slowcxml2root.cxx+");
28
                gROOT->LoadMacro("febana.cxx+");
29
                //gROOT->ProcessLine(".L H2Dload.cxx");
30
                sprintf(hname,"%s/febtest_%04d.root", path,  run);
31
 
32
 printf("File name =%s\n",hname);
33
 TFile *file0 = new TFile(hname);
34
 file0->ls();
35
 TCanvas *c[4];
36
 for (int k=0;k<4;k++){
37
   sprintf(name,"brd%d", k);
38
   c[k]= new TCanvas( name, name, 900, 600);
39
   c[k]->Divide(2,3);
40
 }
41
 
42
 sprintf(name,"slowcxml2root(\"%s/febslowc_%04d.xml\")",path, run);
43
 printf("%s\n",name);
44
 gROOT->ProcessLine(name);
45
 TH2D *h2dp=(TH2D *) gDirectory->Get("h2d_0;1");
46
 for (int k=0;k<4;k++){
47
   sprintf(name,"vth1_%d_0",k);    //you define histogram vth1_0_0;1
48
   TH2D * h0 = (TH2D *) gDirectory->Get(name);   //this tell you directory to your histogram
49
   int brd;
50
   if (!h0) continue;
51
   sscanf(h0->GetTitle(),"%*s%*s%*s%*s sn=%d",&brd);
52
  // printf("sn = %d\n",brd);  
53
        c[k]->cd(1);
54
   hpt(k);
55
        c[k]->cd(2);
56
         //sprintf(name,"title%d",k);
57
     TPaveText *pt1 = new TPaveText(.2,.2,.7,.7);
58
 
59
     if (pt1) pt1->Draw();
60
         sprintf(name,"RUN=febtest_%04d.root", run);
61
         pt1->AddText(name);
62
         sprintf(name,"Position= FEB %d", k);
63
         pt1->AddText(name);
64
         sprintf(name,"SN=%d", brd);
65
         pt1->AddText(name);
66
 
67
 
68
   c[k]->cd(3);
69
   hplot(k);
70
   c[k]->cd(4);
71
   h0->Draw();
72
 
73
 
74
 
75
   if (h2dp) {
76
     double max = h2dp->GetMaximum();
77
     sprintf(name,"board%d", brd);
78
     TH2D *hth= new TH2D(name, "Threshold scan with Test Pulse;channel;VTH1",h2dp->GetNbinsX()/4, -0.5,143.5, h2dp->GetNbinsY() , h2dp->GetYaxis()->GetXmin(), h2dp->GetYaxis()->GetXmax() );
79
         sprintf(name,"fwhm%d", brd);
80
         TH1D *hfwhm= new TH1D(name, "FWHM;channel",h2dp->GetNbinsX()/4, -0.5,143.5 );
81
     hth->SetStats(false);
82
     for (int x=0;x<hth->GetNbinsX();x++){
83
            double fwhm=0;
84
            for (int y=0;y<hth->GetNbinsY();y++){
85
                   double val= h2dp->GetBinContent(k*144+x+1,y+1);
86
                   hth->SetBinContent(x+1, y+1, val);
87
                   if (val> max*0.5) fwhm+=1;
88
            }
89
                hfwhm->SetBinContent(x+1,fwhm);
90
     }
91
         hfwhm->SetMaximum(100);
92
         hfwhm->SetMinimum(0);
93
 
94
         c[k]->cd(5);
95
     hth->Draw("colz");
96
         c[k]->cd(6);
97
         hfwhm->Draw();
98
   }
99
 
100
   sprintf(name,"pdf/board_%d_%04d.pdf(", brd, run);
101
   printf("%s\n",name);
102
   c[k]->Print(name,"pdf");
103
 }  
104
 
105
//printf("name=%s\n",name);
106
 
107
febana(run);
108
 
109
   // printf("arguments path=%s run=%d\n",path, run );
110
 return 0;     
111
}