Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // 26 // >> 27 // $Id: GammaRayTelAnalysisMessenger.cc,v 1.9 2006/06/29 15:56:10 gunter Exp $ >> 28 // GEANT4 tag $Name: geant4-09-01-patch-03 $ >> 29 // 27 // ------------------------------------------- 30 // ------------------------------------------------------------ 28 // GEANT 4 class implementation file 31 // GEANT 4 class implementation file 29 // CERN Geneva Switzerland 32 // CERN Geneva Switzerland 30 // 33 // 31 // 34 // 32 // ------------ GammaRayTelAnalysisMessen 35 // ------------ GammaRayTelAnalysisMessenger ------ 33 // by R.Giannitrapani, F.Longo & G.S 36 // by R.Giannitrapani, F.Longo & G.Santin (03 dic 2000) 34 // 20.11.01 G.Santin: modified according to th 37 // 20.11.01 G.Santin: modified according to the new GammaRayTelAnalysis.cc 35 // ******************************************* 38 // ************************************************************ >> 39 #ifdef G4ANALYSIS_USE 36 40 37 #include "G4UIdirectory.hh" 41 #include "G4UIdirectory.hh" 38 #include "G4UIcmdWithAString.hh" 42 #include "G4UIcmdWithAString.hh" 39 43 40 #include "GammaRayTelAnalysisMessenger.hh" 44 #include "GammaRayTelAnalysisMessenger.hh" 41 #include "GammaRayTelAnalysis.hh" 45 #include "GammaRayTelAnalysis.hh" 42 46 43 //....oooOO0OOooo........oooOO0OOooo........oo 47 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 44 48 45 GammaRayTelAnalysisMessenger::GammaRayTelAnaly << 49 GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* analysis) 46 gammaRayTelAnalysisDir = new G4UIdirectory << 50 :gammaRayTelAnalysis(analysis) 47 gammaRayTelAnalysisDir->SetGuidance("Gamma << 51 48 << 52 { 49 histo2DModeCmd = new G4UIcmdWithAString("/ << 53 gammaRayTelAnalysisDir = new G4UIdirectory("/analysis/"); 50 histo2DModeCmd->SetGuidance("Select the mo << 54 gammaRayTelAnalysisDir->SetGuidance("GammaRayTel analysis control."); 51 histo2DModeCmd->SetGuidance("Choice: posit << 55 52 histo2DModeCmd->SetGuidance("position -> t << 56 /* 53 histo2DModeCmd->SetGuidance("strip -> the << 57 Commands for the 1D histograms (energy deposition in the last 54 histo2DModeCmd->SetParameterName("choice", << 58 TKR layer and hits distribution along the TKR) 55 histo2DModeCmd->SetDefaultValue("strip"); << 59 56 histo2DModeCmd->SetCandidates("position st << 60 The Draw command gives the possibility to draw the 1d histograms 57 histo2DModeCmd->AvailableForStates(G4State << 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); 58 } 125 } 59 126 60 //....oooOO0OOooo........oooOO0OOooo........oo 127 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 61 128 62 GammaRayTelAnalysisMessenger::~GammaRayTelAnal << 129 GammaRayTelAnalysisMessenger::~GammaRayTelAnalysisMessenger() 63 delete histo2DModeCmd; << 130 { >> 131 delete Histo1DDrawCmd; >> 132 delete Histo1DSaveCmd; >> 133 delete Histo2DDrawCmd; >> 134 delete Histo2DSaveCmd; >> 135 delete Histo2DModeCmd; 64 } 136 } 65 137 66 //....oooOO0OOooo........oooOO0OOooo........oo 138 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 67 139 68 void GammaRayTelAnalysisMessenger::SetNewValue << 140 void GammaRayTelAnalysisMessenger::SetNewValue(G4UIcommand* command,G4String newValue) 69 if (command == histo2DModeCmd) { << 141 { 70 gammaRayTelAnalysis->SetHisto2DMode(ne << 142 71 } << 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 72 } 162 } >> 163 >> 164 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... >> 165 #endif >> 166 >> 167 >> 168 >> 169 >> 170 73 171