Ignore:
Timestamp:
Dec 22, 2010, 3:52:27 PM (13 years ago)
Author:
garnier
Message:

geant4 tag 9.4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/geometry/solids/test/OpticalEscape/src/AXPETDetectorConstruction.cc

    r1316 r1347  
    2424// ********************************************************************
    2525//
    26 // $Id: AXPETDetectorConstruction.cc,v 1.1 2008/09/03 13:34:03 gcosmo Exp $
     26// $Id: AXPETDetectorConstruction.cc,v 1.2 2010/11/16 13:35:53 tnikitin Exp $
    2727// ------------------------------------------------------------
    2828// Geant4 class implementation file
     
    5252#include "G4Trd.hh"
    5353#include "G4Tet.hh"
     54#include "G4GenericTrap.hh"
     55#include "G4TessellatedSolid.hh"
     56#include "G4ExtrudedSolid.hh"
    5457
    5558#include "G4Polycone.hh"
     
    6063#include "G4TwistedTrd.hh"
    6164#include "G4TwistedTrap.hh"
     65
     66#include "G4TwoVector.hh"
     67#include "G4TriangularFacet.hh"
     68#include "G4QuadrangularFacet.hh"
    6269
    6370#include "G4BooleanSolid.hh"
     
    488495  else if ( val == "Tet" )
    489496  {
    490 
    491       G4ThreeVector pzero(0,0,0);
    492       G4ThreeVector pnt1(1.,0.,0.),pnt2(0,1.,0.), pnt3(0,0.,1.);
    493       G4Tet   t1( "aTet", pzero, pnt1, pnt2, pnt3);
     497    G4ThreeVector anchor = G4ThreeVector(  0,    0, 0);
     498    G4ThreeVector     p2 = G4ThreeVector(1.0,  0.5, 0);
     499    G4ThreeVector     p3 = G4ThreeVector(0.5,  1.0, 0);
     500    G4ThreeVector     p4 = G4ThreeVector(0.5,  0.5, 1.0);
     501   
     502    aVolume = new G4Tet("aTet",anchor,p2,p3,p4);
    494503  }
    495504  else if ( val == "Trap")
     
    539548
    540549  }
     550
     551 else if (val == "TwistedBox")
     552  {
     553    aVolume = new G4TwistedBox("aTwistedBox",40*deg,0.5,1.0,1.5);
     554  }
     555  else if (val == "TwistedTrd")
     556  {
     557    aVolume = new G4TwistedTrd("aTwistedTrd",0.5,1.0,0.8,1.5,1.8,20*deg);
     558  }
     559  else if (val == "TwistedTrap")
     560  {
     561    aVolume = new G4TwistedTrap("aTwistedTrap",40*deg,0.5,1.0,0.8,1.5);
     562  }
     563  else if ( val == "TwistedTrap2")
     564  {
     565    aVolume = new G4TwistedTrap("aTwistedTrap2",
     566                                   20*deg,    // twist angle
     567                                   0.80,         // half z length
     568                                   10*deg,      // direction between end planes
     569                                   40*deg,        // defined by polar and azimutal angles.
     570                                   0.8,        // half y length at -pDz
     571                                   1.1,        // half x length at -pDz,-pDy
     572                                   1.6,        // half x length at -pDz,+pDy
     573                                   0.8,        // half y length at +pDz
     574                                   1.1,         // half x length at +pDz,-pDy
     575                                   1.6,        // half x length at +pDz,+pDy
     576                                   -50*deg        // tilt angle at +pDz
     577                                   ) ;
     578  }
     579  else if ( val == "TwistedTubs")
     580  {
     581    aVolume = new G4TwistedTubs("aTwistedTubs",10.*deg,1.0,2.,4.,171.*deg);
     582
     583  }
     584 else if (val == "GenericTrap" ){
     585   std::vector<G4TwoVector> vertices;
     586   vertices.push_back(G4TwoVector( -4.5, -4.5));
     587   vertices.push_back(G4TwoVector( -4.5,  4.5));
     588   vertices.push_back(G4TwoVector(  4.5,  4.5));
     589   vertices.push_back(G4TwoVector(  4.5, -4.5));
     590   vertices.push_back(G4TwoVector( -3.5, -3.5));
     591   vertices.push_back(G4TwoVector( -3.5,  3.5));
     592   vertices.push_back(G4TwoVector(  3.5,  3.5));
     593   vertices.push_back(G4TwoVector(  3.5, -2.5));     
     594   aVolume = new G4GenericTrap("aGenTrd",4.,vertices);
     595  }
     596else if(val == "TessellatedSolid")
     597  {
     598    G4double targetSize = 2.;
     599    G4TessellatedSolid* aVolume1 = new G4TessellatedSolid("aTessellatedSolid");
     600    G4TriangularFacet *facet1 = new
     601    G4TriangularFacet (G4ThreeVector(-targetSize,-targetSize,        0.0),
     602                     G4ThreeVector(+targetSize,-targetSize,        0.0),
     603                     G4ThreeVector(        0.0,        0.0,+targetSize),
     604                     ABSOLUTE);
     605    G4TriangularFacet *facet2 = new
     606    G4TriangularFacet (G4ThreeVector(+targetSize,-targetSize,        0.0),
     607                     G4ThreeVector(+targetSize,+targetSize,        0.0),
     608                     G4ThreeVector(        0.0,        0.0,+targetSize),
     609                     ABSOLUTE);
     610    G4TriangularFacet *facet3 = new
     611    G4TriangularFacet (G4ThreeVector(+targetSize,+targetSize,        0.0),
     612                     G4ThreeVector(-targetSize,+targetSize,        0.0),
     613                     G4ThreeVector(        0.0,        0.0,+targetSize),
     614                     ABSOLUTE);
     615    G4TriangularFacet *facet4 = new
     616    G4TriangularFacet (G4ThreeVector(-targetSize,+targetSize,        0.0),
     617                     G4ThreeVector(-targetSize,-targetSize,        0.0),
     618                     G4ThreeVector(        0.0,        0.0,+targetSize),
     619                     ABSOLUTE);
     620    G4QuadrangularFacet *facet5 = new
     621    G4QuadrangularFacet (G4ThreeVector(-targetSize,-targetSize,        0.0),
     622                     G4ThreeVector(-targetSize,+targetSize,        0.0),
     623                     G4ThreeVector(+targetSize,+targetSize,        0.0),
     624                     G4ThreeVector(+targetSize,-targetSize,        0.0),
     625                     ABSOLUTE);
     626
     627    aVolume1->AddFacet((G4VFacet*) facet1);
     628    aVolume1->AddFacet((G4VFacet*) facet2);
     629    aVolume1->AddFacet((G4VFacet*) facet3);
     630    aVolume1->AddFacet((G4VFacet*) facet4);
     631    aVolume1->AddFacet((G4VFacet*) facet5);
     632 
     633    aVolume1->SetSolidClosed(true);
     634
     635    aVolume = aVolume1;
     636
     637  }
     638  else if (val == "ExtrudedSolid")
     639  {
     640   std::vector<G4TwoVector> polygon;
     641   polygon.push_back(G4TwoVector(-3., -3.0));
     642   polygon.push_back(G4TwoVector(-3.,  3.0));
     643   polygon.push_back(G4TwoVector( 3.,  3.0));
     644   polygon.push_back(G4TwoVector( 3., -3.0));
     645   polygon.push_back(G4TwoVector( 1.5, -3.0));
     646   polygon.push_back(G4TwoVector( 1.5,  1.5));
     647   polygon.push_back(G4TwoVector(-1.5,  1.5));
     648   polygon.push_back(G4TwoVector(-1.5, -3.0));
     649 
     650   std::vector<G4ExtrudedSolid::ZSection> zsections;
     651   zsections.push_back(G4ExtrudedSolid::ZSection(-4.0, G4TwoVector(-2.0, 1.0), 1.5));
     652   zsections.push_back(G4ExtrudedSolid::ZSection( 1.0, G4TwoVector(  0,  0), 0.5));
     653   zsections.push_back(G4ExtrudedSolid::ZSection( 1.5, G4TwoVector(  0,  0), 0.7));
     654   zsections.push_back(G4ExtrudedSolid::ZSection( 4.0, G4TwoVector( 2.0, 2.0), 0.9));
     655
     656   aVolume = new G4ExtrudedSolid("aExtrudedSolid", polygon, zsections);
     657  }
     658
     659
    541660  else
    542661    { G4cout <<"DetectorConstruction tried to select "<<val<<G4endl;
Note: See TracChangeset for help on using the changeset viewer.