Geant4  10.01.p02
G4VAnalysisManager.hh
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 // $Id: G4VAnalysisManager.hh 71635 2013-06-19 13:48:28Z ihrivnac $
27 
28 // The nonvirtual public interface class to g4tools based analysis.
29 // It is defined as a composite of object manager base classes.
30 // Individual use of the component managers is disabled
31 // (except for file manager and Hn manager which are also used from
32 // other object managers).
33 // The functions which has to be implemented in concrete managers
34 // are declared as virtual protected.
35 
36 // Author: Ivana Hrivnacova, 09/07/2013 (ivana@ipno.in2P2.fr)
37 
38 #ifndef G4VAnalysisManager_h
39 #define G4VAnalysisManager_h 1
40 
42 #include "globals.hh"
43 
44 #include <vector>
45 #include <fstream>
46 
47 
49 class G4HnManager;
50 class G4VH1Manager;
51 class G4VH2Manager;
52 class G4VH3Manager;
53 class G4VP1Manager;
54 class G4VP2Manager;
55 class G4VNtupleManager;
56 class G4VFileManager;
57 
59 {
60  public:
61  G4VAnalysisManager(const G4String& type, G4bool isMaster);
62  virtual ~G4VAnalysisManager();
63 
64  // Methods for handling files
65  G4bool OpenFile(const G4String& fileName = "");
66  G4bool Write();
67  G4bool CloseFile();
68 
69  // Methods for handling files and directories names
70  G4bool SetFileName(const G4String& fileName);
71  G4bool SetHistoDirectoryName(const G4String& dirName);
72  G4bool SetNtupleDirectoryName(const G4String& dirName);
73 
74  G4String GetFileName() const;
77 
78  // Methods for handling histograms
79  //
80  G4int CreateH1(const G4String& name, const G4String& title,
81  G4int nbins, G4double xmin, G4double xmax,
82  const G4String& unitName = "none",
83  const G4String& fcnName = "none",
84  const G4String& binSchemeName = "linear");
85 
86  G4int CreateH1(const G4String& name, const G4String& title,
87  const std::vector<G4double>& edges,
88  const G4String& unitName = "none",
89  const G4String& fcnName = "none");
90 
91  G4int CreateH2(const G4String& name, const G4String& title,
92  G4int nxbins, G4double xmin, G4double xmax,
93  G4int nybins, G4double ymin, G4double ymax,
94  const G4String& xunitName = "none",
95  const G4String& yunitName = "none",
96  const G4String& xfcnName = "none",
97  const G4String& yfcnName = "none",
98  const G4String& xbinSchemeName = "linear",
99  const G4String& ybinSchemeName = "linear");
100 
101  G4int CreateH2(const G4String& name, const G4String& title,
102  const std::vector<G4double>& xedges,
103  const std::vector<G4double>& yedges,
104  const G4String& xunitName = "none",
105  const G4String& yunitName = "none",
106  const G4String& xfcnName = "none",
107  const G4String& yfcnName = "none");
108 
109  G4int CreateH3(const G4String& name, const G4String& title,
110  G4int nxbins, G4double xmin, G4double xmax,
111  G4int nybins, G4double ymin, G4double ymax,
112  G4int nzbins, G4double zmin, G4double zmax,
113  const G4String& xunitName = "none",
114  const G4String& yunitName = "none",
115  const G4String& zunitName = "none",
116  const G4String& xfcnName = "none",
117  const G4String& yfcnName = "none",
118  const G4String& zfcnName = "none",
119  const G4String& xbinSchemeName = "linear",
120  const G4String& ybinSchemeName = "linear",
121  const G4String& zbinSchemeName = "linear");
122 
123  G4int CreateH3(const G4String& name, const G4String& title,
124  const std::vector<G4double>& xedges,
125  const std::vector<G4double>& yedges,
126  const std::vector<G4double>& zedges,
127  const G4String& xunitName = "none",
128  const G4String& yunitName = "none",
129  const G4String& zunitName = "none",
130  const G4String& xfcnName = "none",
131  const G4String& yfcnName = "none",
132  const G4String& zfcnName = "none");
133 
134  G4bool SetH1(G4int id,
135  G4int nbins, G4double xmin, G4double xmax,
136  const G4String& unitName = "none",
137  const G4String& fcnName = "none",
138  const G4String& binSchemeName = "linear");
139 
140  G4bool SetH1(G4int id,
141  const std::vector<G4double>& edges,
142  const G4String& unitName = "none",
143  const G4String& fcnName = "none");
144 
145  G4bool SetH2(G4int id,
146  G4int nxbins, G4double xmin, G4double xmax,
147  G4int nybins, G4double ymin, G4double ymax,
148  const G4String& xunitName = "none",
149  const G4String& yunitName = "none",
150  const G4String& xfcnName = "none",
151  const G4String& yfcnName = "none",
152  const G4String& xbinSchemeName = "linear",
153  const G4String& ybinSchemeName = "linear");
154 
155  G4bool SetH2(G4int id,
156  const std::vector<G4double>& xedges,
157  const std::vector<G4double>& yedges,
158  const G4String& xunitName = "none",
159  const G4String& yunitName = "none",
160  const G4String& xfcnName = "none",
161  const G4String& yfcnName = "none");
162 
163  G4bool SetH3(G4int id,
164  G4int nxbins, G4double xmin, G4double xmax,
165  G4int nzbins, G4double zmin, G4double zmax,
166  G4int nybins, G4double ymin, G4double ymax,
167  const G4String& xunitName = "none",
168  const G4String& yunitName = "none",
169  const G4String& zunitName = "none",
170  const G4String& xfcnName = "none",
171  const G4String& yfcnName = "none",
172  const G4String& zfcnName = "none",
173  const G4String& xbinSchemeName = "linear",
174  const G4String& ybinSchemeName = "linear",
175  const G4String& zbinSchemeName = "linear");
176 
177  G4bool SetH3(G4int id,
178  const std::vector<G4double>& xedges,
179  const std::vector<G4double>& yedges,
180  const std::vector<G4double>& zedges,
181  const G4String& xunitName = "none",
182  const G4String& yunitName = "none",
183  const G4String& zunitName = "none",
184  const G4String& xfcnName = "none",
185  const G4String& yfcnName = "none",
186  const G4String& zfcnName = "none");
187 
189  G4bool ScaleH2(G4int id, G4double factor);
190  G4bool ScaleH3(G4int id, G4double factor);
191 
192  // Methods for handling profiles
193  //
194  G4int CreateP1(const G4String& name, const G4String& title,
195  G4int nbins, G4double xmin, G4double xmax,
196  G4double ymin = 0, G4double ymax = 0,
197  const G4String& xunitName = "none",
198  const G4String& yunitName = "none",
199  const G4String& xfcnName = "none",
200  const G4String& yfcnName = "none",
201  const G4String& xbinSchemeName = "linear");
202  G4int CreateP1(const G4String& name, const G4String& title,
203  const std::vector<G4double>& edges,
204  G4double ymin = 0, G4double ymax = 0,
205  const G4String& xunitName = "none",
206  const G4String& yunitName = "none",
207  const G4String& xfcnName = "none",
208  const G4String& yfcnName = "none");
209 
210  G4int CreateP2(const G4String& name, const G4String& title,
211  G4int nxbins, G4double xmin, G4double xmax,
212  G4int nybins, G4double ymin, G4double ymax,
213  G4double zmin = 0, G4double zmax = 0,
214  const G4String& xunitName = "none",
215  const G4String& yunitName = "none",
216  const G4String& zunitName = "none",
217  const G4String& xfcnName = "none",
218  const G4String& yfcnName = "none",
219  const G4String& zfcnName = "none",
220  const G4String& xbinSchemeName = "linear",
221  const G4String& ybinSchemeName = "linear");
222  G4int CreateP2(const G4String& name, const G4String& title,
223  const std::vector<G4double>& xedges,
224  const std::vector<G4double>& yedges,
225  G4double zmin = 0, G4double zmax = 0,
226  const G4String& xunitName = "none",
227  const G4String& yunitName = "none",
228  const G4String& zunitName = "none",
229  const G4String& xfcnName = "none",
230  const G4String& yfcnName = "none",
231  const G4String& zfcnName = "none");
232 
233  G4bool SetP1(G4int id,
234  G4int nbins, G4double xmin, G4double xmax,
235  G4double ymin = 0, G4double ymax = 0,
236  const G4String& xunitName = "none",
237  const G4String& yunitName = "none",
238  const G4String& xfcnName = "none",
239  const G4String& yfcnName = "none",
240  const G4String& xbinSchemeName = "linear");
241  G4bool SetP1(G4int id,
242  const std::vector<G4double>& edges,
243  G4double ymin = 0, G4double ymax = 0,
244  const G4String& xunitName = "none",
245  const G4String& yunitName = "none",
246  const G4String& xfcnName = "none",
247  const G4String& yfcnName = "none");
248 
249  G4bool SetP2(G4int id,
250  G4int nxbins, G4double xmin, G4double xmax,
251  G4int nybins, G4double ymin, G4double ymax,
252  G4double zmin = 0, G4double zmax = 0,
253  const G4String& xunitName = "none",
254  const G4String& yunitName = "none",
255  const G4String& zunitName = "none",
256  const G4String& xfcnName = "none",
257  const G4String& yfcnName = "none",
258  const G4String& zfcnName = "none",
259  const G4String& xbinSchemeName = "linear",
260  const G4String& ybinSchemeName = "linear");
261  G4bool SetP2(G4int id,
262  const std::vector<G4double>& xedges,
263  const std::vector<G4double>& yedges,
264  G4double zmin = 0, G4double zmax = 0,
265  const G4String& xunitName = "none",
266  const G4String& yunitName = "none",
267  const G4String& zunitName = "none",
268  const G4String& xfcnName = "none",
269  const G4String& yfcnName = "none",
270  const G4String& zfcnName = "none");
271 
272  G4bool ScaleP1(G4int id, G4double factor);
273  G4bool ScaleP2(G4int id, G4double factor);
274 
275  // Methods for handling ntuples
276  //
277  G4int CreateNtuple(const G4String& name, const G4String& title);
278 
279  // Create columns in the last created ntuple
280  G4int CreateNtupleIColumn(const G4String& name);
281  G4int CreateNtupleFColumn(const G4String& name);
282  G4int CreateNtupleDColumn(const G4String& name);
283  G4int CreateNtupleSColumn(const G4String& name);
284 
285  // Create columns of vector in the last created ntuple
287  const G4String& name, std::vector<int>& vector);
289  const G4String& name, std::vector<float>& vector);
291  const G4String& name, std::vector<double>& vector);
292  void FinishNtuple();
293 
294  // Create columns in the ntuple with given id
295  G4int CreateNtupleIColumn(G4int ntupleId, const G4String& name);
296  G4int CreateNtupleFColumn(G4int ntupleId, const G4String& name);
297  G4int CreateNtupleDColumn(G4int ntupleId, const G4String& name);
298  G4int CreateNtupleSColumn(G4int ntupleId, const G4String& name);
299 
300  // Create columns of vector in the ntuple with given id
301  G4int CreateNtupleIColumn(G4int ntupleId,
302  const G4String& name, std::vector<int>& vector);
303  G4int CreateNtupleFColumn(G4int ntupleId,
304  const G4String& name, std::vector<float>& vector);
305  G4int CreateNtupleDColumn(G4int ntupleId,
306  const G4String& name, std::vector<double>& vector);
307 
308  void FinishNtuple(G4int ntupleId);
309 
310  // The ids of histograms and ntuples are generated automatically
311  // starting from 0; with following functions it is possible to
312  // change the first Id to start from other value
313  G4bool SetFirstHistoId(G4int firstId);
314  G4bool SetFirstH1Id(G4int firstId);
315  G4bool SetFirstH2Id(G4int firstId);
316  G4bool SetFirstH3Id(G4int firstId);
317  G4bool SetFirstProfileId(G4int firstId);
318  G4bool SetFirstP1Id(G4int firstId);
319  G4bool SetFirstP2Id(G4int firstId);
320  G4bool SetFirstNtupleId(G4int firstId);
322 
323  // Methods to fill histograms
324  G4bool FillH1(G4int id, G4double value, G4double weight = 1.0);
325  G4bool FillH2(G4int id, G4double xvalue, G4double yvalue,
326  G4double weight = 1.0);
327  G4bool FillH3(G4int id,
328  G4double xvalue, G4double yvalue, G4double zvalue,
329  G4double weight = 1.0);
330  // Methods to fill profiles
331  G4bool FillP1(G4int id, G4double xvalue, G4double yvalue,
332  G4double weight = 1.0);
333  G4bool FillP2(G4int id,
334  G4double xvalue, G4double yvalue, G4double zvalue,
335  G4double weight = 1.0);
336 
337  // Methods to fill ntuples
338  // Methods for ntuple with id = FirstNtupleId
339  G4bool FillNtupleIColumn(G4int id, G4int value);
342  G4bool FillNtupleSColumn(G4int id, const G4String& value);
344  // Methods for ntuple with id > FirstNtupleId (when more ntuples exist)
345  G4bool FillNtupleIColumn(G4int ntupleId, G4int columnId, G4int value);
346  G4bool FillNtupleFColumn(G4int ntupleId, G4int columnId, G4float value);
347  G4bool FillNtupleDColumn(G4int ntupleId, G4int columnId, G4double value);
348  G4bool FillNtupleSColumn(G4int ntupleId, G4int id, const G4String& value);
349  G4bool AddNtupleRow(G4int ntupleId);
350 
351  // Activation option
352 
353  // When this option is enabled, only the histograms/profiles marked as activated
354  // are returned, filled or saved on file.
355  // No warning is issued when Get or Fill is called on inactive histogram.
356  void SetActivation(G4bool activation);
357  G4bool GetActivation() const;
358 
359  // Return false if activation is enabled and there is no object activated,
360  // return true otherwise
361  G4bool IsActive() const;
362 
363  // ASCII option
364 
365  // Return false if there is no object selected for ASCII output,
366  // return true otherwise
367  G4bool IsAscii() const;
368 
369  // Access methods
370  G4int GetFirstH1Id() const;
371  G4int GetFirstH2Id() const;
372  G4int GetFirstH3Id() const;
373  G4int GetFirstP1Id() const;
374  G4int GetFirstP2Id() const;
375  G4int GetFirstNtupleId() const;
377 
378  G4int GetNofH1s() const;
379  G4int GetNofH2s() const;
380  G4int GetNofH3s() const;
381  G4int GetNofP1s() const;
382  G4int GetNofP2s() const;
383  G4int GetNofNtuples() const;
384 
385  // Access methods via names
386  G4int GetH1Id(const G4String& name, G4bool warn = true) const;
387  G4int GetH2Id(const G4String& name, G4bool warn = true) const;
388  G4int GetH3Id(const G4String& name, G4bool warn = true) const;
389 
390  // Methods to manipulate histogram & profiles additional information
391  //
392  void SetH1Activation(G4bool activation);
393  void SetH1Activation(G4int id, G4bool activation);
394  void SetH1Ascii(G4int id, G4bool ascii);
395  //
396  void SetH2Activation(G4bool activation);
397  void SetH2Activation(G4int id, G4bool activation);
398  void SetH2Ascii(G4int id, G4bool ascii);
399  //
400  void SetH3Activation(G4bool activation);
401  void SetH3Activation(G4int id, G4bool activation);
402  void SetH3Ascii(G4int id, G4bool ascii);
403  //
404  void SetP1Activation(G4bool activation);
405  void SetP1Activation(G4int id, G4bool activation);
406  void SetP1Ascii(G4int id, G4bool ascii);
407  //
408  void SetP2Activation(G4bool activation);
409  void SetP2Activation(G4int id, G4bool activation);
410  void SetP2Ascii(G4int id, G4bool ascii);
411 
412  // Access to histogram & profiles parameters
413  //
414  G4int GetH1Nbins(G4int id) const;
415  G4double GetH1Xmin(G4int id) const;
416  G4double GetH1Xmax(G4int id) const;
417  G4double GetH1Width(G4int id) const;
418  //
419  G4int GetH2Nxbins(G4int id) const;
420  G4double GetH2Xmin(G4int id) const;
421  G4double GetH2Xmax(G4int id) const;
422  G4double GetH2XWidth(G4int id) const;
423  G4int GetH2Nybins(G4int id) const;
424  G4double GetH2Ymin(G4int id) const;
425  G4double GetH2Ymax(G4int id) const;
426  G4double GetH2YWidth(G4int id) const;
427  //
428  G4int GetH3Nxbins(G4int id) const;
429  G4double GetH3Xmin(G4int id) const;
430  G4double GetH3Xmax(G4int id) const;
431  G4double GetH3XWidth(G4int id) const;
432  G4int GetH3Nybins(G4int id) const;
433  G4double GetH3Ymin(G4int id) const;
434  G4double GetH3Ymax(G4int id) const;
435  G4double GetH3YWidth(G4int id) const;
436  G4int GetH3Nzbins(G4int id) const;
437  G4double GetH3Zmin(G4int id) const;
438  G4double GetH3Zmax(G4int id) const;
439  G4double GetH3ZWidth(G4int id) const;
440  //
441  G4int GetP1Nbins(G4int id) const;
442  G4double GetP1Xmin(G4int id) const;
443  G4double GetP1Xmax(G4int id) const;
444  G4double GetP1XWidth(G4int id) const;
445  G4double GetP1Ymin(G4int id) const;
446  G4double GetP1Ymax(G4int id) const;
447  //
448  G4int GetP2Nxbins(G4int id) const;
449  G4double GetP2Xmin(G4int id) const;
450  G4double GetP2Xmax(G4int id) const;
451  G4double GetP2XWidth(G4int id) const;
452  G4int GetP2Nybins(G4int id) const;
453  G4double GetP2Ymin(G4int id) const;
454  G4double GetP2Ymax(G4int id) const;
455  G4double GetP2YWidth(G4int id) const;
456  G4double GetP2Zmin(G4int id) const;
457  G4double GetP2Zmax(G4int id) const;
458 
459  // Access to histogram & profiles additional information
460  //
461  G4String GetH1Name(G4int id) const;
462  G4double GetH1Unit(G4int id) const;
463  G4bool GetH1Activation(G4int id) const;
464  G4bool GetH1Ascii(G4int id) const;
465  //
466  G4String GetH2Name(G4int id) const;
467  G4double GetH2XUnit(G4int id) const;
468  G4double GetH2YUnit(G4int id) const;
469  G4bool GetH2Activation(G4int id) const;
470  G4bool GetH2Ascii(G4int id) const;
471  //
472  G4String GetH3Name(G4int id) const;
473  G4double GetH3XUnit(G4int id) const;
474  G4double GetH3YUnit(G4int id) const;
475  G4double GetH3ZUnit(G4int id) const;
476  G4bool GetH3Activation(G4int id) const;
477  G4bool GetH3Ascii(G4int id) const;
478  //
479  G4String GetP1Name(G4int id) const;
480  G4double GetP1XUnit(G4int id) const;
481  G4double GetP1YUnit(G4int id) const;
482  G4bool GetP1Activation(G4int id) const;
483  G4bool GetP1Ascii(G4int id) const;
484  //
485  G4String GetP2Name(G4int id) const;
486  G4double GetP2XUnit(G4int id) const;
487  G4double GetP2YUnit(G4int id) const;
488  G4double GetP2ZUnit(G4int id) const;
489  G4bool GetP2Activation(G4int id) const;
490  G4bool GetP2Ascii(G4int id) const;
491 
492  // Setters for histogram & profiles attributes for plotting
493  //
494  G4bool SetH1Title(G4int id, const G4String& title);
495  G4bool SetH1XAxisTitle(G4int id, const G4String& title);
496  G4bool SetH1YAxisTitle(G4int id, const G4String& title);
497  //
498  G4bool SetH2Title(G4int id, const G4String& title);
499  G4bool SetH2XAxisTitle(G4int id, const G4String& title);
500  G4bool SetH2YAxisTitle(G4int id, const G4String& title);
501  G4bool SetH2ZAxisTitle(G4int id, const G4String& title);
502  //
503  G4bool SetH3Title(G4int id, const G4String& title);
504  G4bool SetH3XAxisTitle(G4int id, const G4String& title);
505  G4bool SetH3YAxisTitle(G4int id, const G4String& title);
506  G4bool SetH3ZAxisTitle(G4int id, const G4String& title);
507  //
508  G4bool SetP1Title(G4int id, const G4String& title);
509  G4bool SetP1XAxisTitle(G4int id, const G4String& title);
510  G4bool SetP1YAxisTitle(G4int id, const G4String& title);
511  //
512  G4bool SetP2Title(G4int id, const G4String& title);
513  G4bool SetP2XAxisTitle(G4int id, const G4String& title);
514  G4bool SetP2YAxisTitle(G4int id, const G4String& title);
515  G4bool SetP2ZAxisTitle(G4int id, const G4String& title);
516 
517  // Access histogram & profiles attributes for plotting
518  //
519  G4String GetH1Title(G4int id) const;
520  G4String GetH1XAxisTitle(G4int id) const;
521  G4String GetH1YAxisTitle(G4int id) const;
522  //
523  G4String GetH2Title(G4int id) const;
524  G4String GetH2XAxisTitle(G4int id) const;
525  G4String GetH2YAxisTitle(G4int id) const;
526  G4String GetH2ZAxisTitle(G4int id) const;
527  //
528  G4String GetH3Title(G4int id) const;
529  G4String GetH3XAxisTitle(G4int id) const;
530  G4String GetH3YAxisTitle(G4int id) const;
531  G4String GetH3ZAxisTitle(G4int id) const;
532  //
533  G4String GetP1Title(G4int id) const;
534  G4String GetP1XAxisTitle(G4int id) const;
535  G4String GetP1YAxisTitle(G4int id) const;
536  G4String GetP1ZAxisTitle(G4int id) const;
537  //
538  G4String GetP2Title(G4int id) const;
539  G4String GetP2XAxisTitle(G4int id) const;
540  G4String GetP2YAxisTitle(G4int id) const;
541  G4String GetP2ZAxisTitle(G4int id) const;
542 
543  // Verbosity
544  void SetVerboseLevel(G4int verboseLevel);
545  G4int GetVerboseLevel() const;
546 
547  // The manager type (starts with an uppercase letter)
548  G4String GetType() const;
549  // The manager file type (starts with a lowercase letter)
550  G4String GetFileType() const;
551 
552  protected:
553  // virtual methods
554  virtual G4bool OpenFileImpl(const G4String& fileName) = 0;
555  virtual G4bool WriteImpl() = 0;
556  virtual G4bool CloseFileImpl() = 0;
557 
558  // methods
559  void SetH1Manager(G4VH1Manager* h1Manager);
560  void SetH2Manager(G4VH2Manager* h2Manager);
561  void SetH3Manager(G4VH3Manager* h3Manager);
562  void SetP1Manager(G4VP1Manager* p1Manager);
563  void SetP2Manager(G4VP2Manager* p2Manager);
564  void SetNtupleManager(G4VNtupleManager* ntupleManager);
565  void SetFileManager(G4VFileManager* fileManager);
566 
567  // Methods to manipulate additional information
568  G4bool WriteAscii(const G4String& fileName);
569 
570  // data members
572 
573  private:
574  // data members
588 };
589 
590 // inline functions
591 
592 #include "G4VAnalysisManager.icc"
593 
594 #endif
G4int CreateH3(const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4int nzbins, G4double zmin, G4double zmax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear", const G4String &zbinSchemeName="linear")
void SetP1Manager(G4VP1Manager *p1Manager)
G4bool SetHistoDirectoryName(const G4String &dirName)
G4String GetH3XAxisTitle(G4int id) const
G4double GetH1Unit(G4int id) const
G4bool GetP2Ascii(G4int id) const
void SetH2Ascii(G4int id, G4bool ascii)
G4String GetNtupleDirectoryName() const
G4bool SetP2ZAxisTitle(G4int id, const G4String &title)
G4AnalysisMessenger * fMessenger
G4int GetP1Nbins(G4int id) const
G4int CreateNtupleIColumn(const G4String &name)
G4bool FillNtupleSColumn(G4int id, const G4String &value)
G4bool GetH3Activation(G4int id) const
G4bool SetFirstHistoId(G4int firstId)
G4VH2Manager * fVH2Manager
G4bool GetH3Ascii(G4int id) const
G4int CreateH1(const G4String &name, const G4String &title, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")
G4double GetP2XWidth(G4int id) const
G4double GetH3Xmax(G4int id) const
G4HnManager * fP1HnManager
G4String GetP1XAxisTitle(G4int id) const
G4double GetH2YUnit(G4int id) const
G4String GetP2YAxisTitle(G4int id) const
G4double GetH3XWidth(G4int id) const
G4bool ScaleH1(G4int id, G4double factor)
G4bool ScaleH2(G4int id, G4double factor)
G4double GetP1XWidth(G4int id) const
G4bool SetH2YAxisTitle(G4int id, const G4String &title)
void SetH1Manager(G4VH1Manager *h1Manager)
void SetP2Activation(G4bool activation)
G4bool GetP1Activation(G4int id) const
G4String name
Definition: TRTMaterials.hh:40
G4double GetP1Ymin(G4int id) const
float G4float
Definition: G4Types.hh:77
virtual G4bool WriteImpl()=0
G4int GetH2Id(const G4String &name, G4bool warn=true) const
void SetVerboseLevel(G4int verboseLevel)
G4String GetH2ZAxisTitle(G4int id) const
G4double GetH2XWidth(G4int id) const
G4double GetH3ZUnit(G4int id) const
G4double GetP2Ymin(G4int id) const
G4bool IsAscii() const
void SetH2Activation(G4bool activation)
G4int CreateNtuple(const G4String &name, const G4String &title)
G4bool SetP2Title(G4int id, const G4String &title)
G4VFileManager * fVFileManager
G4int GetFirstP2Id() const
G4bool FillP2(G4int id, G4double xvalue, G4double yvalue, G4double zvalue, G4double weight=1.0)
G4int CreateP1(const G4String &name, const G4String &title, G4int nbins, G4double xmin, G4double xmax, G4double ymin=0, G4double ymax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear")
G4String GetH3YAxisTitle(G4int id) const
G4double GetH2Ymin(G4int id) const
G4bool FillP1(G4int id, G4double xvalue, G4double yvalue, G4double weight=1.0)
G4int GetFirstH2Id() const
G4int GetFirstH1Id() const
G4VNtupleManager * fVNtupleManager
G4bool SetFileName(const G4String &fileName)
G4bool ScaleH3(G4int id, G4double factor)
G4int CreateNtupleSColumn(const G4String &name)
G4bool SetNtupleDirectoryName(const G4String &dirName)
int G4int
Definition: G4Types.hh:78
G4int GetFirstP1Id() const
G4bool SetH2ZAxisTitle(G4int id, const G4String &title)
void SetP1Activation(G4bool activation)
G4bool SetH3(G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nzbins, G4double zmin, G4double zmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear", const G4String &zbinSchemeName="linear")
G4int GetFirstNtupleColumnId() const
G4bool OpenFile(const G4String &fileName="")
G4String GetP1Title(G4int id) const
G4bool FillNtupleFColumn(G4int id, G4float value)
void SetH3Manager(G4VH3Manager *h3Manager)
G4int GetH3Id(const G4String &name, G4bool warn=true) const
G4double GetP2YWidth(G4int id) const
G4bool SetFirstH1Id(G4int firstId)
G4double GetH2XUnit(G4int id) const
G4String GetP2Title(G4int id) const
G4String GetH2Title(G4int id) const
G4double GetP1XUnit(G4int id) const
G4double GetH3Xmin(G4int id) const
G4VAnalysisManager(const G4String &type, G4bool isMaster)
void SetH3Ascii(G4int id, G4bool ascii)
G4VH3Manager * fVH3Manager
G4bool SetFirstProfileId(G4int firstId)
G4double GetH2YWidth(G4int id) const
G4bool FillNtupleIColumn(G4int id, G4int value)
G4double GetP2Zmin(G4int id) const
void SetH1Ascii(G4int id, G4bool ascii)
G4bool SetP1YAxisTitle(G4int id, const G4String &title)
G4bool SetP1(G4int id, G4int nbins, G4double xmin, G4double xmax, G4double ymin=0, G4double ymax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear")
void SetP2Manager(G4VP2Manager *p2Manager)
G4bool GetH2Ascii(G4int id) const
G4double GetP1YUnit(G4int id) const
G4int GetNofNtuples() const
G4VP1Manager * fVP1Manager
G4double GetH2Xmax(G4int id) const
G4bool SetH3Title(G4int id, const G4String &title)
G4double GetH1Xmax(G4int id) const
G4int GetVerboseLevel() const
G4VH1Manager * fVH1Manager
G4bool SetP2XAxisTitle(G4int id, const G4String &title)
G4bool FillNtupleDColumn(G4int id, G4double value)
bool G4bool
Definition: G4Types.hh:79
virtual G4bool OpenFileImpl(const G4String &fileName)=0
G4String GetFileType() const
G4int GetFirstH3Id() const
G4int GetH3Nybins(G4int id) const
G4bool SetFirstP1Id(G4int firstId)
G4String GetP2ZAxisTitle(G4int id) const
G4bool GetP2Activation(G4int id) const
G4double GetH3Zmin(G4int id) const
G4bool SetH1(G4int id, G4int nbins, G4double xmin, G4double xmax, const G4String &unitName="none", const G4String &fcnName="none", const G4String &binSchemeName="linear")
G4String GetFileName() const
G4bool IsActive() const
G4bool ScaleP2(G4int id, G4double factor)
G4bool SetH1YAxisTitle(G4int id, const G4String &title)
void SetFileManager(G4VFileManager *fileManager)
G4String GetH3ZAxisTitle(G4int id) const
G4double GetH3XUnit(G4int id) const
G4double GetH3Ymin(G4int id) const
G4String GetHistoDirectoryName() const
G4double GetH3ZWidth(G4int id) const
G4bool GetActivation() const
G4bool GetP1Ascii(G4int id) const
G4double GetP2ZUnit(G4int id) const
G4String GetH1XAxisTitle(G4int id) const
G4bool SetH2(G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
G4int GetH3Nzbins(G4int id) const
G4int GetP2Nybins(G4int id) const
G4String GetP1ZAxisTitle(G4int id) const
void SetH2Manager(G4VH2Manager *h2Manager)
G4bool SetP2(G4int id, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4double zmin=0, G4double zmax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
G4String GetType() const
G4HnManager * fH2HnManager
G4bool SetFirstNtupleId(G4int firstId)
G4bool SetH2Title(G4int id, const G4String &title)
G4double GetP1Xmin(G4int id) const
G4bool SetFirstH3Id(G4int firstId)
G4HnManager * fP2HnManager
G4bool SetP1XAxisTitle(G4int id, const G4String &title)
G4bool SetP2YAxisTitle(G4int id, const G4String &title)
G4bool SetFirstP2Id(G4int firstId)
G4double GetH3YUnit(G4int id) const
G4String GetP2XAxisTitle(G4int id) const
static const G4double factor
G4int GetH1Nbins(G4int id) const
G4int CreateP2(const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, G4double zmin=0, G4double zmax=0, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &zunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &zfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
G4bool FillH2(G4int id, G4double xvalue, G4double yvalue, G4double weight=1.0)
G4double GetP2Xmin(G4int id) const
G4String GetP1YAxisTitle(G4int id) const
void SetH1Activation(G4bool activation)
G4bool FillH1(G4int id, G4double value, G4double weight=1.0)
G4int GetH3Nxbins(G4int id) const
G4double GetP2Zmax(G4int id) const
void SetActivation(G4bool activation)
void SetP2Ascii(G4int id, G4bool ascii)
G4double GetP2XUnit(G4int id) const
G4int CreateNtupleFColumn(const G4String &name)
G4String GetP2Name(G4int id) const
G4String GetH3Name(G4int id) const
G4String GetH2YAxisTitle(G4int id) const
G4String GetH3Title(G4int id) const
G4int GetP2Nxbins(G4int id) const
G4bool SetP1Title(G4int id, const G4String &title)
G4double GetH1Width(G4int id) const
G4double GetH1Xmin(G4int id) const
G4bool GetH1Activation(G4int id) const
G4HnManager * fH1HnManager
void SetH3Activation(G4bool activation)
G4double GetH3Ymax(G4int id) const
G4bool SetH3XAxisTitle(G4int id, const G4String &title)
void SetP1Ascii(G4int id, G4bool ascii)
G4double GetP1Xmax(G4int id) const
G4String GetH1Name(G4int id) const
G4double GetP2Xmax(G4int id) const
G4bool SetFirstNtupleColumnId(G4int firstId)
G4bool SetFirstH2Id(G4int firstId)
G4String GetH2XAxisTitle(G4int id) const
G4double GetH2Xmin(G4int id) const
G4int CreateNtupleDColumn(const G4String &name)
G4String GetH2Name(G4int id) const
G4bool FillH3(G4int id, G4double xvalue, G4double yvalue, G4double zvalue, G4double weight=1.0)
G4int GetH2Nxbins(G4int id) const
G4double GetH3YWidth(G4int id) const
double G4double
Definition: G4Types.hh:76
G4HnManager * fH3HnManager
G4bool GetH1Ascii(G4int id) const
G4VP2Manager * fVP2Manager
G4String GetH1Title(G4int id) const
G4bool SetH3ZAxisTitle(G4int id, const G4String &title)
G4bool SetH1Title(G4int id, const G4String &title)
G4bool GetH2Activation(G4int id) const
G4AnalysisManagerState fState
G4double GetH3Zmax(G4int id) const
G4double GetH2Ymax(G4int id) const
G4double GetP1Ymax(G4int id) const
virtual G4bool CloseFileImpl()=0
G4bool SetH1XAxisTitle(G4int id, const G4String &title)
G4bool SetH3YAxisTitle(G4int id, const G4String &title)
G4double GetP2YUnit(G4int id) const
G4int GetFirstNtupleId() const
G4int GetH1Id(const G4String &name, G4bool warn=true) const
void SetNtupleManager(G4VNtupleManager *ntupleManager)
G4int CreateH2(const G4String &name, const G4String &title, G4int nxbins, G4double xmin, G4double xmax, G4int nybins, G4double ymin, G4double ymax, const G4String &xunitName="none", const G4String &yunitName="none", const G4String &xfcnName="none", const G4String &yfcnName="none", const G4String &xbinSchemeName="linear", const G4String &ybinSchemeName="linear")
G4String GetH1YAxisTitle(G4int id) const
G4bool SetH2XAxisTitle(G4int id, const G4String &title)
G4int GetH2Nybins(G4int id) const
G4bool ScaleP1(G4int id, G4double factor)
G4double GetP2Ymax(G4int id) const
G4bool WriteAscii(const G4String &fileName)
G4String GetP1Name(G4int id) const