Message: Re: successively subtracting -> memory limit Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: successively subtracting -> memory limit 

Forum: Geometry
Re: Question successively subtracting -> memory limit (Yen-Yung Chang)
Re: None Re: successively subtracting -> memory limit (Vladimir Grichine)
Date: 24 Oct, 2012
From: Yen-Yung Chang <Yen-Yung Chang>

//the mask stracture G4double Maskwidth = 26.2/2*mm; G4double Maskthickness = 0.6/2*mm; //Maskthickness = 100./2*um; G4double largeHole_width = 2.78/2*mm; //largeHole_width = 2.879999999999999999/2*mm; G4double smallHole_width = 2.568/2*mm; //smallHole_width = 2.879999999999999999/2*mm; //G4double coneAngle = 10*deg; //smallHole_width = ((largeHole_width*2.)-(Maskthickness*2.*cos(10*3.1416/180)*2.));

G4Box* MaskBody_box = new G4Box("MaskBody_box",Maskwidth,Maskwidth,Maskthickness); G4Trd* MaskHole_box = new G4Trd("MaskHole_box",largeHole_width,smallHole_width,largeHole_width,smallHole_width,Maskthickness);

const G4double pi = 3.14159265358979323846; G4RotationMatrix* RotY = new G4RotationMatrix;

RotY->rotateY(pi/-2.*rad);//inverted cone //RotY->rotateY(pi/2.*rad);//noninverted cone

Mask_solid = new G4SubtractionSolid("OpticalMask",MaskBody_box,MaskHole_box,0,G4ThreeVector(2.88*(3-3.5)*mm,2.88*(3-3.5)*mm,0.*mm));
    for (int i=1;i<=5;i++){
       for (int j=2;j<=6;j++){
            G4double pxl_PosZ = 0.0*mm;
            G4double pxl_PosX = 2.88*(i-3.5)*mm;
            G4double pxl_PosY = 2.88*(j-3.5)*mm;
            G4ThreeVector hole_pos = G4ThreeVector(pxl_PosX,pxl_PosY,pxl_PosZ);
            char numHole[4];sprintf(numHole,"%d%d",j+1+(i*8));
      Mask_solid = new G4SubtractionSolid(numHole,Mask_solid,MaskHole_box,0,hole_pos);}
        }

Mask_log = new G4LogicalVolume(Mask_solid,Aluminum,"OpticalMask",0,0,0);

      //reflective surface of the mask
      G4OpticalSurface* opMask_surf = new G4OpticalSurface("opMask_surf");
      opMask_surf->SetModel(glisur);
      opMask_surf->SetType(dielectric_metal);
      opMask_surf->SetFinish(ground);
      opMask_surf->SetPolish(0.8);
      //opMask_surf->SetSigmaAlpha(0.97);
          G4MaterialPropertiesTable* opMask_surf_MPT = new G4MaterialPropertiesTable();
          const G4int num = 5;
          G4double pp[num] = {1.*eV,2.*eV,3.*eV,4.*eV,5.*eV};
          G4double reflectivity[num] = {0.95,0.95,0.95,0.95,0.95};
          G4double efficiency[num] = {0.,0.,0.,0.,0.};
          opMask_surf_MPT->AddProperty("REFLECTIVITY",pp,reflectivity,num);
          opMask_surf_MPT->AddProperty("EFFICIENCY",pp,efficiency,num);
      opMask_surf->SetMaterialPropertiesTable(opMask_surf_MPT);

      G4LogicalSkinSurface* opMask_skin = new G4LogicalSkinSurface("opMask_skin",Mask_log,opMask_surf);

Mask_phys = new G4PVPlacement(RotY,G4ThreeVector((crystalCellx*-2)-Maskthickness,0.*mm,0.*mm),Mask_log,"hole_phys",blackBox_log,false,0);

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 None: Re: successively subtracting -> memory limit   (Vladimir Grichine - 24 Oct, 2012)
 Add Message Add Message
to: "Re: successively subtracting -> memory limit"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]