// // ******************************************************************** // * License and Disclaimer * // * * // * The Geant4 software is copyright of the Copyright Holders of * // * the Geant4 Collaboration. It is provided under the terms and * // * conditions of the Geant4 Software License, included in the file * // * LICENSE and available at http://cern.ch/geant4/license . These * // * include a list of copyright holders. * // * * // * Neither the authors of this software system, nor their employing * // * institutes,nor the agencies providing financial support for this * // * work make any representation or warranty, express or implied, * // * regarding this software system or assume any liability for its * // * use. Please see the license in the file LICENSE and URL above * // * for the full disclaimer and the limitation of liability. * // * * // * This code implementation is the result of the scientific and * // * technical work of the GEANT4 collaboration. * // * By using, copying, modifying or distributing the software (or * // * any work based on the software) you agree to acknowledge its * // * use in resulting scientific publications, and indicate your * // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // /// \file HistoManager.cc /// \brief Implementation of the HistoManager class // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "HistoManager.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... HistoManager::HistoManager() : fFileName("Results") { Book(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... HistoManager::~HistoManager() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void HistoManager::Book() { G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); analysisManager->SetDefaultFileType("root"); analysisManager->SetFileName(fFileName); analysisManager->SetVerboseLevel(1); analysisManager->SetH1Activation(false); /* analysisManager->CreateH1("Eabs", "Edep spectrum in phantom", 10000, 0 * MeV, 10 * MeV); */ analysisManager->SetFirstNtupleId(1); analysisManager->CreateNtuple("CherenkovHits","CherenkovHits"); analysisManager->SetNtupleMerging(true); /* analysisManager->CreateNtupleIColumn("fEventID"); */ /* analysisManager->CreateNtupleIColumn("fTrackID"); */ analysisManager->CreateNtupleDColumn("fX_mm"); analysisManager->CreateNtupleDColumn("fY_mm"); analysisManager->CreateNtupleDColumn("fZ_mm"); analysisManager->CreateNtupleDColumn("Time_ns"); analysisManager->CreateNtupleDColumn("photonEnergy_MeV"); analysisManager->CreateNtupleDColumn("photonPx_MeVperc"); analysisManager->CreateNtupleDColumn("photonPy_MeVperc"); analysisManager->CreateNtupleDColumn("photonPz_MeVperc"); analysisManager->FinishNtuple(); analysisManager->CreateNtuple("NeutronCapture","NeutronCaptureHistogram"); analysisManager->CreateNtupleIColumn("RunID"); analysisManager->CreateNtupleIColumn("EventID"); analysisManager->CreateNtupleDColumn("CaptureTime_ns"); analysisManager->CreateNtupleDColumn("CaptureX_mm"); analysisManager->CreateNtupleDColumn("CaptureY_mm"); analysisManager->CreateNtupleDColumn("CaptureZ_mm"); analysisManager->CreateNtupleDColumn("Energy_MeV"); analysisManager->FinishNtuple(); analysisManager->SetNtupleActivation(0,true); //enable inactivation of histograms analysisManager->SetNtupleActivation(1,true); //enable inactivation of histograms } /* { */ /* // Create or get analysis manager */ /* // The choice of analysis technology is done via selection of a namespace */ /* // in HistoManager.hh */ /* G4AnalysisManager* analysisManager = G4AnalysisManager::Instance(); */ /* analysisManager->SetVerboseLevel(1); */ /* /1* analysisManager->SetDefaultFileType("root"); *1/ */ /* analysisManager->SetFileName(fFileName); */ /* //from Hadr07 */ /* // Create or get analysis manager */ /* // The choice of analysis technology is done via selection of a namespace */ /* // in HistoManager.hh */ /* // Define histograms start values */ /* /1* const G4int kMaxHisto = 1; *1/ */ /* /1* const G4String id[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", *1/ */ /* /1* "10","11","12","13","14","15","16","17","18","19", *1/ */ /* /1* "20","21","22"}; *1/ */ /* /1* const G4String id[] = { "0" }; *1/ */ /* /1* const G4String title[] = *1/ */ /* /1* { "dummy", //0 *1/ */ /* /1* "total Energy deposited in absorber 1", //1 *1/ */ /* /1* }; *1/ */ /* // Default values (to be reset via /analysis/h1/set command) */ /* /1* G4int nbins = 100; *1/ */ /* /1* G4double vmin = 0.; *1/ */ /* /1* G4double vmax = 100.; *1/ */ /* // Create all histograms as inactivated */ /* // as we have not yet set nbins, vmin, vmax */ /* /1* for (G4int k=0; kCreateH1(id[k], title[k], nbins, vmin, vmax); *1/ */ /* /1* analysisManager->SetH1Activation(ih, false); *1/ */ /* /1* } *1/ */ /* analysisManager->CreateNtuple("CherenkovHits","CherenkovHits"); */ /* /1* analysisManager->SetNtupleMerging(true); *1/ */ /* analysisManager->CreateNtupleIColumn(0,"fEventID"); */ /* analysisManager->CreateNtupleIColumn(0,"fTrackID"); */ /* analysisManager->CreateNtupleDColumn(0,"fX_mm"); */ /* analysisManager->CreateNtupleDColumn(0,"fY_mm"); */ /* analysisManager->CreateNtupleDColumn(0,"fZ_mm"); */ /* analysisManager->CreateNtupleDColumn(0,"Time_ns"); */ /* analysisManager->CreateNtupleDColumn(0,"photonEnergy_MeV"); */ /* analysisManager->CreateNtupleDColumn(0,"photonPx_MeVperc"); */ /* analysisManager->CreateNtupleDColumn(0,"photonPy_MeVperc"); */ /* analysisManager->CreateNtupleDColumn(0,"photonPz_MeVperc"); */ /* // let us check what created the */ /* /1* analysisManager->CreateNtupleSColumn("ParentName"); *1/ */ /* /1* /2* analysisManager->CreateNtupleIColumn("isParentTau"); *2/ *1/ */ /* /1* /2* analysisManager->CreateNtupleIColumn("isParentCharm"); *2/ *1/ */ /* /1* /2* analysisManager->CreateNtupleIColumn("isParentPiPlus"); *2/ *1/ */ /* /1* /2* analysisManager->CreateNtupleIColumn("isParentPiMinus"); *2/ *1/ */ /* /1* /2* analysisManager->CreateNtupleIColumn("isParentEPlus"); *2/ *1/ */ /* /1* /2* analysisManager->CreateNtupleIColumn("isParentEMinus"); *2/ *1/ */ /* /1* /2* analysisManager->CreateNtupleIColumn("isParentMuPlus"); *2/ *1/ */ /* /1* /2* analysisManager->CreateNtupleIColumn("isParentMuMinus"); *2/ *1/ */ /* /1* /2* analysisManager->CreateNtupleDColumn("Wavelength"); *2/ *1/ */ /* analysisManager->FinishNtuple(0); */ /* /1* analysisManager->SetNtupleFileName(0, fFileName); *1/ */ /* analysisManager->CreateNtuple("NeutronCapture","NeutronCaptureHistogram"); */ /* /1* analysisManager->SetNtupleMerging(true); *1/ */ /* analysisManager->CreateNtupleIColumn(1,"RunID"); */ /* analysisManager->CreateNtupleIColumn(1,"EventID"); */ /* analysisManager->CreateNtupleDColumn(1,"CaptureTime_ns"); */ /* analysisManager->CreateNtupleDColumn(1,"CaptureX_mm"); */ /* analysisManager->CreateNtupleDColumn(1,"CaptureY_mm"); */ /* analysisManager->CreateNtupleDColumn(1,"CaptureZ_mm"); */ /* analysisManager->CreateNtupleDColumn(1,"Energy_MeV"); */ /* analysisManager->FinishNtuple(1); */ /* /1* // we want to guarantee this n-tuple is turned on *1/ */ /* //analysisManager->SetNtupleActivation(2,true); */ /* } */ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......