ROOT logo
//____________________________________________________________________
//
// Script to compare the output of GEANT 3.21 to FLUKA 2. 
//
/** @ingroup simple_script
 */
void
Compare() 
{
  TFile* fluka_file = TFile::Open("fluka/FMD.Hits.root", "READ");
  TFile* geant_file = TFile::Open("geant321/FMD.Hits.root", "READ");
  if (!fluka_file || !geant_file) {
    std::cerr << "Failed to open one or more of the input files" 
	      << std::endl;
    return;
  }
  

  fluka_file->cd();
  gDirectory->cd("Event0");
  TTree* fluka_tree = static_cast<TTree*>(gDirectory->Get("TreeH"));

  geant_file->cd();
  gDirectory->cd("Event0");
  TTree* geant_tree = static_cast<TTree*>(gDirectory->Get("TreeH"));

  if (!fluka_tree || !geant_tree) {
    std::cerr << "Failed to get one or more of the trees" 
	      << std::endl;
    return;
  }
  
  gStyle->SetOptStat(0);
  gStyle->SetOptTitle(0);
  gStyle->SetLabelFont(132, "XY");
  gStyle->SetTitleFont(132, "XY");
  gStyle->SetTextFont(132);
  gStyle->SetNdivisions(10, "XY");
  
  TCanvas* c = new TCanvas("c", "c", 600, 600);
  c->SetBorderMode(0);
  c->SetBorderSize(0);
  c->SetFillColor(0);
  c->SetTopMargin(.05);
  c->SetRightMargin(.05);
  
  TH1* fluka_dist = new TH1F("fluka_dist", "FLUKA Energy deposition", 
			     100, 0, 1);
  fluka_dist->SetLineColor(2);
  fluka_dist->SetFillColor(2);
  fluka_dist->SetFillStyle(3001);
  fluka_dist->GetXaxis()->SetTitle("Energy deposited");
  fluka_dist->GetYaxis()->SetTitle("Frequency");
  fluka_tree->Draw("FMD.fEdep>>fluka_dist");

  TH1* geant_dist = new TH1F("geant_dist", "GEANT Energy deposition", 
			     100, 0, 1);
  geant_dist->SetLineColor(3);
  geant_dist->SetFillColor(3);
  geant_dist->SetFillStyle(3002);
  geant_tree->Draw("FMD.fEdep>>geant_dist", "", "SAME");
  
  TLegend* l = new TLegend(.3, .8, .95, .95);
  l->SetFillColor(0);
  l->SetBorderSize(1);
  l->SetTextFont(132);
  l->AddEntry(fluka_dist, Form("%s - %d counts", 
			       fluka_dist->GetTitle(), 
			       Int_t(fluka_dist->Integral())), "LF");
  l->AddEntry(geant_dist, Form("%s - %d counts", 
			       geant_dist->GetTitle(), 
			       Int_t(geant_dist->Integral())), "LF");
  l->Draw();
  
  c->Modified();
  c->cd();
  c->Print("fluka_vs_geant321.C");
}

//____________________________________________________________________
//
// EOF
//
 Compare.C:1
 Compare.C:2
 Compare.C:3
 Compare.C:4
 Compare.C:5
 Compare.C:6
 Compare.C:7
 Compare.C:8
 Compare.C:9
 Compare.C:10
 Compare.C:11
 Compare.C:12
 Compare.C:13
 Compare.C:14
 Compare.C:15
 Compare.C:16
 Compare.C:17
 Compare.C:18
 Compare.C:19
 Compare.C:20
 Compare.C:21
 Compare.C:22
 Compare.C:23
 Compare.C:24
 Compare.C:25
 Compare.C:26
 Compare.C:27
 Compare.C:28
 Compare.C:29
 Compare.C:30
 Compare.C:31
 Compare.C:32
 Compare.C:33
 Compare.C:34
 Compare.C:35
 Compare.C:36
 Compare.C:37
 Compare.C:38
 Compare.C:39
 Compare.C:40
 Compare.C:41
 Compare.C:42
 Compare.C:43
 Compare.C:44
 Compare.C:45
 Compare.C:46
 Compare.C:47
 Compare.C:48
 Compare.C:49
 Compare.C:50
 Compare.C:51
 Compare.C:52
 Compare.C:53
 Compare.C:54
 Compare.C:55
 Compare.C:56
 Compare.C:57
 Compare.C:58
 Compare.C:59
 Compare.C:60
 Compare.C:61
 Compare.C:62
 Compare.C:63
 Compare.C:64
 Compare.C:65
 Compare.C:66
 Compare.C:67
 Compare.C:68
 Compare.C:69
 Compare.C:70
 Compare.C:71
 Compare.C:72
 Compare.C:73
 Compare.C:74
 Compare.C:75
 Compare.C:76
 Compare.C:77
 Compare.C:78
 Compare.C:79
 Compare.C:80
 Compare.C:81
 Compare.C:82
 Compare.C:83
 Compare.C:84