Import Geant4 10.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 14:11:04 +02:00
parent c9b32a6c0a
commit d4af681f38
4886 changed files with 420149 additions and 1023309 deletions
@@ -103,6 +103,12 @@ class ExG4HbookAnalysisManager : public G4VAnalysisManager
G4bool SetH2HbookIdOffset(G4int offset);
G4int GetH2HbookIdOffset() const;
// Set the offset of HBOOK ID for P1
// ( default value = firstHistoID + 200 if firstHistoID > 0;
// otherwise = 201 )
G4bool SetP1HbookIdOffset(G4int offset);
G4int GetP1HbookIdOffset() const;
// Set the offset of NTUPLE ID for ntuples
// ( default value = firstNtupleID if firstNtupleID > 0; otherwise = 1)
G4bool SetNtupleHbookIdOffset(G4int offset);
@@ -114,6 +120,8 @@ class ExG4HbookAnalysisManager : public G4VAnalysisManager
G4bool onlyIfActive = true) const;
tools::hbook::h2* GetH2(G4int id, G4bool warn = true,
G4bool onlyIfActive = true) const;
tools::hbook::p1* GetP1(G4int id, G4bool warn = true,
G4bool onlyIfActive = true) const;
tools::hbook::wntuple* GetNtuple() const;
tools::hbook::wntuple* GetNtuple(G4int ntupleId) const;
@@ -128,6 +136,11 @@ class ExG4HbookAnalysisManager : public G4VAnalysisManager
std::vector<tools::hbook::h2*>::const_iterator BeginConstH2() const;
std::vector<tools::hbook::h2*>::const_iterator EndConstH2() const;
std::vector<tools::hbook::p1*>::iterator BeginP1();
std::vector<tools::hbook::p1*>::iterator EndP1();
std::vector<tools::hbook::p1*>::const_iterator BeginConstP1() const;
std::vector<tools::hbook::p1*>::const_iterator EndConstP1() const;
std::vector<tools::hbook::wntuple*>::iterator BeginNtuple();
std::vector<tools::hbook::wntuple*>::iterator EndNtuple();
std::vector<tools::hbook::wntuple*>::const_iterator BeginConstNtuple() const;
@@ -138,6 +151,9 @@ class ExG4HbookAnalysisManager : public G4VAnalysisManager
virtual G4bool OpenFileImpl(const G4String& fileName);
virtual G4bool WriteImpl();
virtual G4bool CloseFileImpl();
virtual G4bool PlotImpl();
virtual G4bool MergeImpl(tools::histo::hmpi* hmpi);
virtual G4bool IsOpenFileImpl() const;
private:
// static data members
@@ -154,7 +170,7 @@ class ExG4HbookAnalysisManager : public G4VAnalysisManager
ExG4HbookP1Manager* fP1Manager;
ExG4HbookP2DummyManager* fP2Manager;
ExG4HbookNtupleManager* fNtupleManager;
ExG4HbookFileManager* fFileManager;
std::shared_ptr<ExG4HbookFileManager> fFileManager;
};
#include "ExG4HbookAnalysisManager.icc"
@@ -31,7 +31,16 @@
#include "ExG4HbookH1Manager.hh"
#include "ExG4HbookH2Manager.hh"
#include "ExG4HbookP1Manager.hh"
#include "ExG4HbookNtupleManager.hh"
#include "ExG4HbookFileManager.hh"
//_____________________________________________________________________________
inline
G4bool ExG4HbookAnalysisManager::IsOpenFileImpl() const
{
return fFileManager->IsOpenFile();
}
//_____________________________________________________________________________
inline
@@ -61,6 +70,20 @@ G4int ExG4HbookAnalysisManager::GetH2HbookIdOffset() const
return fH2Manager->GetH2HbookIdOffset();
}
//_____________________________________________________________________________
inline
G4bool ExG4HbookAnalysisManager::SetP1HbookIdOffset(G4int offset)
{
return fP1Manager->SetP1HbookIdOffset(offset);
}
//_____________________________________________________________________________
inline
G4int ExG4HbookAnalysisManager::GetP1HbookIdOffset() const
{
return fP1Manager->GetP1HbookIdOffset();
}
//_____________________________________________________________________________
inline
G4bool ExG4HbookAnalysisManager::SetNtupleHbookIdOffset(G4int offset)
@@ -91,6 +114,14 @@ tools::hbook::h2* ExG4HbookAnalysisManager::GetH2(G4int id, G4bool warn,
return fH2Manager->GetH2(id, warn, onlyIfActive);
}
//_____________________________________________________________________________
inline
tools::hbook::p1* ExG4HbookAnalysisManager::GetP1(G4int id, G4bool warn,
G4bool onlyIfActive) const
{
return fP1Manager->GetP1(id, warn, onlyIfActive);
}
//_____________________________________________________________________________
inline
tools::hbook::wntuple* ExG4HbookAnalysisManager::GetNtuple() const
@@ -165,6 +196,36 @@ ExG4HbookAnalysisManager::EndConstH2() const
return fH2Manager->EndConstH2();
}
//_____________________________________________________________________________
inline
std::vector<tools::hbook::p1*>::iterator ExG4HbookAnalysisManager::BeginP1()
{
return fP1Manager->BeginP1();
}
//_____________________________________________________________________________
inline
std::vector<tools::hbook::p1*>::iterator ExG4HbookAnalysisManager::EndP1()
{
return fP1Manager->EndP1();
}
//_____________________________________________________________________________
inline
std::vector<tools::hbook::p1*>::const_iterator
ExG4HbookAnalysisManager::BeginConstP1() const
{
return fP1Manager->BeginConstP1();
}
//_____________________________________________________________________________
inline
std::vector<tools::hbook::p1*>::const_iterator
ExG4HbookAnalysisManager::EndConstP1() const
{
return fP1Manager->EndConstP1();
}
//_____________________________________________________________________________
inline
std::vector<tools::hbook::wntuple*>::iterator ExG4HbookAnalysisManager::BeginNtuple()
@@ -36,7 +36,8 @@
#define ExG4HbookH1Manager_h 1
#include "G4VH1Manager.hh"
#include "G4HnInformation.hh"
#include "G4THnManager.hh"
#include "G4HnManager.hh"
#include "ExG4HbookBaseHnManager.hh"
#include "globals.hh"
@@ -50,19 +51,25 @@ class ExG4HbookFileManager;
struct h1_booking {
h1_booking(G4int nbins, G4double xmin, G4double xmax)
: fTitle(""),
fXAxisTitle(""),
fYAxisTitle(""),
fNbins(nbins),
fXmin(xmin),
fXmax(xmax),
fEdges() {}
h1_booking(const std::vector<G4double>& edges)
: fTitle(""),
fXAxisTitle(""),
fYAxisTitle(""),
fNbins(0),
fXmin(0),
fXmax(0),
fEdges() {
for (G4int i=0; i<=G4int(edges.size()); ++i) fEdges.push_back(edges[i]);
for (G4int i=0; i<G4int(edges.size()); ++i) fEdges.push_back(edges[i]);
}
G4String fTitle;
G4String fXAxisTitle;
G4String fYAxisTitle;
G4int fNbins;
G4double fXmin;
G4double fXmax;
@@ -75,7 +82,8 @@ struct h1_booking {
/// It is provided separately from geant4/source/analysis in order
/// to avoid a need of linking Geant4 kernel libraries with cerblib.
class ExG4HbookH1Manager : public G4VH1Manager
class ExG4HbookH1Manager : public G4VH1Manager,
public G4THnManager<tools::hbook::h1>
{
friend class ExG4HbookAnalysisManager;
@@ -163,6 +171,9 @@ class ExG4HbookH1Manager : public G4VH1Manager
// Write data on ASCII file
virtual G4bool WriteOnAscii(std::ofstream& output);
// Access to Hn manager
virtual std::shared_ptr<G4HnManager> GetHnManager();
private:
// methods
//
@@ -182,9 +193,6 @@ class ExG4HbookH1Manager : public G4VH1Manager
const G4String& unitName, const G4String& fcnName,
G4BinScheme binScheme);
G4bool BeginSetH1(G4int id,
h1_booking* h1Booking,
G4HnInformation* info);
G4bool FinishSetH1(G4int id,
G4HnInformation* info,
const G4String& unitName, const G4String& fcnName,
@@ -218,18 +226,21 @@ inline G4int ExG4HbookH1Manager::GetH1HbookIdOffset() const {
}
inline std::vector<tools::hbook::h1*>::iterator ExG4HbookH1Manager::BeginH1()
{ return fH1Vector.begin(); }
{ return BeginT(); }
inline std::vector<tools::hbook::h1*>::iterator ExG4HbookH1Manager::EndH1()
{ return fH1Vector.end(); }
{ return EndT(); }
inline std::vector<tools::hbook::h1*>::const_iterator
ExG4HbookH1Manager::BeginConstH1() const
{ return fH1Vector.begin(); }
{ return BeginConstT(); }
inline std::vector<tools::hbook::h1*>::const_iterator
ExG4HbookH1Manager::EndConstH1() const
{ return fH1Vector.end(); }
{ return EndConstT(); }
inline std::shared_ptr<G4HnManager> ExG4HbookH1Manager::GetHnManager()
{ return std::shared_ptr<G4HnManager>(fHnManager); }
#endif
@@ -36,6 +36,8 @@
#define ExG4HbookH2Manager_h 1
#include "G4VH2Manager.hh"
#include "G4THnManager.hh"
#include "G4HnManager.hh"
#include "ExG4HbookBaseHnManager.hh"
#include "globals.hh"
@@ -50,6 +52,9 @@ struct h2_booking {
h2_booking(G4int nxbins, G4double xmin, G4double xmax,
G4int nybins, G4double ymin, G4double ymax)
: fTitle(""),
fXAxisTitle(""),
fYAxisTitle(""),
fZAxisTitle(""),
fNxbins(nxbins),
fXmin(xmin),
fXmax(xmax),
@@ -57,6 +62,9 @@ struct h2_booking {
fYmin(ymin),
fYmax(ymax) {}
G4String fTitle;
G4String fXAxisTitle;
G4String fYAxisTitle;
G4String fZAxisTitle;
G4int fNxbins;
G4double fXmin;
G4double fXmax;
@@ -71,7 +79,8 @@ struct h2_booking {
/// It is provided separately from geant4/source/analysis in order
/// to avoid a need of linking Geant4 kernel libraries with cerblib.
class ExG4HbookH2Manager : public G4VH2Manager
class ExG4HbookH2Manager : public G4VH2Manager,
public G4THnManager<tools::hbook::h2>
{
friend class ExG4HbookAnalysisManager;
@@ -176,6 +185,9 @@ class ExG4HbookH2Manager : public G4VH2Manager
// Write data on ASCII file
virtual G4bool WriteOnAscii(std::ofstream& output);
// Access to Hn manager
virtual std::shared_ptr<G4HnManager> GetHnManager();
private:
// static data members
//
@@ -213,19 +225,21 @@ inline G4int ExG4HbookH2Manager::GetH2HbookIdOffset() const {
}
inline std::vector<tools::hbook::h2*>::iterator ExG4HbookH2Manager::BeginH2()
{ return fH2Vector.begin(); }
{ return BeginT(); }
inline std::vector<tools::hbook::h2*>::iterator ExG4HbookH2Manager::EndH2()
{ return fH2Vector.end(); }
{ return EndT(); }
inline std::vector<tools::hbook::h2*>::const_iterator
ExG4HbookH2Manager::BeginConstH2() const
{ return fH2Vector.begin(); }
{ return BeginConstT(); }
inline std::vector<tools::hbook::h2*>::const_iterator
ExG4HbookH2Manager::EndConstH2() const
{ return fH2Vector.end(); }
{ return EndConstT(); }
inline std::shared_ptr<G4HnManager> ExG4HbookH2Manager::GetHnManager()
{ return std::shared_ptr<G4HnManager>(fHnManager); }
#endif
@@ -34,7 +34,7 @@
#define ExG4HbookH3DummyManager_h 1
#include "G4VH3Manager.hh"
#include "G4BaseToolsManager.hh"
#include "G4THnManager.hh"
#include "G4HnManager.hh"
#include "globals.hh"
@@ -51,7 +51,8 @@ class h3d;
///
/// It will just issue warnings.
class ExG4HbookH3DummyManager : public G4VH3Manager
class ExG4HbookH3DummyManager : public G4VH3Manager,
public G4THnManager<G4int>
{
public:
ExG4HbookH3DummyManager(const G4AnalysisManagerState& state);
@@ -156,6 +157,9 @@ class ExG4HbookH3DummyManager : public G4VH3Manager
// Write data on ASCII file
virtual G4bool WriteOnAscii(std::ofstream& output);
// Access to Hn manager
virtual std::shared_ptr<G4HnManager> GetHnManager();
private:
// methods
@@ -166,5 +170,10 @@ class ExG4HbookH3DummyManager : public G4VH3Manager
G4bool fWarn;
};
// inline functions
inline std::shared_ptr<G4HnManager> ExG4HbookH3DummyManager::GetHnManager()
{ return std::shared_ptr<G4HnManager>(fHnManager); }
#endif
@@ -49,7 +49,8 @@ struct ExG4HbookNtupleDescription
fNtupleBooking(0),
fNtupleIColumnMap(),
fNtupleFColumnMap(),
fNtupleDColumnMap() {}
fNtupleDColumnMap(),
fActivation(true) {}
~ExG4HbookNtupleDescription()
{ delete fNtupleBooking; }
@@ -59,6 +60,7 @@ struct ExG4HbookNtupleDescription
std::map<G4int, tools::hbook::wntuple::column<int>* > fNtupleIColumnMap;
std::map<G4int, tools::hbook::wntuple::column<float>* > fNtupleFColumnMap;
std::map<G4int, tools::hbook::wntuple::column<double>* > fNtupleDColumnMap;
G4bool fActivation;
};
#endif
@@ -122,6 +122,11 @@ class ExG4HbookNtupleManager : public G4VNtupleManager
G4int ntupleId, G4int columnId, const G4String& value);
virtual G4bool AddNtupleRow(G4int ntupleId);
// Activation option
virtual void SetActivation(G4bool activation);
virtual void SetActivation(G4int ntupleId, G4bool activation);
virtual G4bool GetActivation(G4int ntupleId) const;
// Access methods
virtual G4int GetNofNtuples() const;
@@ -36,6 +36,8 @@
#define ExG4HbookP1Manager_h 1
#include "G4VP1Manager.hh"
#include "G4THnManager.hh"
#include "G4HnManager.hh"
#include "G4HnInformation.hh"
#include "ExG4HbookBaseHnManager.hh"
#include "globals.hh"
@@ -51,6 +53,9 @@ struct p1_booking {
p1_booking(G4int nbins, G4double xmin, G4double xmax,
G4double ymin, G4double ymax)
: fTitle(""),
fXAxisTitle(""),
fYAxisTitle(""),
fZAxisTitle(""),
fNbins(nbins),
fXmin(xmin),
fXmax(xmax),
@@ -60,15 +65,21 @@ struct p1_booking {
p1_booking(const std::vector<G4double>& edges,
G4double ymin, G4double ymax)
: fTitle(""),
fXAxisTitle(""),
fYAxisTitle(""),
fZAxisTitle(""),
fNbins(0),
fXmin(0),
fXmax(0),
fYmin(ymin),
fYmax(ymax),
fEdges() {
for (G4int i=0; i<=G4int(edges.size()); ++i) fEdges.push_back(edges[i]);
for (G4int i=0; i<G4int(edges.size()); ++i) fEdges.push_back(edges[i]);
}
G4String fTitle;
G4String fXAxisTitle;
G4String fYAxisTitle;
G4String fZAxisTitle;
G4int fNbins;
G4double fXmin;
G4double fXmax;
@@ -83,7 +94,8 @@ struct p1_booking {
/// It is provided separately from geant4/source/analysis in order
/// to avoid a need of linking Geant4 kernel libraries with cerblib.
class ExG4HbookP1Manager : public G4VP1Manager
class ExG4HbookP1Manager : public G4VP1Manager,
public G4THnManager<tools::hbook::p1>
{
friend class ExG4HbookAnalysisManager;
@@ -186,6 +198,9 @@ class ExG4HbookP1Manager : public G4VP1Manager
// Write data on ASCII file
// virtual G4bool WriteOnAscii(std::ofstream& output);
// Access to Hn manager
virtual std::shared_ptr<G4HnManager> GetHnManager();
private:
// methods
//
@@ -210,9 +225,6 @@ class ExG4HbookP1Manager : public G4VP1Manager
const G4String& yfcnName,
G4BinScheme xbinScheme) ;
G4bool BeginSetP1(G4int id,
p1_booking* p1Booking,
G4HnInformation* info);
G4bool FinishSetP1(G4int id,
G4HnInformation* info,
const G4String& xunitName,
@@ -229,6 +241,10 @@ class ExG4HbookP1Manager : public G4VP1Manager
G4bool warn = true,
G4bool onlyIfActive = true) const;
// static data members
//
static const G4int fgkDefaultP1HbookIdOffset;
// data members
//
ExG4HbookBaseHnManager fBaseToolsManager;
@@ -248,18 +264,21 @@ inline G4int ExG4HbookP1Manager::GetP1HbookIdOffset() const
{ return fP1HbookIdOffset; }
inline std::vector<tools::hbook::p1*>::iterator ExG4HbookP1Manager::BeginP1()
{ return fP1Vector.begin(); }
{ return BeginT(); }
inline std::vector<tools::hbook::p1*>::iterator ExG4HbookP1Manager::EndP1()
{ return fP1Vector.end(); }
{ return EndT(); }
inline std::vector<tools::hbook::p1*>::const_iterator
ExG4HbookP1Manager::BeginConstP1() const
{ return fP1Vector.begin(); }
{ return BeginConstT(); }
inline std::vector<tools::hbook::p1*>::const_iterator
ExG4HbookP1Manager::EndConstP1() const
{ return fP1Vector.end(); }
{ return EndConstT(); }
inline std::shared_ptr<G4HnManager> ExG4HbookP1Manager::GetHnManager()
{ return std::shared_ptr<G4HnManager>(fHnManager); }
#endif
@@ -34,6 +34,8 @@
#define ExG4HbookP2DummyManager_h 1
#include "G4VP2Manager.hh"
#include "G4THnManager.hh"
#include "G4HnManager.hh"
namespace tools {
namespace histo {
@@ -45,7 +47,8 @@ class h3d;
///
/// It will just issue warnings.
class ExG4HbookP2DummyManager : public G4VP2Manager
class ExG4HbookP2DummyManager : public G4VP2Manager,
public G4THnManager<G4int>
{
public:
ExG4HbookP2DummyManager(const G4AnalysisManagerState& state);
@@ -146,6 +149,9 @@ class ExG4HbookP2DummyManager : public G4VP2Manager
// Write data on ASCII file
virtual G4bool WriteOnAscii(std::ofstream& output);
// Access to Hn manager
virtual std::shared_ptr<G4HnManager> GetHnManager();
private:
// methods
@@ -155,6 +161,10 @@ class ExG4HbookP2DummyManager : public G4VP2Manager
// data members
G4bool fWarn;
};
// inline functions
inline std::shared_ptr<G4HnManager> ExG4HbookP2DummyManager::GetHnManager()
{ return std::shared_ptr<G4HnManager>(fHnManager); }
#endif
@@ -52,6 +52,11 @@ namespace G4Hbook {
typedef std::vector<tools::hbook::h2*>::iterator G4H2Iterator;
typedef std::vector<tools::hbook::h2*>::const_iterator G4H2ConstIterator;
// P1 types
typedef tools::hbook::p1 G4P1;
typedef std::vector<tools::hbook::p1*>::iterator G4P1Iterator;
typedef std::vector<tools::hbook::p1*>::const_iterator G4P1ConstIterator;
// Ntuple types
typedef tools::hbook::wntuple G4Ntuple;
typedef std::vector<tools::hbook::wntuple*>::iterator G4NtupleIterator;