/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/src/BDSLensFacet.cc

00001 #include "BDSGlobalConstants.hh" 
00002 #include "BDSLensFacet.hh"
00003 #include "BDSMaterials.hh"
00004 #include "G4VisAttributes.hh"
00005 #include "G4LogicalVolume.hh"
00006 #include "G4VPhysicalVolume.hh"
00007 #include "G4UserLimits.hh"
00008 
00009 #include "G4UserLimits.hh"
00010 #include "G4Trap.hh"
00011 
00012 //============================================================
00013 BDSLensFacet::BDSLensFacet (G4String name, G4TwoVector size, G4double angle, G4double baseHeight, G4String material):
00014   _name(name+"_LensFacet"),_size(size),_angle(angle), _baseHeight(baseHeight), _material(material) 
00015 {
00016   computeDimensions();
00017   build();
00018 }
00019 
00020 void BDSLensFacet::computeDimensions(){
00021   G4double aSmallNumber=1e-9;
00022   if(_baseHeight==0) {_baseHeight=aSmallNumber;}
00023   _totalHeight = _baseHeight + _size.x()*tan(_angle);
00024   //phi, theta, psi rotation such that the base is perp. to the z direction.
00025   _rotation = new G4RotationMatrix(0,CLHEP::pi/2.0,0); 
00026 }
00027 
00028 
00029 void BDSLensFacet::visAtt()
00030 {
00031   _visAtt=new G4VisAttributes(G4Colour(0.8,0.2,0.0,0.2));
00032   _visAtt->SetForceSolid(true);
00033   _log->SetVisAttributes(_visAtt);
00034 }
00035 
00036 void BDSLensFacet::build(){
00037   G4cout << "Building G4Trap with dimensions: " << _size.x() << " " << _size.y()<< " " <<  _totalHeight << " " <<  _baseHeight << G4endl;
00038   _solid = new G4Trap((_name+"solid").c_str(), _size.x(), _size.y(), _totalHeight, _baseHeight);
00039  _log = new G4LogicalVolume(_solid,BDSMaterials::Instance()->GetMaterial(_material),(_name+"_log").c_str(),0,0,0);
00040   visAtt();
00041 }
00042 
00043 
00044 BDSLensFacet::~BDSLensFacet(){
00045 }

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7