{ // start program Text_t label[40]; sprintf(label,"crystal bar energy distribution"); Float_t sum[10]={0.}; Axis_t ax,ay; TH2F *h2; layer1 = new TH2F("layer1",label,20,0,20,2,0,2); layer2 = new TH2F("layer2",label,20,0,20,2,0,2); layer3 = new TH2F("layer3",label,20,0,20,2,0,2); layer4 = new TH2F("layer4",label,20,0,20,2,0,2); layer5 = new TH2F("layer5",label,20,0,20,2,0,2); layer6 = new TH2F("layer6",label,20,0,20,2,0,2); layer7 = new TH2F("layer7",label,20,0,20,2,0,2); layer8 = new TH2F("layer8",label,20,0,20,2,0,2); layer9 = new TH2F("layer9",label,20,0,20,2,0,2); layer10 = new TH2F("layer10",label,20,0,20,2,0,2); Sum = new TH1F("Sum","Sum per layer",10,0,10); for (int i = 0; i<40 ; i++){ ay = (int)(i/20.0); ax = (i<20) ? i : i-20 ; layer1 -> Fill(ax,ay,energy[0][i]);sum[0]+=energy[0][i]; layer2 -> Fill(ax,ay,energy[1][i]);sum[1]+=energy[1][i]; layer3 -> Fill(ax,ay,energy[2][i]);sum[2]+=energy[2][i]; layer4 -> Fill(ax,ay,energy[3][i]);sum[3]+=energy[3][i]; layer5 -> Fill(ax,ay,energy[4][i]);sum[4]+=energy[4][i]; layer6 -> Fill(ax,ay,energy[5][i]);sum[5]+=energy[5][i]; layer7 -> Fill(ax,ay,energy[6][i]);sum[6]+=energy[6][i]; layer8 -> Fill(ax,ay,energy[7][i]);sum[7]+=energy[7][i]; layer9 -> Fill(ax,ay,energy[8][i]);sum[8]+=energy[8][i]; layer10 -> Fill(ax,ay,energy[9][i]);sum[9]+=energy[9][i]; } for(int i= 0; i<10; i++){ Sum ->Fill(i,sum[i]); } Sum->SetXTitle("layer number"); Sum->SetYTitle("Each Layer Energy Sum(GeV)"); TCanvas *mode1 = new TCanvas("mode1", "Energy distribution Example",436,84,679,807); mode1->Range(0,0,1,1); // ------------>Primitives in pad: pad1 TPad *pad1 = new TPad("pad1", "Layer1",0.,0.5,0.5,1.); pad1->Draw(); pad1->cd(); pad1->Range(-2.5,-0.25,22.5,2.25); layer1->Draw("color"); pad1->Modified(); mode1->cd(); }//macro ********************************************************************* Hi, The above is part of my codes for 2D histogram with color option. By layer1->Draw("color"), a box is drawn for each cell with color scale (50 different color range) varying with contents. Actually I don't need 50 colors. Is there any way I can assign colors by contents? For example, 0.0001<= content < 0.001 dark blue 0.001<= < 0.01 light blue 0.01 <= < 0.1 light green 0.1 <= < 1. dark green 1 <= < 10. yellow 10 <= < 100. red 100. <= < 1000. purple --- Thanks, Jayoung Wu
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:26:22 MET