musrDetectorConstruction.hh

Go to the documentation of this file.
00001 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00002 
00003 #ifndef musrDetectorConstruction_h
00004 #define musrDetectorConstruction_h 1
00005 
00006 #include "globals.hh"
00007 #include "G4VUserDetectorConstruction.hh"
00008 
00009  
00010 class G4Tubs;
00011 class G4Box;
00012 class G4Cons;
00013 class G4Trd;
00014 class G4LogicalVolume;
00015 class G4VPhysicalVolume;
00016 class G4Material;
00017 class musrDetectorMessenger;
00018 class musrTrackerSD;
00019 class musrShieldSD;
00020 class musrIForwardSD;
00021 class musrIBackwardSD;
00022  
00023 
00024 
00025 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00026 
00027 class musrDetectorConstruction : public G4VUserDetectorConstruction
00028 {
00029   public:
00030   
00031      musrDetectorConstruction();
00032     ~musrDetectorConstruction();
00033 
00034   public:
00035   
00036      G4VPhysicalVolume* Construct();
00037 
00038      void SetTargetPos(G4double);
00039      void SetDetSep(G4double);
00040      void UpdateGeometry();
00041   void SetRadialNumber(G4int);
00042   void SetLengthNumber(G4int);
00043   void SetLargeRadius(G4double);
00044   void SetSmallRadius(G4double);
00045   void SetArrayLength(G4double);
00046   void SetDetectorThickness(G4double);
00047   void SetTargetMaterial (G4String);
00048   void SetBeampipeClearance(G4double);
00049   void SetCollimatorRadius(G4double);
00050   void SetTargetThickness(G4double);
00051    
00052      const 
00053      G4double GetTargetFullLength()  {return fTargetLength;};
00054      G4double GetWorldFullLength()   {return fWorldLength;}; 
00055      
00056      void SetMagField(G4double);
00057      void SetUniformMagField(G4double);
00058 
00059   private:
00060 
00061      G4Box*             solidWorld;    // pointer to the solid envelope 
00062      G4LogicalVolume*   logicWorld;    // pointer to the logical envelope
00063      G4VPhysicalVolume* physiWorld;    // pointer to the physical envelope
00064      
00065      G4Tubs*            solidBeampipe;   // pointer to the solid Target
00066      G4LogicalVolume*   logicBeampipe;   // pointer to the logical Target
00067      G4VPhysicalVolume* physiBeampipe;   // pointer to the physical Target
00068 
00069      G4Tubs*            solidBeampipeShell;   // pointer to the solid Target
00070      G4LogicalVolume*   logicBeampipeShell;   // pointer to the logical Target
00071      G4VPhysicalVolume* physiBeampipeShell;   // pointer to the physical Target
00072 
00073 
00074 
00075      G4Tubs*            solidCollimator;   // pointer to the solid Target
00076      G4LogicalVolume*   logicCollimator;   // pointer to the logical Target
00077      G4VPhysicalVolume* physiCollimator;   // pointer to the physical Target
00078 
00079 
00080 
00081      G4Tubs*            solidTarget;   // pointer to the solid Target
00082      G4LogicalVolume*   logicTarget;   // pointer to the logical Target
00083      G4VPhysicalVolume* physiTarget;   // pointer to the physical Target
00084 
00085      G4Tubs*            solidTargetSpace;   // pointer to the solid Target
00086      G4LogicalVolume*   logicTargetSpace;   // pointer to the logical Target
00087      G4VPhysicalVolume* physiTargetSpace;   // pointer to the physical Target
00088 
00089                
00090      G4Tubs*            solidFDetector;// pointer to the solid detector
00091      G4LogicalVolume*   logicForward;  // pointer to the logical detector
00092   G4VPhysicalVolume* physiForward;  // pointer to the physical detector
00093 
00094      G4Tubs*            solidBDetector;// pointer to the solid detector
00095      G4LogicalVolume*   logicBackward;  // pointer to the logical detector
00096   G4VPhysicalVolume* physiBackward;  // pointer to the physical detector
00097  
00098       G4Trd*            solidFPixel;
00099       G4LogicalVolume*  logicFPixel;
00100       G4Trd*            solidBPixel;
00101       G4LogicalVolume*  logicBPixel;
00102       G4VPhysicalVolume* physiBPixel;
00103       G4VPhysicalVolume* physiFPixel;
00104 
00105 
00106 
00107 
00108      G4Tubs*            solidShield;// pointer to the solid detector
00109      G4LogicalVolume*   logicShield;  // pointer to the logical detector
00110      G4VPhysicalVolume* physiShield;  // pointer to the physical detector
00111 
00112      G4Tubs*            solidShield2;// pointer to the solid detector
00113      G4LogicalVolume*   logicShield2;  // pointer to the logical detector
00114      G4VPhysicalVolume* physiShield2;  // pointer to the physical detector
00115 
00116      G4Tubs*            solidShield3;// pointer to the solid detector
00117      G4LogicalVolume*   logicShield3;  // pointer to the logical detector
00118      G4VPhysicalVolume* physiShield3;  // pointer to the physical detector
00119 
00120      G4Material*         TargetMater;  // pointer to the target  material
00121      G4Material*         VacMater;  // pointer to the target  material
00122      G4Material*         DetMater;  // pointer to the target  material
00123      G4Material*         PipeMater;  // pointer to the target  material
00124      G4Material*         CollimatorMater;  // pointer to the target  material
00125      G4Material*         AirMater;  // pointer to the target  material
00126 
00127 
00128      musrTrackerSD* aTrackerSD;  
00129      musrShieldSD* aShieldSD;  
00130      musrIForwardSD* aIForwardSD;
00131      musrIBackwardSD* aIBackwardSD;
00132 
00133      
00134      musrDetectorMessenger* detectorMessenger;  // pointer to the Messenger
00135 
00136 
00137      G4double fWorldLength;            // Full length of the world volume
00138      G4double fTargetLength;           // Full length of Target
00139      G4double TargetPos;
00140      G4int  NbOfRadialPixels;
00141      G4int  NbOfLengthPixels;       
00142      G4double ArrayLength;
00143      G4double LRadius;
00144      G4double SRadius;
00145   G4double fDetectorSeparation;
00146   G4double fDetectorThickness;
00147   G4double fBeampipeLength;
00148   G4double fCollimatorLength;
00149   G4double CollimatorRadius;
00150   G4double BeampipeClearance;
00151   G4double OuterBeampipeRadius;
00152   G4double ShieldClearance;
00153 
00154 private:
00155      void DefineMaterials();
00156      G4VPhysicalVolume* ConstructCalorimeter();     
00157 
00158 
00159 };
00160 
00161 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00162 
00163 #endif

Generated on Mon Mar 27 12:19:54 2006 for MUSR by  doxygen 1.4.6