/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/EmcSim/EmcSim-00-00-46/EmcSim/BesEmcGeometry.hh

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00002 //      BESIII Object_Oreiented Simulation and Reconstruction Tool           //
00003 //---------------------------------------------------------------------------//
00004 //Descpirtion: Geometry of EMC detector 
00005 //Author: Fu Chengdong
00006 //Created: Oct 23, 2003
00007 //Comment:
00008 //---------------------------------------------------------------------------//
00009 //
00010 #ifndef BesEmcGeometry_h
00011 #define BesEmcGeometry_h 1
00012 
00013 #include "globals.hh"
00014 #include "G4ThreeVector.hh"
00015 
00016 class BesEmcConstruction;
00017 class G4VPhysicalVolume;
00018 class EmcGdmlWriter;
00019 
00020 class BesEmcGeometry
00021 {
00022 public:
00023   BesEmcGeometry();
00024   ~BesEmcGeometry();
00025   friend class BesEmcConstruction;
00026   friend class EmcGdmlWriter;
00027 public:
00028   void ReadEMCParameters();// Read EMC parameters from database
00029   void ComputeEMCParameters();// Compute derived parameters of the calorimeter
00030   void ModifyForCasing();// Compute the sizes of the naked crystals 
00031                          // and the casing
00032   void PrintEMCParameters();// Print EMC parameters
00033 public:
00034   
00035   inline void SetVerboseLevel(G4int val){ verboseLevel=val;}
00036   
00037   inline void SetBSCRmin(G4double val){ BSCRmin=val;};
00038   inline void SetBSCDz(G4double val){ BSCDz=val;};
00039   inline void SetBSCNbPhi(G4int val){BSCNbPhi=val;};
00040   inline void SetBSCNbTheta(G4int val){BSCNbTheta=val;};
00041   inline void SetBSCCrystalLength(G4double val){BSCCryLength=val;};
00042   inline void SetBSCCrystalLength1(G4double val){BSCCryLength1=val;};
00043   inline void SetBSCYFront0(G4double val){BSCYFront0=val;};
00044   inline void SetBSCYFront(G4double val){BSCYFront=val;};
00045   inline void SetBSCPosition0(G4double val){BSCPosition0=val;};
00046   inline void SetBSCPosition1(G4double val){BSCPosition1=val;};
00047   inline void SetBSCAngleRotat(G4double val){BSCAngleRotat=val;};
00048 
00049   void SetCasingThickness(G4ThreeVector);
00050 
00051 public:
00052   G4int GetVerboseLevel() {return verboseLevel;};
00053 
00054   G4double GetBSCRmin()             {return BSCRmin;};
00055   G4double GetBSCDz()              {return BSCDz;};
00056   G4int GetBSCNbPhi()              {return BSCNbPhi;};
00057   G4int GetBSCNbTheta()            {return BSCNbTheta;};
00058   G4double GetBSCCryLength()       {return BSCCryLength;};
00059   G4double GetBSCCryLength1()       {return BSCCryLength1;};
00060   G4double GetBSCYFront()          {return BSCYFront;};
00061   G4double GetBSCYFront0()          {return BSCYFront0;};
00062   G4double GetBSCPositon0()          {return BSCPosition0;};
00063   G4double GetBSCPositon1()          {return BSCPosition1;};
00064   G4double GetBSCAngleRotat()          {return BSCAngleRotat;};
00065   
00066   G4ThreeVector GetCasingThickness()   {return G4ThreeVector(fTyvekThickness,fAlThickness,fMylarThickness);};
00067 
00068   G4double GetXPosition(G4int NbCrystal);
00069   G4double GetYPosition(G4int NbCrystal);
00070   G4double GetZPosition(G4int NbCrystal);
00071   G4double GetThetaPosition(G4int NbCrystal);
00072   G4double GetZHalfLength(G4int NbCrystal);
00073   G4double GetThetaAxis(G4int NbCrystal);
00074   G4double GetPhiAxis(G4int NbCrystal);
00075   G4double GetYHalfLength1(G4int NbCrystal);
00076   G4double GetXHalfLength1(G4int NbCrystal);
00077   G4double GetXHalfLength2(G4int NbCrystal);
00078   G4double GetTanAlpha1(G4int NbCrystal);
00079   G4double GetYHalfLength2(G4int NbCrystal);
00080   G4double GetXHalfLength3(G4int NbCrystal);
00081   G4double GetXHalfLength4(G4int NbCrystal);
00082   G4double GetTanAlpha2(G4int NbCrystal);
00083   G4VPhysicalVolume* GetPhysiBSCCrystal(G4int NbCrystal);
00084 
00085   G4double GetRearBoxLength(G4int NbCrystal);
00086   G4double GetRearBoxDz(G4int NbCrystal);
00087   G4double GetRearBoxPosX(G4int NbCrystal);
00088   G4double GetRearBoxPosY(G4int NbCrystal);
00089   G4double GetRearBoxPosZ(G4int NbCrystal);
00090   G4double GetRearBoxPosTheta(G4int NbCrystal);
00091 
00092 private:
00093   G4int              verboseLevel;
00094 
00095   G4double           BSCCryLength;
00096   G4double           BSCCryLength1;
00097   G4double           BSCYFront0;
00098   G4double           BSCYFront;
00099   G4double           BSCYFront1;
00100   G4double           BSCPosition0;
00101   G4double           BSCPosition1;
00102   
00103   G4int              BSCNbPhi;
00104   G4int              BSCNbTheta;
00105 
00106   G4double           BSCPhiRmin;
00107   G4double           BSCPhiRmax;
00108   G4double           BSCPhiDz;
00109   G4double           BSCPhiSphi;
00110   G4double           BSCPhiDphi;
00111   G4double           BSCAngleRotat;
00112   G4double           BSCRmin;
00113   G4double           BSCRmax;
00114   G4double           BSCDz;
00115 
00116   G4double           BSCRmin1;
00117   G4double           BSCRmax1;
00118   G4double           BSCRmin2;
00119   G4double           BSCRmax2;
00120   G4double           BSCDz1;
00121   
00122   G4double           zHalfLength[150];
00123   G4double           thetaAxis[150];
00124   G4double           phiAxis[150];
00125   G4double           yHalfLength1[150];
00126   G4double           xHalfLength1[150];
00127   G4double           xHalfLength2[150];
00128   G4double           tanAlpha1[150];
00129   G4double           yHalfLength2[150];
00130   G4double           xHalfLength3[150];
00131   G4double           xHalfLength4[150];
00132   G4double           tanAlpha2[150];
00133   G4double           thetaPosition[150];
00134   G4double           xPosition[150];
00135   G4double           yPosition[150];
00136   G4double           zPosition[150];
00137 
00138   G4VPhysicalVolume* physiBSCCrystal[50];
00139 
00140   G4double           fTyvekThickness;
00141   G4double           fAlThickness;
00142   G4double           fMylarThickness;
00143 
00145   //other substance on the rear face of crystal
00146   G4double            rearBoxLength;
00147   G4double            rearBoxDz;
00148   G4double            rearBoxPosX[150];
00149   G4double            rearBoxPosY[150];
00150   G4double            rearBoxPosZ[150];
00151 
00152   //tyvek casing
00153   G4double            rearCasingThickness;
00154 
00155   //organic glass
00156   G4double            orgGlassLengthX;
00157   G4double            orgGlassLengthY;
00158   G4double            orgGlassLengthZ;
00159 
00160   //photodiode
00161   G4double            PDLengthX;
00162   G4double            PDLengthY;
00163   G4double            PDLengthZ;
00164 
00165   //Al plate
00166   G4double            AlPlateDz;
00167 
00168   //preamplifier box
00169   G4double            PABoxDz;
00170   G4double            PABoxThickness;
00171 
00172   //stainless steel plate for hanging the crystal
00173   G4double            HangingPlateDz;
00174 
00175   G4double            OCGirderRmin1[22];
00176   G4double            OCGirderRmin2[22];
00177   G4double            OCGirderDz[22];
00178   G4double            OCGirderAngle; 
00179   G4double            OCGirderPosZ[22];
00180 
00181   //cable
00182   G4double            cableLength[22];
00183   G4double            cableDr;
00184   G4double            cablePosX[22];
00185   G4double            cablePosY[22];
00186   G4double            cablePosZ[22];
00187 
00188   //water pipe
00189   G4double            waterPipeDr;
00190   G4double            waterPipeThickness;
00191 
00193   //barrel support frame
00194   G4double            SPBarThickness;
00195   G4double            SPBarThickness1;
00196   G4double            SPBarwidth;
00197   G4double            SPBarDphi;
00198   G4double            RFBarThickness;
00199   G4int               RFBarHoleNb;
00200   G4double            RFBarHoleDphi;
00201   G4double            RFBarHoleDz;
00202 
00203   //end ring
00204   G4double            EndRingDz;
00205   G4double            EndRingDr;
00206   G4double            EndRingRmin;
00207 
00208   //taper ring
00209   G4double            TaperRingThickness1;
00210   G4double            TaperRingThickness2;
00211   G4double            TaperRingThickness3;
00212   G4double            TaperRingTheta;
00213   G4double            TaperRingRmin1;
00214   G4double            TaperRingRmin2;
00215   G4double            TaperRingDr;
00216   G4double            TaperRingDz;
00217   G4double            TaperRingInnerLength;
00218   G4double            TaperRingOuterLength;
00219   G4double            TaperRingOuterLength1;
00220 
00221 };
00222 #endif
00223 
00224 

Generated on Tue Nov 29 23:14:25 2016 for BOSS_7.0.2 by  doxygen 1.4.7