/home/cern/BDSIM_new/src/BDSDetectorMessenger.cc

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 24.7.2002
00004    Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 */
00006 
00007 // This code implementation is the intellectual property of
00008 // the GEANT4 collaboration.
00009 //
00010 // By copying, distributing or modifying the Program (or any work
00011 // based on the Program) you indicate your acceptance of this statement,
00012 // and all its terms.
00013 //
00014 // $Id: BDSDetectorMessenger.cc,v 1.1 2005/01/22 16:42:31 agapov Exp $
00015 // GEANT4 tag $Name:  $
00016 //
00017 // 
00018 
00019 //=================================================================
00020 //=================================================================
00021 
00022 #include "BDSDetectorMessenger.hh"
00023 
00024 #include "BDSDetectorConstruction.hh"
00025 #include "G4UIdirectory.hh"
00026 #include "G4UIcmdWithAString.hh"
00027 #include "G4UIcmdWithAnInteger.hh"
00028 #include "G4UIcmdWithADoubleAndUnit.hh"
00029 #include "G4UIcmdWithoutParameter.hh"
00030 
00031 //=================================================================
00032 
00033 BDSDetectorMessenger::BDSDetectorMessenger(BDSDetectorConstruction * BDSDet)
00034 :BDSDetector(BDSDet)
00035 { 
00036   /*
00037   BDSdetDir = new G4UIdirectory("/quad/");
00038   BDSdetDir->SetGuidance("BDS detector control.");
00039   */  
00040   //  AbsMaterCmd = new G4UIcmdWithAString("/quad/setAbsMat",this);
00041   // AbsMaterCmd->SetGuidance("Select Material of the Absorber.");
00042   //AbsMaterCmd->SetParameterName("choice",false);
00043   //AbsMaterCmd->AvailableForStates(Idle);
00044   
00045   //  GapMaterCmd = new G4UIcmdWithAString("/quad/setGapMat",this);
00046   //  GapMaterCmd->SetGuidance("Select Material of the Gap.");
00047   //  GapMaterCmd->SetParameterName("choice",false);
00048   //  GapMaterCmd->AvailableForStates(Idle);
00049     
00050   //  AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/quad/setAbsThick",this);
00051   //  AbsThickCmd->SetGuidance("Set Thickness of the Absorber");
00052   //  AbsThickCmd->SetParameterName("Size",false);
00053   //  AbsThickCmd->SetRange("Size>=0.");
00054   //  AbsThickCmd->SetUnitCategory("Length");
00055   //  AbsThickCmd->AvailableForStates(Idle);
00056   
00057   //  GapThickCmd = new G4UIcmdWithADoubleAndUnit("/quad/setGapThick",this);
00058   //  GapThickCmd->SetGuidance("Set Thickness of the Gap");
00059   //  GapThickCmd->SetParameterName("Size",false);
00060   //  GapThickCmd->SetRange("Size>=0.");
00061   //  GapThickCmd->SetUnitCategory("Length");  
00062   //  GapThickCmd->AvailableForStates(Idle);
00063   
00064   //  SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/quad/setSizeYZ",this);
00065   //  SizeYZCmd->SetGuidance("Set tranverse size of the quadimeter");
00066   //  SizeYZCmd->SetParameterName("Size",false);
00067   //  SizeYZCmd->SetRange("Size>0.");
00068   //  SizeYZCmd->SetUnitCategory("Length");    
00069   //  SizeYZCmd->AvailableForStates(Idle);
00070   
00071   //  NbLayersCmd = new G4UIcmdWithAnInteger("/quad/setNbOfLayers",this);
00072   //  NbLayersCmd->SetGuidance("Set number of layers.");
00073   //  NbLayersCmd->SetParameterName("NbLayers",false);
00074   //  NbLayersCmd->SetRange("NbLayers>0 && NbLayers<500");
00075   //  NbLayersCmd->AvailableForStates(Idle);
00076 
00077   //  UpdateCmd = new G4UIcmdWithoutParameter("/quad/update",this);
00078   //  UpdateCmd->SetGuidance("Update quadimeter geometry.");
00079   //  UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" ");
00080   //  UpdateCmd->SetGuidance("if you changed geometrical value(s).");
00081   //  UpdateCmd->AvailableForStates(Idle);
00082   /*
00083   MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/quad/setField",this);  
00084   MagFieldCmd->SetGuidance("Define magnetic field.");
00085   MagFieldCmd->SetGuidance("Magnetic field will be in Y direction.");
00086   MagFieldCmd->SetParameterName("By",false);
00087   MagFieldCmd->SetUnitCategory("Magnetic flux density");
00088   MagFieldCmd->AvailableForStates(Idle);  
00089   */
00090 }
00091 
00092 //=================================================================
00093 
00094 BDSDetectorMessenger::~BDSDetectorMessenger()
00095 {
00096   //  delete NbLayersCmd;
00097   //  delete AbsMaterCmd; delete GapMaterCmd;
00098   //  delete AbsThickCmd; delete GapThickCmd;
00099   //  delete SizeYZCmd;   delete UpdateCmd;
00100   /*
00101   delete MagFieldCmd;
00102   delete BDSdetDir;
00103   */
00104 }
00105 
00106 //=================================================================
00107 
00108 void BDSDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
00109 { 
00110   //  if( command == AbsMaterCmd )
00111   //   { BDSDetector->SetAbsorberMaterial(newValue);}
00112    
00113   //  if( command == GapMaterCmd )
00114   //   { BDSDetector->SetGapMaterial(newValue);}
00115   
00116   //  if( command == AbsThickCmd )
00117   //   { BDSDetector->SetAbsorberThickness(AbsThickCmd->GetNewDoubleValue(newValue));}
00118    
00119   //  if( command == GapThickCmd )
00120   //   { BDSDetector->SetGapThickness(GapThickCmd->GetNewDoubleValue(newValue));}
00121    
00122   //  if( command == SizeYZCmd )
00123   //   { BDSDetector->SetQuadSizeYZ(SizeYZCmd->GetNewDoubleValue(newValue));}
00124    
00125   //  if( command == NbLayersCmd )
00126   //   { BDSDetector->SetNbOfLayers(NbLayersCmd->GetNewIntValue(newValue));}
00127   
00128   //  if( command == UpdateCmd )
00129   //   { BDSDetector->UpdateGeometry(); }
00130 
00131   /*
00132   if( command == MagFieldCmd )
00133    { BDSDetector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));}
00134   */
00135 }
00136 
00137 //=================================================================

Generated on Wed Mar 5 17:25:22 2008 for BDSIM by  doxygen 1.5.3