Geant4 Cross Reference |
1 // Draw Longitudinal Shower Profile 1 // Draw Longitudinal Shower Profile 2 2 3 #include "TCanvas.h" << 4 #include "TFile.h" << 5 #include "TH1D.h" 3 #include "TH1D.h" >> 4 #include "TFile.h" 6 #include "THStack.h" 5 #include "THStack.h" 7 #include "TLegend.h" << 6 #include "TCanvas.h" 8 #include "TString.h" 7 #include "TString.h" >> 8 #include "TLegend.h" >> 9 9 10 10 TCanvas* cmpL() << 11 TCanvas *cmpL() { 11 { << 12 12 // TString dataDir("/net/llrdata1.in2p3.fr/d << 13 //TString dataDir("/net/llrdata1.in2p3.fr/data/DATA/data.harpo/BH5D/"); 13 TString dataDir("./"); 14 TString dataDir("./"); 14 15 15 TString dataFile[2]; 16 TString dataFile[2]; 16 dataFile[0] = "gflash00.root"; << 17 dataFile[0] = "gflash00.root"; 17 dataFile[1] = "gflash01.root"; << 18 dataFile[1] = "gflash01.root"; >> 19 18 20 19 TFile* f[2]; << 21 TFile *f[2]; 20 TProfile* p[2]; << 22 TProfile *p[2]; 21 // UInt_t col[] = { kRed, kBlue, kGreen, kV 23 // UInt_t col[] = { kRed, kBlue, kGreen, kViolet }; 22 UInt_t col[] = {kRed, kGreen, kBlue, kViolet << 24 UInt_t col[] = { kRed, kGreen, kBlue, kViolet }; 23 // UInt_t mark[] = { 20, 32, 21, 22}; 25 // UInt_t mark[] = { 20, 32, 21, 22}; 24 UInt_t mark[] = {20, 21, 32, 22}; << 26 UInt_t mark[] = { 20, 21, 32, 22}; 25 // << 27 // 26 THStack* hs = new THStack("hs", ""); << 28 THStack *hs = new THStack("hs",""); 27 << 29 28 for (UInt_t i = 0; i < 2; i++) { << 30 for (UInt_t i = 0; i < 2; i++) { 29 TString tmp = dataDir + dataFile[i]; << 31 TString tmp = dataDir + dataFile[i]; 30 f[i] = TFile::Open(tmp); << 32 f[i] = TFile::Open(tmp); 31 if (!f[i]) return 0; << 33 if (!f[i]) return 0; 32 p[i] = (TProfile*)(f[i])->Get("p0"); << 34 p[i] = (TProfile *) (f[i])->Get("p0"); 33 // ShiftUp(p[i],0.0); << 35 //ShiftUp(p[i],0.0); 34 // histogram << 36 // histogram 35 p[i]->SetFillColor(col[i]); << 37 p[i]->SetFillColor(col[i]); 36 p[i]->SetLineStyle(i + 2); << 38 p[i]->SetLineStyle(i+2); 37 p[i]->SetLineColor(col[i]); << 39 p[i]->SetLineColor(col[i]); 38 p[i]->SetLineWidth(2); << 40 p[i]->SetLineWidth(2); 39 p[i]->SetMarkerStyle(mark[i]); << 41 p[i]->SetMarkerStyle(mark[i]); 40 p[i]->SetMarkerColor(col[i]); << 42 p[i]->SetMarkerColor(col[i]); 41 p[i]->SetMarkerSize(1.5); << 43 p[i]->SetMarkerSize(1.5); 42 hs->Add(p[i]); << 44 hs->Add(p[i]); 43 } << 45 } 44 TCanvas* cst = new TCanvas("cst", "stacked h << 46 TCanvas *cst = new TCanvas("cst","stacked hists",10,10,800,700); 45 // gPad->SetGrid(); << 47 //gPad->SetGrid(); 46 hs->Draw("p,nostack"); << 48 hs->Draw("p,nostack"); 47 hs->SetTitle("Longitudinal Profile"); << 49 hs->SetTitle("Longitudinal Profile"); 48 hs->GetXaxis()->SetTitle("Depth (RadLen)"); << 50 hs->GetXaxis()->SetTitle("Depth (RadLen)"); 49 hs->GetYaxis()->SetTitle("E/E_{tot} (%) / Ra << 51 hs->GetYaxis()->SetTitle("E/E_{tot} (%/RadLen)"); 50 << 52 51 cst->RedrawAxis(); << 53 cst->RedrawAxis(); 52 cst->Update(); << 54 cst->Update(); 53 << 55 54 TLegend* legend = new TLegend(0.79, 0.84, 0. << 56 TLegend* legend = new TLegend(0.79,0.84,0.94,0.94); 55 legend->AddEntry(p[0], "full ", "p"); << 57 legend->AddEntry(p[0],"full ","p"); 56 legend->AddEntry(p[1], "gflash", "p"); << 58 legend->AddEntry(p[1],"gflash","p"); 57 legend->Draw(); << 59 legend->Draw(); 58 cst->Update(); << 60 cst->Update(); 59 << 61 60 // img->FromPad(c, 10, 10, 300, 200); << 62 //img->FromPad(c, 10, 10, 300, 200); 61 << 63 62 // TImage *img = TImage::Create(); << 64 // TImage *img = TImage::Create(); 63 << 65 64 // img->FromPad(cst); << 66 // img->FromPad(cst); 65 << 67 66 // img->WriteImage("hist0-640MeV-p.png"); << 68 // img->WriteImage("hist0-640MeV-p.png"); 67 << 69 68 // for (UInt_t i = 0; i < 4; i++) { << 70 // for (UInt_t i = 0; i < 4; i++) { 69 // f[i]->Close(); << 71 // f[i]->Close(); 70 // } << 72 // } 71 return cst; << 73 return cst; 72 } 74 } 73 75