Loading...
Searching...
No Matches
WLSRunAction.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27/// \file optical/wls/src/WLSRunAction.cc
28/// \brief Implementation of the WLSRunAction class
29//
30//
31
32#include "WLSRunAction.hh"
33
35#include "WLSRun.hh"
36#include "WLSSteppingAction.hh"
37
38#include "G4AnalysisManager.hh"
39#include "G4Run.hh"
40#include "G4RunManager.hh"
41#include "Randomize.hh"
42
43//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
44
46{
47 auto analysisManager = G4AnalysisManager::Instance();
48
49 analysisManager->SetDefaultFileType("root");
50 analysisManager->SetVerboseLevel(1);
51 G4cout << "Using " << analysisManager->GetType() << G4endl;
52
53 analysisManager->CreateH1("Energy", "Energy of optical photon", 100,
54 2.*CLHEP::eV, 3.2*CLHEP::eV);
55 analysisManager->CreateH1("Time", "Arrival time", 100, 0., 100.*CLHEP::ns);
56 analysisManager->CreateH1("Number of photons", "Number of photons", 100, 0., 100.);
57}
58
59//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
60
62{
63 fRun = new WLSRun();
64 return fRun;
65}
66
67//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
68
70{
71 G4AnalysisManager::Instance()->OpenFile("wls");
72}
73
74//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
75
77{
78 auto analysisManager = G4AnalysisManager::Instance();
79 if (analysisManager->GetH1(0)) {
80 G4cout << G4endl << " ----> print histograms statistics ";
81 if(isMaster)
82 {
83 G4cout << "for the entire run " << G4endl << G4endl;
84 }
85 else {
86 G4cout << "for the local thread " << G4endl << G4endl;
87 }
88
89 G4cout << " Mean number of photons detected/event: "
90 << analysisManager->GetH1(2)->mean()
91 << " rms = "
92 << analysisManager->GetH1(2)->rms() << G4endl;
93 }
94
95 analysisManager->Write();
96 analysisManager->CloseFile();
97
98 if(isMaster)
99 fRun->EndOfRun();
100}
Definition of the WLSDetectorConstruction class.
Definition of the WLSRunAction class.
Definition of the WLSRun class.
Definition of the WLSSteppingAction class.
WLSRun * fRun
G4Run * GenerateRun() override
void BeginOfRunAction(const G4Run *) override
void EndOfRunAction(const G4Run *) override
void EndOfRun()
Definition WLSRun.cc:70

Applications | User Support | Publications | Collaboration