source: trunk/examples/advanced/gammaray_telescope/src/GammaRayTelAnalysisMessenger.cc @ 807

Last change on this file since 807 was 807, checked in by garnier, 16 years ago

update

File size: 7.0 KB
Line 
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// $Id: GammaRayTelAnalysisMessenger.cc,v 1.9 2006/06/29 15:56:10 gunter Exp $
28// GEANT4 tag $Name:  $
29//
30// ------------------------------------------------------------
31//      GEANT 4 class implementation file
32//      CERN Geneva Switzerland
33//
34//
35//      ------------ GammaRayTelAnalysisMessenger ------
36//           by R.Giannitrapani, F.Longo & G.Santin (03 dic 2000)
37// 20.11.01 G.Santin: modified according to the new GammaRayTelAnalysis.cc
38// ************************************************************
39#ifdef G4ANALYSIS_USE
40
41#include "G4UIdirectory.hh"
42#include "G4UIcmdWithAString.hh"
43
44#include "GammaRayTelAnalysisMessenger.hh"
45#include "GammaRayTelAnalysis.hh"
46
47//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
48
49GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* analysis)
50  :gammaRayTelAnalysis(analysis)
51
52{ 
53  gammaRayTelAnalysisDir = new G4UIdirectory("/analysis/");
54  gammaRayTelAnalysisDir->SetGuidance("GammaRayTel analysis control.");
55 
56  /*
57     Commands for the 1D histograms (energy deposition in the last
58     TKR layer and hits distribution along the TKR)
59     
60     The Draw command gives the possibility to draw the 1d histograms
61     at every event.
62
63     The Save command gives the possibility to save the 1d histograms in
64     two separate PostScript files at the end of the run.
65  */
66
67  Histo1DDrawCmd = new G4UIcmdWithAString("/analysis/histo1dDraw",this);
68  Histo1DDrawCmd->SetGuidance("Enable the drawing of the 1d histograms every event.");
69  Histo1DDrawCmd->SetGuidance("Choice: disable, enable(default)");
70  Histo1DDrawCmd->SetParameterName("choice",true);
71  Histo1DDrawCmd->SetDefaultValue("ebable");
72  Histo1DDrawCmd->SetCandidates("disable enable");
73  Histo1DDrawCmd->AvailableForStates(G4State_Idle);
74
75  Histo1DSaveCmd = new G4UIcmdWithAString("/analysis/histo1dSave",this);
76  Histo1DSaveCmd->SetGuidance("Enable the saving of the 1d histograms every run.");
77  Histo1DSaveCmd->SetGuidance("Choice: disable, enable(default)");
78  Histo1DSaveCmd->SetParameterName("choice",true);
79  Histo1DSaveCmd->SetDefaultValue("enable");
80  Histo1DSaveCmd->SetCandidates("disable enable");
81  Histo1DSaveCmd->AvailableForStates(G4State_Idle);
82
83  /*
84     Commands for the 2D histograms (hits positions along the TKR)
85     
86     The Draw command gives the possibility to draw the 1d histograms
87     at every event.
88
89     The Save command gives the possibility to save the 1d histograms in
90     two separate PostScript files at the end of the run.
91     
92     Moreover there is the possibility to set the 2d histograms so
93     that the info stored are true position ((x,z) or (y,z)
94     coordinates with respect to the payload reference frame in mm) or
95     the number of the Strip and the number of the Plane in which the
96     hit occur. To note that this feature is just for visualization
97     purpouse since both the information are saved in the external ASCII
98     file.
99  */
100  Histo2DDrawCmd = new G4UIcmdWithAString("/analysis/histo2dDraw",this);
101  Histo2DDrawCmd->SetGuidance("Enable the drawing of the 2d histograms every events.");
102  Histo2DDrawCmd->SetGuidance("Choice: disable, enable(default)");
103  Histo2DDrawCmd->SetParameterName("choice",true);
104  Histo2DDrawCmd->SetDefaultValue("enable");
105  Histo2DDrawCmd->SetCandidates("disable enable");
106  Histo2DDrawCmd->AvailableForStates(G4State_Idle);
107
108  Histo2DSaveCmd = new G4UIcmdWithAString("/analysis/histo2dSave",this);
109  Histo2DSaveCmd->SetGuidance("Enable the saving of the 2d histograms every run.");
110  Histo2DSaveCmd->SetGuidance("Choice: disable, enable(default)");
111  Histo2DSaveCmd->SetParameterName("choice",true);
112  Histo2DSaveCmd->SetDefaultValue("enable");
113  Histo2DSaveCmd->SetCandidates("disable enable");
114  Histo2DSaveCmd->AvailableForStates(G4State_Idle);
115
116  Histo2DModeCmd = new G4UIcmdWithAString("/analysis/histo2dMode",this);
117  Histo2DModeCmd->SetGuidance("Select the mode for the 2d histograms.");
118  Histo2DModeCmd->SetGuidance("Choice: position, strip(default)");
119  Histo2DModeCmd->SetGuidance("position -> the histo is filled with true positions in mm");
120  Histo2DModeCmd->SetGuidance("strip -> the histo is filled with the number of the strip and the plane");
121  Histo2DModeCmd->SetParameterName("choice",true);
122  Histo2DModeCmd->SetDefaultValue("strip");
123  Histo2DModeCmd->SetCandidates("position strip");
124  Histo2DModeCmd->AvailableForStates(G4State_Idle);
125}
126
127//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
128
129GammaRayTelAnalysisMessenger::~GammaRayTelAnalysisMessenger()
130{
131  delete Histo1DDrawCmd; 
132  delete Histo1DSaveCmd; 
133  delete Histo2DDrawCmd; 
134  delete Histo2DSaveCmd; 
135  delete Histo2DModeCmd; 
136}
137
138//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
139
140void GammaRayTelAnalysisMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
141{ 
142
143  // 1D Histograms
144
145  if( command == Histo1DDrawCmd )
146    { gammaRayTelAnalysis->SetHisto1DDraw(newValue);}
147
148  if( command == Histo1DSaveCmd )
149    { gammaRayTelAnalysis->SetHisto1DSave(newValue);}
150
151  // 2D Histograms
152
153  if( command == Histo2DDrawCmd )
154    { gammaRayTelAnalysis->SetHisto2DDraw(newValue);}
155
156  if( command == Histo2DSaveCmd )
157    { gammaRayTelAnalysis->SetHisto2DSave(newValue);}
158
159  if( command == Histo2DModeCmd )
160    { gammaRayTelAnalysis->SetHisto2DMode(newValue);}
161   
162}
163
164//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
165#endif
166
167
168
169
170
Note: See TracBrowser for help on using the repository browser.