Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GammaRayTelAnalysis.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 #ifdef G4ANALYSIS_USE
27 //
28 // $Id$
29 // ------------------------------------------------------------
30 // GEANT 4 class header file
31 // CERN Geneva Switzerland
32 //
33 //
34 // ------------ GammaRayTelAnalysis ------
35 // by R.Giannitrapani, F. Longo & G.Santin (30 nov 2000)
36 //
37 // 07.12.2001 A.Pfeiffer
38 // - integrated Guy's addition of the ntuple
39 //
40 // 06.12.2001 A.Pfeiffer
41 // - updating to new design (singleton)
42 //
43 // 22.11.2001 G.Barrand
44 // - Adaptation to AIDA
45 //
46 // ************************************************************
47 
48 #ifndef GammaRayTelAnalysis_h
49 #define GammaRayTelAnalysis_h 1
50 
51 #include "globals.hh"
52 #include <vector>
53 #include "G4ThreeVector.hh"
54 
55 #include <AIDA/AIDA.h>
56 
57 using namespace AIDA;
58 
59 class GammaRayTelAnalysisMessenger;
61 
62 class AIDA::IAnalysisFactory;
63 class AIDA::ITree;
64 class AIDA::IHistogramFactory;
65 class AIDA::ITupleFactory;
66 //class AIDA::IPlotter;
67 class AIDA::IHistogram1D;
68 class AIDA::IHistogram2D;
69 
70 class GammaRayTelAnalysis {
71 public:
72  virtual ~GammaRayTelAnalysis();
73 
74 public:
75 
76 
77  // void BeginOfRun(G4int n);
78 
79  void BeginOfRun();
80  void EndOfRun(G4int n);
81  void EndOfEvent(G4int flag);
82 
83  void Init();
84  void Finish();
85 
86  void SetHisto1DDraw(G4String str) {histo1DDraw = str;};
87  void SetHisto1DSave(G4String str) {histo1DSave = str;};
88  void SetHisto2DDraw(G4String str) {histo2DDraw = str;};
89  void SetHisto2DSave(G4String str) {histo2DSave = str;};
90  void SetHisto2DMode(G4String str) {histo2DMode = str;};
91 
92  G4String GetHisto2DMode() {return histo2DMode;};
93 
94  void InsertPositionXZ(double x, double z);
95  void InsertPositionYZ(double y, double z);
96  void InsertEnergy(double en);
97  void InsertHits(int nplane);
98 
99  void setNtuple(float E, float p, float x, float y, float z);
100 
101  static GammaRayTelAnalysis* getInstance();
102 
103 private:
104 
105  GammaRayTelAnalysis();
106 
107  void plot1D(IHistogram1D* histo);
108  void plot2D(IHistogram2D* histo);
109  void Plot();
110 
111 private:
112  static GammaRayTelAnalysis* instance;
113 
114  GammaRayTelDetectorConstruction* GammaRayTelDetector;
115 
116  IAnalysisFactory* analysisFactory;
117  ITree* tree;
118  //IPlotter* plotter;
119  ITuple* tuple;
120 
121  IHistogram1D* energy;
122  IHistogram1D* hits;
123  IHistogram2D* posXZ;
124  IHistogram2D* posYZ;
125 
126  G4String histo1DDraw;
127  G4String histo1DSave;
128  G4String histo2DDraw;
129  G4String histo2DSave;
130  G4String histo2DMode;
131 
132  GammaRayTelAnalysisMessenger* analysisMessenger;
133 };
134 
135 
136 #endif
137 #endif