Rev 1 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 1 | f9daq | 1 | /* |
| 2 | |||
| 3 | Skripta za kalibracijo visine fotovrhov |
||
| 4 | Vhod: histogrami ADC vs sum |
||
| 5 | |||
| 6 | Navodilo: |
||
| 7 | 1.klikni na GCUT toolbar |
||
| 8 | 2. poklikaj najvisji fotovrh v vsakem od histogramov . klikajh v vrstnem redu hoistogramov. |
||
| 9 | 3. zakljuci na zadnjem vrhu tako, da se enkrat kliknes na isto tocko |
||
| 10 | 4. ponovi vse za vse 4 fotopomnozevalke |
||
| 11 | |||
| 12 | Izhod: Datoteka z visinami fotovrhov po kanalih |
||
| 13 | |||
| 14 | .x fotovrh.cxx("fmfpet.root") |
||
| 15 | |||
| 16 | */ |
||
| 17 | |||
| 18 | int fotovrh(char *fname, float max=100){ |
||
| 19 | |||
| 20 | char cmd[256]; |
||
| 21 | TFile *f= new TFile(fname); |
||
| 22 | |||
| 23 | FILE *fp= fopen("fotovrh.dat","w"); |
||
| 24 | if (!fp) return 0; |
||
| 25 | for (int ipmt=0;ipmt<4;ipmt++){ |
||
| 26 | sprintf(cmd,"c%d",ipmt); |
||
| 27 | TCanvas *c= new TCanvas(cmd,cmd,1500,1000); |
||
| 28 | |||
| 29 | c->ToggleToolBar(); |
||
| 30 | c->Divide(4,4); |
||
| 31 | |||
| 32 | for (int ch=0;ch<16;ch++){ |
||
| 33 | c->cd(ch+1); |
||
| 34 | sprintf(cmd,"adcvssumch%d",ipmt*16+ch); |
||
| 35 | TH2 *h = (TH2 *) f->Get(cmd); |
||
| 36 | if (!h) { |
||
| 37 | cout << "Histogram not found " << cmd << endl; |
||
| 38 | continue; |
||
| 39 | } else { |
||
| 40 | if (max>0) h->SetMaximum(max); |
||
| 41 | h->Draw("colz"); |
||
| 42 | } |
||
| 43 | } |
||
| 44 | |||
| 45 | c->WaitPrimitive("CUTG"); |
||
| 46 | TCutG *mycutg = (TCutG*)gROOT->GetListOfSpecials()->FindObject("CUTG"); |
||
| 47 | if (mycutg) { |
||
| 48 | sprintf(cmd,"cutg%d",ipmt); |
||
| 49 | mycutg->SetName(cmd); |
||
| 50 | mycutg->Print(); |
||
| 51 | int n= mycutg->GetN(); |
||
| 52 | double x,y; |
||
| 53 | for (int k=0;k<n-1;k++){ |
||
| 54 | mycutg->GetPoint(k, x, y); |
||
| 55 | printf("%d %f\n",k+ipmt*16,x); |
||
| 56 | fprintf(fp,"%d %f\n",k+ipmt*16,x); |
||
| 57 | } |
||
| 58 | } |
||
| 59 | |||
| 60 | } |
||
| 61 | fclose(fp); |
||
| 62 | return 0; |
||
| 63 | } |