musrDetectorConstruction Class Reference

#include <musrDetectorConstruction.hh>

List of all members.

Public Member Functions

 musrDetectorConstruction ()
 ~musrDetectorConstruction ()
G4VPhysicalVolume * Construct ()
void SetTargetPos (G4double)
void SetDetSep (G4double)
void UpdateGeometry ()
void SetRadialNumber (G4int)
void SetLengthNumber (G4int)
void SetLargeRadius (G4double)
void SetSmallRadius (G4double)
void SetArrayLength (G4double)
void SetDetectorThickness (G4double)
void SetTargetMaterial (G4String)
void SetBeampipeClearance (G4double)
void SetCollimatorRadius (G4double)
void SetTargetThickness (G4double)
const G4double GetTargetFullLength ()
G4double GetWorldFullLength ()
void SetMagField (G4double)
void SetUniformMagField (G4double)


Detailed Description

Definition at line 27 of file musrDetectorConstruction.hh.


Constructor & Destructor Documentation

musrDetectorConstruction::musrDetectorConstruction  ) 
 

Definition at line 43 of file musrDetectorConstruction.cc.

References SetTargetMaterial().

00044 :solidWorld(0),  logicWorld(0),  physiWorld(0),
00045  solidTarget(0), logicTarget(0), physiTarget(0), 
00046  solidFDetector(0), logicForward(0), physiForward(0),
00047  solidBDetector(0), logicBackward(0), physiBackward(0),
00048  TargetMater(0),aTrackerSD(0),aShieldSD(0),aIForwardSD(0),
00049  aIBackwardSD(0)
00050 {  
00051 
00052   //Set the defaults
00053   fWorldLength= 3.5*m;
00054   fTargetLength  = 0.5 * mm;           
00055 
00056   TargetPos=0*mm;
00057   ArrayLength=150*mm;
00058   LRadius=150*mm;
00059   SRadius=5*mm;
00060   NbOfRadialPixels=8;
00061   NbOfLengthPixels=8;       
00062   fDetectorSeparation=10*cm;
00063   fDetectorThickness=1*mm;
00064   fCollimatorLength=50*mm;
00065 
00066   CollimatorRadius=25.*mm;
00067   BeampipeClearance = 30*cm;
00068   OuterBeampipeRadius = 10*cm;
00069 
00070   ShieldClearance = 5*cm;
00071 
00072   DefineMaterials();
00073 
00074   SetTargetMaterial("Air");
00075 
00076 
00077 
00078   detectorMessenger = new musrDetectorMessenger(this);
00079 }

musrDetectorConstruction::~musrDetectorConstruction  ) 
 

Definition at line 83 of file musrDetectorConstruction.cc.

00084 {
00085   delete detectorMessenger;             
00086 }


Member Function Documentation

G4VPhysicalVolume * musrDetectorConstruction::Construct  ) 
 

Definition at line 90 of file musrDetectorConstruction.cc.

Referenced by UpdateGeometry().

00091 {
00092   return ConstructCalorimeter();
00093 }

const G4double musrDetectorConstruction::GetTargetFullLength  )  [inline]
 

Definition at line 53 of file musrDetectorConstruction.hh.

00053 {return fTargetLength;};

G4double musrDetectorConstruction::GetWorldFullLength  )  [inline]
 

Definition at line 54 of file musrDetectorConstruction.hh.

00054 {return fWorldLength;}; 

void musrDetectorConstruction::SetArrayLength G4double   ) 
 

Definition at line 589 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00590 {
00591   ArrayLength=val;
00592 G4cout<< "Array length set to "<<ArrayLength <<"mm" <<endl;
00593 }

void musrDetectorConstruction::SetBeampipeClearance G4double   ) 
 

Definition at line 601 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00602 {
00603   BeampipeClearance=val;
00604 G4cout<< "Beampipe clearance set to "<< BeampipeClearance <<"mm" <<endl;
00605 }

void musrDetectorConstruction::SetCollimatorRadius G4double   ) 
 

Definition at line 607 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00608 {
00609   CollimatorRadius=val;
00610 G4cout<< "Collimator radius set to "<< CollimatorRadius <<"mm" <<endl;
00611 }

void musrDetectorConstruction::SetDetectorThickness G4double   ) 
 

Definition at line 595 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00596 {
00597   fDetectorThickness=val;
00598 G4cout<< "Detector Thickness set to "<< fDetectorThickness <<"mm" <<endl;
00599 }

void musrDetectorConstruction::SetDetSep G4double   ) 
 

Definition at line 583 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00584 {
00585   fDetectorSeparation=val;
00586 G4cout<< "Detector separation set to "<<fDetectorSeparation  <<"mm" <<endl;
00587 }

void musrDetectorConstruction::SetLargeRadius G4double   ) 
 

Definition at line 563 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00564 {
00565   LRadius = val;
00566 G4cout<< "Large Radius set to "<<LRadius  <<"mm" <<endl;
00567 }

