Subversion Repositories f9daq

Rev

Rev 218 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 218 Rev 315
Line 7... Line 7...
7
#include <TStyle.h>
7
#include <TStyle.h>
8
#include <TCanvas.h>
8
#include <TCanvas.h>
9
#include <TLegend.h>
9
#include <TLegend.h>
10
// Program za analizo podatkov zajetih z AITSiPMDAQ 
10
// Program za analizo podatkov zajetih z AITSiPMDAQ 
11
 
11
 
12
int aitana( const char *fname="a1.dat", int range=10, float cut=500, int *offset = NULL)
12
int aitana( const char *fname="a1.dat", int range=5, float cut=300, int *offset = NULL)
13
{
13
{
14
        int debug=0;
14
        int debug=0;
15
       //int off[4]={507,521,497,459};
15
       //int off[4]={507,521,497,459};
-
 
16
                //int off[4]={198,203,190,150}; /// run 1
16
                int off[4]={87,125,95,80};
17
                int off[4]={120,120,120,120}; /// run 6
17
                if (offset) for (int i=0;i<4;i++){off[i]=offset[i];};
18
                if (offset) for (int i=0;i<4;i++){off[i]=offset[i];};
18
 
-
 
19
                gStyle->SetOptStat(0);
19
                gStyle->SetOptStat(0);
20
 
20
 
21
        char rootname[0xFF];
21
        char rootname[0xFF];
22
                sprintf(rootname, "%s.root", fname);
22
                sprintf(rootname, "%s.root", fname);
23
        TFile *froot = new  TFile(rootname,"RECREATE");
23
        TFile *froot = new  TFile(rootname,"RECREATE");
Line 25... Line 25...
25
            TLegend * leg = new TLegend(0.8, 0.8, 1, 1);
25
            TLegend * leg = new TLegend(0.8, 0.8, 1, 1);
26
                TH1F *hadc[4];
26
                TH1F *hadc[4];
27
                TH1F *hadcsum;
27
                TH1F *hadcsum;
28
                TH1F *hadcsumx;
28
                TH1F *hadcsumx;
29
                TH1F *hadcsumy;
29
                TH1F *hadcsumy;
30
                TH2F *hxy;
30
                TH2F *hxy,*hxy1,*hxy2;
31
                TH2F *h2d=NULL;
31
                TH2F *h2d=NULL;
32
                TH2F *h2dx=NULL;
32
                TH2F *h2dx=NULL;
33
                TH2F *h2dy=NULL;
33
                TH2F *h2dy=NULL;
34
                TH2F *hxcorr=NULL;
34
                TH2F *hxcorr=NULL;
35
                TH2F *hycorr=NULL;
35
                TH2F *hycorr=NULL;
Line 40... Line 40...
40
         hadc[i]=new TH1F(histname,histname,200,0.5,200*range+0.5);
40
         hadc[i]=new TH1F(histname,histname,200,0.5,200*range+0.5);
41
                }
41
                }
42
                hadcsum=new TH1F("adcsum","adcsum",200,0.5,8*200*range+0.5);
42
                hadcsum=new TH1F("adcsum","adcsum",200,0.5,8*200*range+0.5);
43
                hadcsumx=new TH1F("adcsumx","adcsumx",200,0.5,200*range+0.5);
43
                hadcsumx=new TH1F("adcsumx","adcsumx",200,0.5,200*range+0.5);
44
                hadcsumy=new TH1F("adcsumy","adcsumy",200,0.5,200*range+0.5);
44
                hadcsumy=new TH1F("adcsumy","adcsumy",200,0.5,200*range+0.5);
45
        hxy=new TH2F("hxy","Center of gravity;ycog(a.u.);xcog(a.u.)",200,0,1,200,0,1);
45
        hxy=new TH2F("hxy","Center of gravity;ycog(a.u.);xcog(a.u.)",200,-0.1,1.1,200,-0.1,1.1);
46
     
-
 
-
 
46
        hxy1=new TH2F("hxy1","Center of gravity for position 1;ycog(a.u.);xcog(a.u.)",200,-0.1,1.1,200,-0.1,1.1);
-
 
47
        hxy2=new TH2F("hxy2","Center of gravity for position 2;ycog(a.u.);xcog(a.u.)",200,-0.1,1.1,200,-0.1,1.1);
47
                FILE *fin=fopen(fname,"rb");
48
                FILE *fin=fopen(fname,"rb");
48
        if (fin==NULL) {
49
        if (fin==NULL) {
49
                printf("Error opening file %s\n",fname);
50
                printf("Error opening file %s\n",fname);
50
                return 0;
51
                return 0;
51
        }
52
        }
Line 79... Line 80...
79
                                                           sum=0;                                                          
80
                                                           sum=0;                                                          
