Rev 35 | Rev 38 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 35 | Rev 36 | ||
|---|---|---|---|
| Line 14... | Line 14... | ||
| 14 | 14 | ||
| 15 | #include "include/RTUtil.h" |
15 | #include "include/RTUtil.h" |
| 16 | 16 | ||
| 17 | double getNoise(TH2F*, int, int); |
17 | double getNoise(TH2F*, int, int); |
| 18 | 18 | ||
| 19 | int |
19 | int biasScan(char filename[256] = "test", char plopt[256]="th", int chXstart=0, int chXend=7, int chYstart=0, int chYend=7, bool debug = false) |
| 20 | { |
20 | { |
| 21 | const int c_nChannels = 64; |
21 | const int c_nChannels = 64; |
| 22 | const double c_xOffset = 1; // mm |
22 | const double c_xOffset = 1; // mm |
| 23 | const double c_yOffset = 0.7; |
23 | const double c_yOffset = 0.7; |
| 24 | 24 | ||
| Line 44... | Line 44... | ||
| 44 | if(rootfile==NULL) { |
44 | if(rootfile==NULL) { |
| 45 | printf("Cannot open root file %s!!!\n",fnameroot); |
45 | printf("Cannot open root file %s!!!\n",fnameroot); |
| 46 | return(0); |
46 | return(0); |
| 47 | } |
47 | } |
| 48 | 48 | ||
| 49 | if (strstr(plopt, "th") != NULL) { |
- | |
| 50 | TCanvas* canvas1 = new TCanvas("canvas1","",800,800); |
- | |
| 51 | canvas1->cd(); |
- | |
| 52 | //gPad->SetLogz(); |
- | |
| 53 | //canvas1->SetLogz(); |
- | |
| 54 | TH2F* h_threshold = (TH2F*) rootfile->Get("h_threshold"); |
- | |
| 55 | h_threshold->SetTitleOffset(1.5,"y"); |
- | |
| 56 | //h_threshold->GetZaxis()->SetRangeUser(0,1000); |
- | |
| 57 | h_threshold->SetContour(20); |
- | |
| 58 | - | ||
| 59 | h_threshold->Draw("colz"); |
- | |
| 60 | - | ||
| 61 | TCanvas* canvas2 = new TCanvas("canvas2","",1600,800); |
- | |
| 62 | canvas2->Divide(2); |
- | |
| 63 | TH1D* h_projection1 = h_threshold->ProjectionY("Ch 37",38,38); |
- | |
| 64 | canvas2->cd(1); |
- | |
| 65 | //h_projection1->GetYaxis()->SetRangeUser(0,1000); |
- | |
| 66 | //gPad->SetLogy(); |
- | |
| 67 | h_projection1->Draw(); |
- | |
| 68 | - | ||
| 69 | TH1D* h_projection2 = h_threshold->ProjectionY("Ch 38",39,39); |
- | |
| 70 | canvas2->cd(2); |
- | |
| 71 | //gPad->SetLogy(); |
- | |
| 72 | h_projection2->Draw(); |
- | |
| 73 | } |
- | |
| 74 | - | ||
| 75 | if(strstr(plopt, "tdc") != NULL) { |
49 | if(strstr(plopt, "tdc") != NULL) { |
| 76 | TCanvas *canvas21 = new TCanvas("canvas21","canvas21",1600,800); |
50 | TCanvas *canvas21 = new TCanvas("canvas21","canvas21",1600,800); |
| 77 | TH3F* h0 = (TH3F*) rootfile->Get("h_correctedTDC"); |
51 | TH3F* h0 = (TH3F*) rootfile->Get("h_correctedTDC"); |
| 78 | Int_t binsX = h0->GetXaxis()->GetNbins(); |
52 | Int_t binsX = h0->GetXaxis()->GetNbins(); |
| 79 | Int_t minX = h0->GetXaxis()->GetFirst(); |
53 | Int_t minX = h0->GetXaxis()->GetFirst(); |
| Line 114... | Line 88... | ||
| 114 | 88 | ||
| 115 | TH2D* h_timeWalk = (TH2D*) h0->Project3D("zy"); |
89 | TH2D* h_timeWalk = (TH2D*) h0->Project3D("zy"); |
| 116 | canvas21->cd(2); |
90 | canvas21->cd(2); |
| 117 | h_timeWalk->SetTitle(";Threshold [V]; t [ns]"); |
91 | h_timeWalk->SetTitle(";Threshold [V]; t [ns]"); |
| 118 | h_timeWalk->Draw("colz"); |
92 | h_timeWalk->Draw("colz"); |
| - | 93 | } |
|
| - | 94 | ||
| - | 95 | if (strstr(plopt, "bias") != NULL) { |
|
| - | 96 | TCanvas* canvas01 = new TCanvas("canvas01","",800, 800); |
|
| - | 97 | canvas01->cd(); |
|
| - | 98 | TH2F* h_bias = (TH2F*) rootfile->Get("h_bias"); |
|
| - | 99 | h_bias->Draw("colz"); |
|
| - | 100 | } |
|
| - | 101 | ||
| - | 102 | if (strstr(plopt, "th") != NULL) { |
|
| - | 103 | TCanvas* canvas1 = new TCanvas("canvas1","",800,800); |
|
| - | 104 | canvas1->cd(); |
|
| - | 105 | //gPad->SetLogz(); |
|
| - | 106 | //canvas1->SetLogz(); |
|
| - | 107 | TH2F* h_threshold = (TH2F*) rootfile->Get("h_threshold"); |
|
| - | 108 | h_threshold->SetTitleOffset(1.5,"y"); |
|
| - | 109 | //h_threshold->GetZaxis()->SetRangeUser(0,1000); |
|
| - | 110 | h_threshold->SetContour(20); |
|
| - | 111 | ||
| - | 112 | h_threshold->Draw("colz"); |
|
| - | 113 | ||
| - | 114 | TCanvas* canvas2 = new TCanvas("canvas2","",1600,800); |
|
| - | 115 | canvas2->Divide(2); |
|
| - | 116 | TH1D* h_projection1 = h_threshold->ProjectionY("Ch 37",38,38); |
|
| - | 117 | canvas2->cd(1); |
|
| - | 118 | //h_projection1->GetYaxis()->SetRangeUser(0,1000); |
|
| - | 119 | //gPad->SetLogy(); |
|
| - | 120 | h_projection1->Draw(); |
|
| - | 121 | ||
| - | 122 | TH1D* h_projection2 = h_threshold->ProjectionY("Ch 38",39,39); |
|
| - | 123 | canvas2->cd(2); |
|
| - | 124 | //gPad->SetLogy(); |
|
| - | 125 | h_projection2->Draw(); |
|
| 119 | } |
126 | } |
| 120 | 127 | ||
| 121 | if(strstr(plopt,"16") != NULL) |
128 | if(strstr(plopt,"16") != NULL) |
| 122 | { |
129 | { |
| 123 | TH2F* h_threshold = (TH2F*) rootfile->Get(" |
130 | TH2F* h_threshold = (TH2F*) rootfile->Get("h_bias"); |
| 124 | TCanvas* canvas = new TCanvas("canvas","",1600,1600); |
131 | TCanvas* canvas = new TCanvas("canvas","",1600,1600); |
| 125 | canvas->cd(); |
132 | canvas->cd(); |
| 126 | TVirtualPad *main = new TPad("main","main",0,0,1,1,10,1); |
133 | TVirtualPad *main = new TPad("main","main",0,0,1,1,10,1); |
| 127 | main->Draw(); |
134 | main->Draw(); |
| 128 | main->Divide(4,4); |
135 | main->Divide(4,4); |
| Line 134... | Line 141... | ||
| 134 | printf(" %d ", canvasPosition); |
141 | printf(" %d ", canvasPosition); |
| 135 | main->cd(canvasPosition); |
142 | main->cd(canvasPosition); |
| 136 | char name[128]; |
143 | char name[128]; |
| 137 | sprintf(name,"Channel %d",channel); |
144 | sprintf(name,"Channel %d",channel); |
| 138 | h_projection->SetTitle(name); |
145 | h_projection->SetTitle(name); |
| 139 | h_projection->DrawCopy(); |
146 | h_projection->DrawCopy("ex0"); |
| 140 | } |
147 | } |
| 141 | } |
148 | } |
| 142 | printf("\n"); |
149 | printf("\n"); |
| - | 150 | } |
|
| - | 151 | ||
| - | 152 | if(strstr(plopt, "1ch") != NULL) |
|
| - | 153 | { |
|
| - | 154 | TH2F* h_bias = (TH2F*) rootfile->Get("h_bias"); |
|
| - | 155 | TCanvas* canvas = new TCanvas("canvas","",1600,1600); |
|
| - | 156 | canvas->cd(); |
|
| - | 157 | int channel = map[chXstart][chXend]; |
|
| - | 158 | TH1D* h_projection = h_bias->ProjectionY("",channel+1,channel+1); |
|
| - | 159 | char name[128]; |
|
| - | 160 | sprintf(name,"Channel %d",channel); |
|
| - | 161 | h_projection->SetTitle(name); |
|
| - | 162 | h_projection->DrawCopy("ex0"); |
|
| 143 | } |
163 | } |
| 144 | 164 | ||
| 145 | if( strstr(plopt, "all") != NULL ) { |
165 | if( strstr(plopt, "all") != NULL ) { |
| 146 | TCanvas *canvas2 = new TCanvas("canvas2","Hits x;;",2000,2000); |
166 | TCanvas *canvas2 = new TCanvas("canvas2","Hits x;;",2000,2000); |
| 147 | TCanvas *canvas3 = new TCanvas("canvas3","Hits y;;",2000,2000); |
167 | TCanvas *canvas3 = new TCanvas("canvas3","Hits y;;",2000,2000); |