00001 #include "BDSGlobalConstants.hh"
00002 #include "BDSCCDPixel.hh"
00003 #include "BDSCCDPixelSD.hh"
00004 #include "BDSMaterials.hh"
00005 #include "G4Box.hh"
00006 #include "G4VisAttributes.hh"
00007 #include "G4LogicalVolume.hh"
00008 #include "G4VPhysicalVolume.hh"
00009 #include "BDSDebug.hh"
00010
00011 #include "G4SDManager.hh"
00012
00013 extern BDSCCDPixelSD* BDSCCDPixelSensDet;
00014
00015
00016
00017 BDSCCDPixel::BDSCCDPixel (G4ThreeVector size, G4String name):
00018 _size(size), _name(name+"_CCDPixel")
00019 {
00020 G4cout << __METHOD_NAME__ << G4endl;
00021 G4SDManager* SDMan = G4SDManager::GetSDMpointer();
00022 _sensDet=new BDSCCDPixelSD(_name);
00023 SDMan->AddNewDetector(_sensDet);
00024 build();
00025 _log->SetSensitiveDetector(_sensDet);
00026 G4cout << __METHOD_END__ << G4endl;
00027 }
00028
00029
00030 void BDSCCDPixel::visAtt()
00031 {
00032 _visAtt=new G4VisAttributes(G4Colour(0.8,0.2,0.0));
00033 _visAtt->SetForceWireframe(true);
00034 _log->SetVisAttributes(_visAtt);
00035 }
00036
00037 void BDSCCDPixel::build(){
00038 G4cout << __METHOD_NAME__ << G4endl;
00039 _solid = new G4Box((_name+"_solid").c_str(),_size.x()/2.0,_size.y()/2.0,_size.z()/2.0);
00040 _log = new G4LogicalVolume(_solid,BDSMaterials::Instance()->GetMaterial("fusedsilica"),(_name+"_log").c_str(),0,0,0);
00041 visAtt();
00042 G4cout << __METHOD_END__ << G4endl;
00043 }
00044
00045 G4String BDSCCDPixel::name(){
00046 return _name;
00047 }
00048
00049 G4LogicalVolume* BDSCCDPixel::log(){
00050 return _log;
00051 }
00052
00053 G4ThreeVector BDSCCDPixel::size(){
00054 return _size;
00055 }
00056
00057 BDSCCDPixel::~BDSCCDPixel(){
00058 }