80
                                                           for (int j=0;j<4;j++){
81
                                                           for (int j=0;j<4;j++){
81
                                                                 a[j]=adc[j]&0xFFF;
82
                                                                 a[j]=adc[j]&0xFFF;
82
                                                                 //sum+=a[j];
83
                                                                 //sum+=a[j];
83
                                                                 hadc[j]->Fill(a[j]);  
84
                                                                 hadc[j]->Fill(a[j]);  
84
                                 b[j]=a[j]-off[j]+10;
85
                                 b[j]=a[j]-off[j];
-
 
86
                                                                 if (b[j]< 0) b[j]=0;
85
                                 sum+=b[j];                                                              
87
                                 sum+=b[j];                                                              
86
                                                           }
88
                                                           }
87
                                                           hadcsum->Fill(sum);
89
                                                           hadcsum->Fill(sum);
88
                                                           hadcsumx->Fill(a[0]+a[1]);
90
                                                           hadcsumx->Fill(a[0]+a[1]);
89
                                                           hadcsumy->Fill(a[2]+a[3]);
91
                                                           hadcsumy->Fill(a[2]+a[3]);
Line 93... Line 95...
93
                                                           if (h2dx) h2dx->Fill(posx,posy,b[0]+b[1]);
95
                                                           if (h2dx) h2dx->Fill(posx,posy,b[0]+b[1]);
94
                                                           if (h2dy) h2dy->Fill(posx,posy,b[2]+b[3]);
96
                                                           if (h2dy) h2dy->Fill(posx,posy,b[2]+b[3]);
95
                                                           
97
                                                           
96
                                                           if (sum>cut) {
98
                                                           if (sum>cut) {
97
                                                                   hxy->Fill(y,x);
99
                                                                   hxy->Fill(y,x);
-
 
100
                                   if (pos[3]==poshdr[6]/4 && pos[4]==poshdr[7]/4) hxy1->Fill(y,x);
-
 
101
                                   if (pos[3]==poshdr[6]/4*3 && pos[4]==poshdr[7]/4*3) hxy2->Fill(y,x);
98
                                                                   if (hxcorr) hxcorr->Fill(pos[0],y);
102
                                                                   if (hxcorr) hxcorr->Fill(pos[0],y);
99
                                                                   if (hycorr) hycorr->Fill(pos[1],x);
103
                                                                   if (hycorr) hycorr->Fill(pos[1],x);
100
                                                           }       
104
                                                           }       
101
                                                           
105
                                                           
102
                                                   }
106
                                                   }
Line 159... Line 163...
159
                */
163
                */
160
                c->Print(rootname,"pdf");
164
                c->Print(rootname,"pdf");
161
 
165
 
162
               
166
               
163
                c= new TCanvas("c1","ait reconstruction",750,50,700,700);
167
                c= new TCanvas("c1","ait reconstruction",750,50,700,700);
164
                c->Divide(2,3);
168
                c->Divide(2,4);
165
                if (!h2d){
169
                if (!h2d){
166
              c->Clear();
170
              c->Clear();
167
                  c->Divide(1,4);
171
                  c->Divide(2,3);
168
                }      
172
                }      
169
       
173
       
170
               
174
               
171
                hxy->SetMinimum(-1);
175
                hxy->SetMinimum(-1);
172
                hxy->SetMaximum(1000);
176
                hxy->SetMaximum(1000);
173
                c->cd(1)->SetLogz(); hxy->DrawCopy("colz");
177
                c->cd(1)->SetLogz(); hxy->DrawCopy("colz");
-
 
178
        c->cd(3)->SetLogz(); hxy1->DrawCopy("colz");
-
 
179
        c->cd(4)->SetLogz(); hxy2->DrawCopy("colz");
174
                c->cd(4)->SetLogy(); hadcsum->DrawCopy();
180
                c->cd(2)->SetLogy(); hadcsum->DrawCopy();
175
               
181
               
176
                if (h2d){
182
                if (h2d){
177
                  hxcorr->SetMinimum(-1);
183
                  hxcorr->SetMinimum(-1);
178
                  hycorr->SetMinimum(-1);
184
                  hycorr->SetMinimum(-1);
179
                  c->cd(5); hxcorr->DrawCopy("colz");
185
                  c->cd(7); hxcorr->DrawCopy("colz");
180
                  c->cd(6); hycorr->DrawCopy("colz");
186
                  c->cd(8); hycorr->DrawCopy("colz");
181
                }  
187
                }  
182
                TH1D *px = hxy->ProjectionX("_px",0,-1);
188
                TH1D *px = hxy->ProjectionX("_px",0,-1);
183
                c->cd(2); px->DrawCopy();
189
                c->cd(5); px->DrawCopy();
184
         
190
         
185
            TH1D *py = hxy->ProjectionY("_py",0,-1);
191
            TH1D *py = hxy->ProjectionY("_py",0,-1);
186
                c->cd(3); py->DrawCopy();
192
                c->cd(6); py->DrawCopy();
187
               
193
               
188
                c->Modified();
194
                c->Modified();
189
                c->Update();
195
                c->Update();
190
                c->Print(rootname,"pdf");
196
                c->Print(rootname,"pdf");
191
               
197