Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-23 09:22:40

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 /// \file HistoManager.cc
0027 /// \brief Implementation of the HistoManager class
0028 //
0029 //
0030 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0031 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0032 
0033 #include "HistoManager.hh"
0034 
0035 #include "G4UnitsTable.hh"
0036 
0037 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0038 
0039 HistoManager::HistoManager()
0040 {
0041   Book();
0042 }
0043 
0044 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
0045 
0046 void HistoManager::Book()
0047 {
0048   // Create or get analysis manager
0049   G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
0050   analysisManager->SetDefaultFileType("root");
0051   analysisManager->SetFileName(fFileName);
0052   analysisManager->SetVerboseLevel(1);
0053   analysisManager->SetActivation(true);  // enable inactivation of histograms
0054 
0055   // Define histograms start values
0056   /// const G4int kMaxHisto1 = 24, kMaxHisto2 = 44;
0057   const G4String id[] = {"0",  "1",  "2",  "3",  "4",  "5",  "6",  "7",  "8",  "9",  "10",
0058                          "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21",
0059                          "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32",
0060                          "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43"};
0061 
0062   const G4String title[] = {
0063     "dummy",  // 0
0064     "total energy deposit",  // 1
0065     "Edep (MeV/mm) along beam directiom",  // 2
0066     "total kinetic energy emerging",  // 3
0067     "energy spectrum of emerging gamma",  // 4
0068     "energy spectrum of emerging e+-",  // 5
0069     "energy spectrum of emerging neutrons",  // 6
0070     "energy spectrum of emerging protons",  // 7
0071     "energy spectrum of emerging deuterons",  // 8
0072     "energy spectrum of emerging alphas",  // 9
0073     "energy spectrum of all others emerging ions",  // 10
0074     "energy spectrum of all others emerging baryons",  // 11
0075     "energy spectrum of all others emerging mesons",  // 12
0076     "energy spectrum of all others emerging leptons (neutrinos)",  // 13
0077     "dN/dt (becquerel) of emerging gamma",  // 14
0078     "dN/dt (becquerel) of emerging e+- ",  // 15
0079     "dN/dt (becquerel) of emerging neutrons",  // 16
0080     "dN/dt (becquerel) of emerging protons",  // 17
0081     "dN/dt (becquerel) of emerging deuterons",  // 18
0082     "dN/dt (becquerel) of emerging alphas",  // 19
0083     "dN/dt (becquerel) of all others emerging ions",  // 20
0084     "dN/dt (becquerel) of all others emerging baryons",  // 21
0085     "dN/dt (becquerel) of all others emerging mesons",  // 22
0086     "dN/dt (becquerel) of all others emerging leptons (neutrinos)"  // 23
0087   };
0088 
0089   // Default values (to be reset via /analysis/h1/set command)
0090   G4int nbins = 100;
0091   G4double vmin = 0.;
0092   G4double vmax = 100.;
0093 
0094   // Create all histograms as inactivated
0095   // as we have not yet set nbins, vmin, vmax
0096   for (G4int k = 0; k < kMaxHisto1; k++) {
0097     G4int ih = analysisManager->CreateH1(id[k], title[k], nbins, vmin, vmax);
0098     analysisManager->SetH1Activation(ih, false);
0099   }
0100 
0101   // population of species
0102   for (G4int k = kMaxHisto1; k < kMaxHisto2; k++) {
0103     G4int ih = analysisManager->CreateH1(id[k], " population", nbins, vmin, vmax);
0104     analysisManager->SetH1Activation(ih, false);
0105   }
0106 }
0107 
0108 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......