ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4BaseFileManager.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4BaseFileManager.hh
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 // Base class for analysis file managers.
28 //
29 // Author: Ivana Hrivnacova, 18/06/2013 (ivana@ipno.in2p3.fr)
30 
31 #ifndef G4BaseFileManager_h
32 #define G4BaseFileManager_h 1
33 
35 #include "globals.hh"
36 
38 {
39  public:
40  explicit G4BaseFileManager(const G4AnalysisManagerState& state);
41  virtual ~G4BaseFileManager();
42 
43  virtual G4bool SetFileName(const G4String& fileName);
44  // Set the base file name (without extension)
45  // If the current file name is already in use
46  // setting is not performed and false is returned
47 
48  G4String GetFileName() const;
49  // Return the base file name (without extension)
50 
51  G4String GetFullFileName(const G4String& baseFileName = "",
52  G4bool isPerThread = true) const;
53  // Compose and return the full file name:
54  // - add _tN suffix to the file base name if isPerThread
55  // - add file extension if not present
56 
57  G4String GetHnFileName(const G4String& hnType,
58  const G4String& hnName) const;
59  // Compose and return the histogram or profile specific file name:
60  // - add _hn_hnName suffix to the file base name
61  // - add file extension if not present
62 
63  G4String GetNtupleFileName(const G4String& ntupleName) const;
64  // Compose and return the ntuple specific file name:
65  // - add _nt_ntupleName suffix to the file base name
66  // - add _tN suffix if called on thread worker
67  // - add file extension if not present
68 
69  G4String GetNtupleFileName(G4int ntupleFileNumber) const;
70  // Compose and return the ntuple specific file name:
71  // - add _mN suffix to the file base name
72  // - add file extension if not present
73 
74  G4String GetPlotFileName() const;
75  // Return the file name for batch plotting output
76 
77  G4String GetFileType() const;
78  // Return the manager file type (starts with a lowercase letter)
79 
80  protected:
81  // utility function
83 
84  // data members
87 };
88 
90  fFileName = fileName;
91  return true;
92 }
93 
95  return fFileName;
96 }
97 
98 #endif
99