void musrDetectorConstruction::SetLengthNumber G4int   ) 
 

Definition at line 556 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00557 {
00558   NbOfLengthPixels = val;
00559 G4cout<< "Number of Length pixels set to "<< NbOfLengthPixels <<endl;
00560 }

void musrDetectorConstruction::SetMagField G4double   ) 
 

Definition at line 645 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00646 {
00647 
00648 //------------ Magnetic field from file ----------------------------
00649       G4FieldManager   *pFieldMgr;
00650       G4MagneticField* musrField= new musrTabulatedField3D("fieldprofiles/input.dat", fieldValue);
00651       pFieldMgr=G4TransportationManager::GetTransportationManager()->GetFieldManager();
00652 
00653       G4Mag_SpinEqRhs *Mag_SpinEqRhs;
00654       G4MagIntegratorStepper* pStepper;
00655 
00656       Mag_SpinEqRhs = new G4Mag_SpinEqRhs(musrField);
00657       pStepper = new G4ClassicalRK4(Mag_SpinEqRhs,12);
00658       G4cout<< "DeltaStep "<<pFieldMgr->GetDeltaOneStep()/mm <<"mm" <<endl;
00659  
00660       G4ChordFinder *pChordFinder = new G4ChordFinder(musrField,0.01*mm,pStepper);
00661       pFieldMgr->SetChordFinder( pChordFinder );
00662       pFieldMgr->SetDetectorField(musrField);
00663 }

void musrDetectorConstruction::SetRadialNumber G4int   ) 
 

Definition at line 550 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00551 {
00552   NbOfRadialPixels = val;
00553 G4cout<< "Number of radial pixels set to "<< NbOfRadialPixels <<endl;
00554 }

void musrDetectorConstruction::SetSmallRadius G4double   ) 
 

Definition at line 569 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00570 {
00571   SRadius = val;
00572 G4cout<< "Small Radius set to "<<SRadius  <<"mm" <<endl;
00573 }

void musrDetectorConstruction::SetTargetMaterial G4String   ) 
 

Definition at line 536 of file musrDetectorConstruction.cc.

Referenced by musrDetectorConstruction(), and musrDetectorMessenger::SetNewValue().

00537 {
00538   // search the material by its name 
00539   G4Material* pttoMaterial = G4Material::GetMaterial(materialName);  
00540   if (pttoMaterial) {TargetMater = pttoMaterial;}   
00541 G4cout<< "Target material set to "<< TargetMater <<endl;          
00542 }

void musrDetectorConstruction::SetTargetPos G4double   ) 
 

Definition at line 576 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00577 {
00578   TargetPos = val;
00579 G4cout<< "Target Position set to "<<TargetPos  <<"mm" <<endl;
00580 }

void musrDetectorConstruction::SetTargetThickness G4double   ) 
 

Definition at line 544 of file musrDetectorConstruction.cc.

Referenced by musrDetectorMessenger::SetNewValue().

00545 {
00546   fTargetLength = val;
00547 G4cout<< "TargetThickness set to "<<fTargetLength  <<"mm" <<endl;
00548 }

void musrDetectorConstruction::SetUniformMagField G4double   ) 
 

Definition at line 626 of file musrDetectorConstruction.cc.

References musrMagneticField::SetFieldValue().

Referenced by musrDetectorMessenger::SetNewValue().

00627 {     // If we want a uniform field along z      
00628 
00629       G4FieldManager   *pFieldMgr;
00630       musrMagneticField*  musrUniformField= new musrMagneticField();
00631           musrUniformField->SetFieldValue(fieldValue);
00632 
00633       pFieldMgr=G4TransportationManager::GetTransportationManager()->GetFieldManager();
00634       G4Mag_SpinEqRhs *Mag_SpinEqRhs;
00635       G4MagIntegratorStepper* pStepper;
00636       Mag_SpinEqRhs = new G4Mag_SpinEqRhs(musrUniformField);
00637       pStepper = new G4ClassicalRK4(Mag_SpinEqRhs,12);
00638       G4cout<< "DeltaStep "<<pFieldMgr->GetDeltaOneStep()/mm <<"mm" <<endl;
00639       G4ChordFinder *pChordFinder = new G4ChordFinder(musrUniformField,0.01*mm,pStepper);
00640       pFieldMgr->SetChordFinder( pChordFinder );
00641       pFieldMgr->SetDetectorField(musrUniformField);
00642 }

void musrDetectorConstruction::UpdateGeometry  ) 
 

Definition at line 618 of file musrDetectorConstruction.cc.

References Construct().

Referenced by musrDetectorMessenger::SetNewValue().

00619 {
00620   G4RunManager::GetRunManager()->DefineWorldVolume(Construct());
00621 }


The documentation for this class was generated from the following files:
Generated on Mon Mar 27 12:19:54 2006 for MUSR by  doxygen 1.4.6