File indexing completed on 2025-10-30 07:59:51
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0011 
0012 
0013 
0014 
0015 
0016 
0017 
0018 
0019 
0020 
0021 
0022 
0023 
0024 
0025 
0026 
0027 
0028 
0029 
0030 
0031 
0032 
0033 #include "HistoManager.hh"
0034 
0035 #include "G4UnitsTable.hh"
0036 
0037 
0038 
0039 HistoManager::HistoManager() : fFileName("exgps")
0040 {
0041   Book();
0042 }
0043 
0044 
0045 
0046 HistoManager::~HistoManager() {}
0047 
0048 
0049 
0050 void HistoManager::Book()
0051 {
0052   
0053   
0054   
0055   
0056   G4AnalysisManager* analysis = G4AnalysisManager::Instance();
0057 
0058   analysis->SetDefaultFileType("root");
0059   analysis->SetNtupleMerging(true);
0060   analysis->SetFileName(fFileName);
0061   analysis->SetVerboseLevel(1);
0062   analysis->SetActivation(true);  
0063 
0064   
0065   G4int nbins = 100;
0066   G4double vmin = 0.;
0067   G4double vmax = 100.;
0068 
0069   
0070   
0071   
0072   analysis->SetHistoDirectoryName("histo");
0073   analysis->SetFirstHistoId(1);
0074 
0075   G4int id = analysis->CreateH1("h1.1", "kinetic energy", nbins, vmin, vmax);
0076   analysis->SetH1Activation(id, false);
0077 
0078   id = analysis->CreateH1("h1.2", "vertex dist dN/dv = f(r)", nbins, vmin, vmax);
0079   analysis->SetH1Activation(id, false);
0080 
0081   id = analysis->CreateH1("h1.3", "direction: cos(theta)", nbins, vmin, vmax);
0082   analysis->SetH1Activation(id, false);
0083 
0084   id = analysis->CreateH1("h1.4", "direction: phi", nbins, vmin, vmax);
0085   analysis->SetH1Activation(id, false);
0086 
0087   
0088   
0089   id = analysis->CreateH2("h2.1", "vertex: XY", nbins, vmin, vmax, nbins, vmin, vmax);
0090   analysis->SetH2Activation(id, false);
0091 
0092   id = analysis->CreateH2("h2.2", "vertex: YZ", nbins, vmin, vmax, nbins, vmin, vmax);
0093   analysis->SetH2Activation(id, false);
0094 
0095   id = analysis->CreateH2("h2.3", "vertex: ZX", nbins, vmin, vmax, nbins, vmin, vmax);
0096   analysis->SetH2Activation(id, false);
0097 
0098   id =
0099     analysis->CreateH2("h2.4", "direction: phi-cos(theta)", nbins, vmin, vmax, nbins, vmin, vmax);
0100   analysis->SetH2Activation(id, false);
0101 
0102   id = analysis->CreateH2("h2.5", "direction: phi-theta", nbins, vmin, vmax, nbins, vmin, vmax);
0103   analysis->SetH2Activation(id, false);
0104 
0105   
0106   
0107   analysis->SetNtupleDirectoryName("ntuple");
0108   analysis->SetFirstNtupleId(1);
0109   analysis->CreateNtuple("101", "Primary Particle Tuple");
0110   analysis->CreateNtupleIColumn("particleID");  
0111   analysis->CreateNtupleDColumn("Ekin");  
0112   analysis->CreateNtupleDColumn("posX");  
0113   analysis->CreateNtupleDColumn("posY");  
0114   analysis->CreateNtupleDColumn("posZ");  
0115   analysis->CreateNtupleDColumn("dirTheta");  
0116   analysis->CreateNtupleDColumn("dirPhi");  
0117   analysis->CreateNtupleDColumn("weight");  
0118   analysis->FinishNtuple();
0119 
0120   analysis->SetNtupleActivation(false);
0121 }
0122 
0123