Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/medical/dna/neuron/plotDend.C

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 // -------------------------------------------------------------------
  2 // -------------------------------------------------------------------
  3 //
  4 // *********************************************************************
  5 // To execute this macro under ROOT, 
  6 // launch ROOT (usually type 'root' at your machine's prompt)
  7 // This macro needs Dend3DEdep.out file : 
  8 // *********************************************************************
  9 { 
 10 gROOT->Reset();
 11 gStyle->SetOptStat(0000);
 12 
 13 c1 = new TCanvas ("c1","",20,20,1200,600);
 14 c1->Divide(2,1); 
 15 
 16 Int_t ncols=0;
 17 Int_t nlines = 0;
 18 
 19 FILE * fp = fopen("Dend3DEdep.out","r");
 20 Float_t posX, posY, posZ ;
 21 Float_t distB, distA, EdepR, DoseR;
 22 Float_t distMaxA = -1e-9;
 23 Float_t distMaxB = -1e-9;
 24 Float_t edepMax = -1e-9;
 25 Float_t doseMax = -1e-9;
 26 Float_t edepMin = 1e9;
 27 Float_t doseMin = 1e9;
 28 
 29 h1 = new TProfile("Energy", "Energy deposits (keV) in dendritic compartments",1000,-1000,1000,0.001,1000);  
 30 h2 = new TProfile("Dose", "Dose deposits (Gy) in dendritic compartments",1000,-1000,1000,0.001,1000);  
 31 while (1) 
 32    {
 33       ncols = fscanf(fp," %f %f %f %f %f %f %f",&posX, &posY, &posZ, &distA, &distB, &EdepR, &DoseR);
 34       if (ncols < 0) break;
 35       if (distMaxA < distA ) distMaxA = distA ;
 36       if (distMaxB < distB ) distMaxB = distB ;
 37       if (edepMax < EdepR ) edepMax = EdepR ;
 38       if (doseMax < DoseR ) doseMax = DoseR ;
 39       if (edepMin > EdepR ) edepMin = EdepR ;
 40       if (doseMin > DoseR ) doseMin = DoseR ;
 41       // ....  
 42       h1->Fill(-distB, EdepR);  // Basal dendrite
 43       h1->Fill(distA, EdepR); // Apical dendrite
 44       h2->Fill(-distB, DoseR);
 45       h2->Fill(distA, DoseR);
 46       nlines++; 
 47    }
 48 fclose(fp);
 49 cout << " Max and Min Energy deposits (keV) ==  " << edepMax << " ; "<< edepMin<<endl;
 50 cout << " Max and Min Dose deposits (Gy) ==  " << doseMax << " ; "<< doseMin<<endl;
 51 cout << " Maximum Basal Distance (um) == " << distMaxB << " "<<endl;
 52 cout << " Maximum Apical Distance (um) == " << distMaxA << " "<<endl;
 53 
 54 c1->cd(1); 
 55 h1->Draw("P"); 
 56 //gPad->SetLogy();
 57 h1->SetMarkerSize(2);
 58 h1->SetMarkerColor(4);
 59 h1->SetMarkerStyle(27); 
 60 h1->SetFillStyle(3005);
 61 //h1->GetYaxis()->SetTitle("Energy deposits in basal and apical dendrite (keV)");
 62 h1->GetXaxis()->SetTitle("Distance from Soma (um)");
 63 h1->GetYaxis()->SetRangeUser(edepMin, edepMax+3.);
 64 if (distMaxB > 0.)
 65 {
 66     TLatex text(-distMaxB,edepMax-1.,"Basal");
 67     text.DrawClone();
 68 }
 69 if (distMaxA > 0.)
 70 {
 71     TLatex text(distMaxA/3.,edepMax-2.,"Apical");
 72     text.DrawClone();
 73 }
 74 h1->GetXaxis()->SetRangeUser(-distMaxB-10., distMaxA+10.);
 75 //h1->Fit("gaus");
 76 
 77 c1->cd(2);
 78 h2->Draw("P");  
 79 //gPad->SetLogy();
 80 h2->SetMarkerSize(2);
 81 h2->SetMarkerColor(kRed);
 82 h2->SetMarkerStyle(27); 
 83 h2->SetFillStyle(3005);
 84 //h2->GetYaxis()->SetTitle("Dose deposits in basal and apical dendrite (Gy)");
 85 h2->GetXaxis()->SetTitle("Distance from Soma (um)");
 86 h2->GetYaxis()->SetRangeUser(doseMin, doseMax+0.3);
 87 if (distMaxB > 0.)
 88 {
 89     TLatex text(-distMaxB,doseMax-0.1,"Basal");
 90     text.DrawClone();
 91 }
 92 if (distMaxA > 0.)
 93 {
 94     TLatex text(distMaxA/3.,doseMax-0.2,"Apical");
 95     text.DrawClone();
 96 }
 97 h2->GetXaxis()->SetRangeUser(-distMaxB-10., distMaxA+10.);
 98 
 99 }
100 
101