GGE GPE MOMOまたはMOMO Envユーザー。 パネルMOMO友人
| | | | |
Geometry.cc PhysicsList.cc MySimulation.cc makefile *.cc *.hh
| | | | | Geometry.o PhysicsList.o
MySimulation.o Momomake.gmk
*.o
\ \ | / /
Mysimulation
/\
||
GAG/利益/G4Plugin
%のつくりf Momomake.gmk
秘訣!
// 要素 G4Element* elementH=新しいG4Element(「水素」、「H」、1。 、 1.00794*g/mole ); G4Element* elementC=新しいG4Element(「炭素」、「C」、6。 、 12.011*g/mole ); G4Element* elementN=新しいG4Element(「窒素」、「N」、7。 、 14.00674*g/mole ); G4Element* elementO=新しいG4Element(「酸素」、「O」、8。 、 15.9994*g/mole ); G4Element* elementNa=新しいG4Element(「ナトリウム」、「Na」、11。 、 22.989768*g/mole ); G4Element* elementMg=新しいG4Element(「マグネシウム」、「Mg」、12。 、 24.305*g/mole ); G4Element* elementP=新しいG4Element(「リン」、「P」、15。 、 30.973762*g/mole ); 4G要素*elementS = new4G要素("は"、"S"、16を硫黄で処理します 。 、 32.066*g/mole ); G4Element* elementCl=新しいG4Element(「塩素」、「Cl」、17。 、 35.4527*g/mole ); G4Element* elementK=新しいG4Element(「カリウム」、「K」、19。 、 39.0983*g/mole ); G4Element* elementCa=新しいG4Element(「カルシウム」、「Ca」、20。 、 40.078*g/mole ); 4G要素*elementFe = new4G要素("は"、"Feインチ、26にアイロンがけし ます。 、 55.845*g/mole ); // 組み合わせからの素材 4Gの素材*SkeletonSpongiosa = new4Gの素材(「SkeletonSpongiosa」、1159.0の*kg/m3、12 、kStateUndefined、*273.15ケルビン、1.0個の*大気); SkeletonSpongiosa->AddElement( elementH、 0.085 ); SkeletonSpongiosa->AddElement( elementC、 0.404 ); SkeletonSpongiosa->AddElement( elementN、 0.058 ); SkeletonSpongiosa->AddElement( elementO、 0.367 ); SkeletonSpongiosa->AddElement( elementNa、 0.0010 ); SkeletonSpongiosa->AddElement( elementMg、 0.0010 ); SkeletonSpongiosa->AddElement( elementP、 0.034 ); SkeletonSpongiosa->AddElement( elementS、 0.0020 ); SkeletonSpongiosa->AddElement( elementCl、 0.0020 ); SkeletonSpongiosa->AddElement( elementK、 0.0010 ); SkeletonSpongiosa->AddElement( elementCa、 0.044 ); SkeletonSpongiosa->AddElement( elementFe、 0.0010 );
<?xml version="1.0" encoding="UTF-8"?>
<gdml xmlns:gdml=「http://cern.ch/2001/Schemas/GDML」xmlns:xsi=「http://www.w3.org/2001/XMLSchema-instance
」xsi:noNamespaceSchemaLocation=「../スキーマ/gdml_1.0.xsd」><!--スキップ>
<素材>
<!--要素>
<要素name=「水素」formula=「H」Z=「1」><原子value=「1.00794」/>
</element>
<要素name=「炭素」formula=「C」Z=「6」><原子value=「12.011」/>
</element>
<要素name=「窒素」formula=「N」Z=「7」><原子value=「14.00674」/>
</element>
<要素name=「酸素」formula=「O」Z=「8」><原子value=「15.9994」/>
</element>
<要素name=「ナトリウム」formula=「Na」Z=「11」><原子value=「22.989768
」/>
</element>
<要素name=「マグネシウム」formula=「Mg」Z=「12」><原子value=「24.305
」/>
</element>
<要素name=「リン」formula=「P」Z=「15」><原子value=「30.973762」/>
</element>
<要素name=「硫黄」formula=「S」Z=「16」><原子value=「32.066」/>
</element>
<要素name=「塩素」formula=「Cl」Z=「17」><原子value=「35.4527」/>
</element>
<要素name=「カリウム」formula=「K」Z=「19」><原子value=「39.0983」/>
</element>
<要素name=「カルシウム」formula=「Ca」Z=「20」><原子value=「40.078
」/>
</element>
<要素name=「鉄」formula=「Fe」Z=「26」><原子value=「55.845」/>
</element>
<!--組み合わせからの素材>
<物質的なname=「SkeletonSpongiosa」>
<D type="denstiy" value="1159.0" unit="kg/m3"/><T type=
「温度」value=「273.15」unit=「ケルビン」/><P type=「パスカル」value=
「1.0」unit=「大気」/><小数部n=「0.085」ref=「H」/>
<小数部n=「0.404」ref=「C」/>
<小数部n=「0.058」ref=「N」/>
<小数部n=「0.367」ref=「O」/>
<小数部n=「0.0010」ref=「Na」/>
<小数部n=「0.0010」ref=「Mg」/>
<小数部n=「0.034」ref=「P」/>
<小数部n=「0.0020」ref=「S」/>
<小数部n=「0.0020」ref=「Cl」/>
<小数部n=「0.0010」ref=「K」/>
<小数部n=「0.044」ref=「Ca」/>
<小数部n=「0.0010」ref=「Fe」/>
</material>
<!--スキップ>
</gdml>
G4double DzArraythintube []=
{-1000.0台の*マイクロメーター、-750.0台の*マイクロメーター、-500.0台の*マイ
クロメーター、-250.0台の*マイクロメーター、0.0台の*マイクロメーター、250.0台
の*マイクロメーター、500.0台の*マイクロメーター、750.0台の*マイクロメーター
、1000.0台の*マイクロメーター];
G4double RminArraythintube []=
{1.0台の*マイクロメーター、1.0台の*マイクロメーター、1.0台の*マイクロメータ
ー、1.0台の*マイクロメーター、1.0台の*マイクロメーター、1.0台の*マイクロメー
ター、1.0台の*マイクロメーター、1.0台の*マイクロメーター、1.0台の*マイクロメ
ーター];
G4double RmaxArraythintube []=
{20.0台の*マイクロメーター、16.0台の*マイクロメーター、12.0台の*マイクロメ
ーター、8.0台の*マイクロメーター、4.0台の*マイクロメーター、8.0台の*マイク
ロメーター、12.0台の*マイクロメーター、16.0台の*マイクロメーター、20.0台の*
マイクロメーター];
G4BREPSolidPCone *solidthintube =新規G4BREPSolidPCone(「solidthintube
」、//その名0.0*mrad、//その開始角度
*270.0deg、その冒頭が歪曲する//
9、//そのnZ
DzArraythintube[0]、//z開始
DzArraythintube、//z価値
RminArraythintube、 //rmin
RmaxArraythintube ); //rmax
G4LogicalVolume * logicalthintube=新しいG4LogicalVolume(solidthintube
、//その固体の炭素、//その素材
「logicalthintube」、//その名前
0、0、0);
logicalthintube->SetVisAttributes(黒)
;
G4VisAttributes*lightblue= new G4VisAttributes(4G色(0/255。 、255/255. 、255/255. ));
3-6-2) G4PVPlacementの建設者
後ろ
回転のタイプと母ボリュームのタイプによると以下の4タイプの建設者は実施されます。
// 単一の配置された配置
// ボディ回転+物質的な母
G4RotationMatrix rotMatrixbox-bp; // ユニット回転行列4G
の倍のanglebox-bp = 0.0*deg; // 回転した角度rotMatrixbox-bp.rotateX(anglebox-bp)
; // 腐敗行列
G4VPhysicalVolume*ボックスbp= new G4PVPlacement(4Gの変化3D
の(rotMatrixbox-bp //回転
G4ThreeVector(0.0*mm、 0.0*mm、 0.0*mm))、
「ボックスbp」(その名前(2番目の建設者)が
ケースに入れる//) //その論理的なボリュームphysicalcontainer
、 間違いの//その母ボリューム、 //
無ブーリアン操作0); //コピー数
// 回転+物質的な母を形成してください。
G4RotationMatrix rotMatrixbox-fp; // ユニット回転行列4G
の倍のanglebox-fp = 0.0*deg; // 回転した角度rotMatrixbox-fp.rotateX(anglebox-fp)
; // 腐敗行列
G4VPhysicalVolume*ボックスfp= new G4PVPlacement(新しいG4RotationMatrix(rotMatrixbox-fp)
//
フレーム回転
G4ThreeVector(0.0*mm、 0.0*mm、 0.0*mm)、
「ボックス-fp」、// 1番目の建設者その名前
ボックス、 //その論理的なボリュームphysicalcontainer
、間違いの//その母ボリューム、//無ブーリアン操作
0); //コピー数
// ボディ回転+論理的な母
G4RotationMatrix rotMatrixbox-bl; // ユニット回転行列4Gの倍のanglebox-bl = 0.0*deg
; // 回転した角度rotMatrixbox-bl.rotateX(anglebox-bl); // 腐敗行列
G4VPhysicalVolume*ボックスbl= new G4PVPlacement(4Gの変化3Dの(rotMatrixbox-bl、//
回転
G4ThreeVector(0.0*mm、 0.0*mm、 0.0*mm))、
ボックス、//その現在の論理的なボリューム(4番目の建設者)「ボッ
クス-bl」、//その名前
logicalcontainer、 //その母ボリューム
間違いです //無ブーリアン操作
0); //コピー数
// 回転+論理的な母を形成してください。
G4RotationMatrix rotMatrixbox-fl; // ユニット回転行列4Gの倍のanglebox-fl = 0.0*deg
; // 回転した角度rotMatrixbox-fl.rotateX(anglebox-fl); // 腐敗行列
G4VPhysicalVolume*ボックスfl= new G4PVPlacement(新しいG4RotationMatrix(rotMatrixbox-fl)
//
フレーム回転
G4ThreeVector(0.0*mm、 0.0*mm、 0.0*mm)、
ボックス、// 3番目の建設者その論理的なボリューム「ボックス-fl」
、//その名前
logicalcontainer、 間違いの//その母ボリューム、//無ブーリア
ン操作
0); //コピー数
G4int copyBoxes;
copyBoxes=0;
(G4int Boxes=1のために; ボックス<=21; ボックス++){
G42倍ボックス[trans Boxes] =-100.0*cm+10.0*cm*(
ボックス1);
G4VPhysicalVolume * Boxes = new G4PVPlacement(0、 //無回転G4ThreeVector(
箱詰め横断、0.0*cm、0.0*cm)、「ボックス」、//そ
の名前
ボックス //その論理的なボリュームphysicalworld
、 間違いの//その母ボリューム、 //無ブー
リアン操作copyBoxes++); //コピー数}
// ボディのアクティブな回転
G4int copyCircle;
copyCircle=0;
G4RotationMatrix rotationMatrixCircle;4Gの倍のstartCircle = 0.0*deg;
4Gの倍のincCircle = 30.0*deg;
rotationMatrixCircle.rotateZ(startCircle);
4Gの倍のx0Circle = -200.0*mm;
4Gの倍のy0Circle = 100.0*mm;
4Gの倍のz0Circle = 0.0*mm;
4Gの倍のradiusCircle = 300.0*mm;
(G4int Circle=1のために; 円<=10; Circle++){
G4double transCircle = startCircle+incCircle*(Circle-1);
G4double xCircle, yCircle, zCircle;
xCircle = x0Circle + radiusCircle * cos(transCircle);
yCircle = y0Circle + radiusCircle * sin(transCircle);
zCircle = z0Circle;
G4VPhysicalVolume * Circle = new G4PVPlacement(G4Transform3D(rotationMatrixCircle, //rotate
G4ThreeVector(xCircle, yCircle, zCircle)),
"Circle", //its name
box, //its logical volume
physicalworld, //its mother volume
false, //no boolean operation
copyCircle++); //copy number
rotationMatrixCircle.rotateZ(incCircle);
}
翻訳をスライスしています/
「physicalSlicedします」というG4PVReplica * physicalSliced=新規G4PVReplica(、//
名logicalbox、その論理的の//
physicalworld、//その母
kXAxis、軸に沿って//
レプリカの1000個、//No
2.0台の*マイクロメーター、//幅
-1.0*mm); // オフセット
リニアの測量またはリニアの回転を持つparemetrisedされた大量は計画されるけれどもまだ実施されません。
//***** 結婚された2月25日20:27:44のJST 2004年でGeant4幾何学エディタによって生成さ
れます*****
//------HeaderFile-
#は「MyDetector.hh」を含みます。
#は「G4UnitsTable.hh」を含みます。
#は「G4VUserDetectorConstruction.hh」を含みます。
#は「globals.hh」を含みます。
#は「G4Material.hh」を含みます。
#は「G4MaterialTable.hh」を含みます。
#は「G4Element.hh」を含みます。
#は「G4ElementTable.hh」を含みます。
#は「G4LogicalVolume.hh」を含みます。
#は「G4ThreeVector.hh」を含みます。
#は「G4PVPlacement.hh」を含みます。
#は「G4PVReplica.hh」を含みます。
#は「G4SDManager.hh」を含みます。
#は「G4VisAttributes.hh」を含みます。
#は「G4Colour.hh」を含みます。
MyDetector::MyDetector()
{ ; }
MyDetector::~MyDetector()
{ ; }
G4VPhysicalVolume* MyDetector::Construct( ) {
// 要素
// 組み合わせからの素材
// 最初からの素材
// 視覚化属性
// 論理的な大量
// 物質的な大量---- スライスして、シングルは配置、繰り返された配置を置きました。
---------------------------
// 単一の配置された配置
// 再三の配置翻訳
// 再三の配置AxialSymmetoric
// スライス翻訳
// スライスAxialSymmetric
// 現実の世界を戻してください。
// 幾何学ヘッダーファイル
結婚された2月25日20:27:44のJST 2004年でGeant4幾何学エディタによって生成された// MyDetector.hh
#ifndef MyDetector_h
#はMyDetector_h 1を定義します。
クラスG4VPhysicalVolume;
#は「G4VUserDetectorConstruction.hh」クラスMyDetectorを含みます: 公的であるG4VUserDetectorConstruction{
public:
MyDetector();
~MyDetector();
public:
G4VPhysicalVolume* Construct();
};
#endif
MyPhysicsList::ConstructParticle()を取り消してください。
{
ConstructBosons();
ConstructLeptons();
ConstructMesons();
ConstructBarions();
ConstructIons();
ConstructShortLiveds();
}
そして、GPEは粒子の各カテゴリーのためにコードを生成します。
MyPhysicsList::ConstructBosons()を取り消してください。
{
G4Geantino::GeantinoDefinition();
....
....
}
G4Aprocess* aProcess;
G4ParticleDefinition*粒子;
G4ProcessManager* pmanager = particle->GetProcessManager();
ならば(aProcess->IsApplicable(*particle)) {pmanager->AddProcess (aProcess
、idxAtRest、idxAlongStep、idxPostStep):
}
MyPhysicsList::ConstructProcess()を取り消してください。
{
AddTransportation();
ConstructEM();
//ConstructHad();
ConstructGeneral():
}
ExN02PhysicsList::ConstructEM()を取り消してください。
{
theParticleIterator->reset();
場合((*theParticleIterator))
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* pmanager = particle->GetProcessManager();
4GのストリングparticleName = particle->GetParticleName();
// 条項がPhysicsTableなものにおける列と一致しているならばそれぞれ
ならば(particleName ==「ガンマ」)
pmanager->AddProcess(新しいG4PhotoElectricEffect()、ordInActive、ordInActive
、ordDefault);
}
ならば(particleName ==「ガンマ」)
pmanager->AddProcess(新しいG4ComptonScattering()、ordInActive、ordInActive
、ordDefault);
}
ならば(particleName ==「ガンマ」)
pmanager->AddProcess(新しいG4GammaConversion()、ordInActive、ordInActive
、ordDefault);
}
ならば(particleName ==「ガンマ」)
pmanager->AddProcess(新しいG4PolarizedComptonScattering()、ordInActive、ordInActive
、ordDefault);
}
ならば(「e-」というparticleName ==)
pmanager->AddProcess(新しいG4MultipleScattering()、ordInActive、1、1);
}
.....
.....
#は「G4Decay.hh」を含みます。
ExN02PhysicsList::ConstructGeneral(){を取り消してください。
4Gの腐敗*theDecayProcess = new G4Decay();
theParticleIterator->reset();
場合((*theParticleIterator))
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* pmanager = particle->GetProcessManager();
ならば(theDecayProcess->IsApplicable(*particle)) {pmanager ->AddProcess
(theDecayProcess) ;
pmanager ->SetProcessOrdering(theDecayProcess、 idxPostStep);
pmanager ->SetProcessOrdering(theDecayProcess、 idxAtRest);
}
}
}
ExN02PhysicsList::SetCuts()を取り消してください。
{
タイプ入力した// defaultCutValueは使われます。
ならば(verboseLevel >1)
G4cout << "ExN02PhysicsList::SetCuts:";
}
SetCutsWithDefault();
}
[~/MomoPlugin]$ ls -R MomoHome
MomoHome:
MomoN02Test.cc PDGmaterials.xmlは/MomoN02MyDetector.g4dt
を含みます。 readme src/ MomoN02PhysicsList.g4ph
Momomake.gmk dicomVolume.xml vis.mac
MomoHome/は含みます:
MomoEventAction.hh MomoN02PhysicsList.hh MomoRunAction.hh MomoN02MyDetector.hh MomoPrimaryGeneratorAction.hh MomoVisManager.hh
MomoHome/src:
MomoEventAction.cc MomoN02PhysicsList.cc MomoRunAction.cc MomoN02MyDetector.cc MomoPrimaryGeneratorAction.cc MomoVisManager.cc
後ろ##### GNUmakefile##### #---------------------------------------------------------- バイナリを作るために規則とパスを定義している#スクリプト。 #---------------------------------------------------------- Momo環境のためのGNUmakefileの#オートマチック作成。 G4TARGET、UI、およびVIS変数のユーザー選択を持ちます# #Momoは、悪いgeantsを征服した伝説上の武士の名前です。 ---- H. ヨシダ。 名前:= MomoN02Test G4TARGET:= $(名前) G4EXLIB := true 使われた#ヴィス/GUI G4VIS_USE_DAWN := 1 G4VIS_USE_DAWNFILE := 1 G4VIS_USE_OPENGLX := 1 G4VIS_USE_VRML := 1 G4VIS_USE_VRMLFILE := 1 #ヴィス/GUIは建築しました。 G4VIS_BUILD_DAWN_DRIVER := 1 G4VIS_BUILD_DAWNFILE_DRIVER := 1 G4VIS_BUILD_OPENGLX_DRIVER := 1 G4VIS_BUILD_VRML_DRIVER := 1 G4VIS_BUILD_VRMLFILE_DRIVER := 1 #将軍Envsは定義しました。 G4SYSTEM:= Linux g++ G4INSTALL:=/家/yoshidah/geant4.6.0.p01 G4WORKDIR:=. G4BINDIR:=./貯蔵箱/Linux g++ G4USE_STL:=1 G4LIB_BUILD_STATIC:=1 G4LEDATA:=/家/yoshidah/G4DATA/G4EMLOW2.2 G4LEVELGAMMADATA:=/家/yoshidah/G4DATA/PhotonEvaporation ifndef G4INSTALL G4INSTALL = ../../.. endif . 偽物: すべて all: lib貯蔵箱 $(G4INSTALL)/config/binmake.gmkを含んでください。
//##### MOMOメイン・プログラム#####
//#----------------------------------------------------------
Momo環境のためのメイン・プログラムの//#オートマチック作成。
// geant4.6.0のためにアップデートされた2003年12月
//--------------------------------------------------------------
Geant4 Momo //によって生成された// MomoN02Test.cc 場合 火曜日に 2月24日09時23
分50秒JST 2004
このコードインプリメンテーションが// GEANT4協力 の知的所有権である//。
//
// または、プログラム(をコピーし、配布するか、修正することによって、何でも働きま
す。
// プログラム)に基づいて、このステートメント、//、およびすべてのその用語の受容を
示します。
//
//
#は「G4RunManager.hh」を含みます。
#は「G4UImanager.hh」を含みます。
// ユーザーインターフェイスドライバーの選択
#は「G4UIGAG.hh」を含みます。
// MomoのGGE#によって生成された検出器幾何学は「MomoN02MyDetector.hh
」を含みます。
// MomoのGPEによって生成された物理学リスト
#は「MomoN02PhysicsList.hh」を含みます。
// MomoのデフォルトPrimaryGeneratorAction
#は「MomoPrimaryGeneratorAction.hh」を含みます。
#は「MomoRunAction.hh」を含みます。
#は「MomoEventAction.hh」を含みます。
#ifdef G4VIS_USE
#は「MomoVisManager.hh」を含みます。
#endif
int main()
{
// デフォルトランマネジャーを構成してください。
G4RunManager* runManager = new G4RunManager;
// 義務的な初期設定クラスを設定してください。
runManager->SetUserInitialization(新しいMomoN02MyDetector)
;
runManager->SetUserInitialization(新しいMomoN02PhysicsList)
;
#ifdef G4VIS_USE
// 視覚化マネジャー
G4VisManager* visManager = new MomoVisManager;
visManager->Initialize();
#endif
// 行動クラスを義務的なユーザーに課してください。
runManager->SetUserAction(新しいMomoPrimaryGeneratorAction);
// ユーザー行動クラスに、弾道runManager->SetUserAction(新しいMomoRunAction)
を視覚化させてください;
runManager->SetUserAction(新しいMomoEventAction);
// 4Gのカーネルを初期設定してください。
runManager->Initialize();
// ユーザーインターフェイスマネジャーG4UImanager*UI = G4UImanager::GetUIpointer()
にポインター犬をつかまえてください;
G4UIsession * session = new G4UIGAG;
session->SessionStart();
セッションを削除してください;
// 仕事終了
#ifdef G4VIS_USE
visManagerを削除してください;
#endif
runManagerを削除してください;
リターン0;
}
$G4INSTALL 環境変数は、Geant4ツールキットのインストールが、どこで、場所、従って、ライブラリが置かれるであろうカーネルを取るべきであるかを指定します。$G4INSTALL/lib. $G4WORKDIR 環境変数はユーザーによって設定されて、ユーザー作業用ディレクトリへのパスを指定します; テンポラリファイル(Geant4のインストールプロセスのオブジェクトファイルとデータの製品)は中に置かれるでしょう。$G4WORKDIR/tmp使われたシステムアーキテクチャによると。 バイナリは中に置かれるでしょう。 $G4WORKDIR/貯蔵箱使われたシステムアーキテクチャによると。 へのパス$G4WORKDIR/貯蔵箱/$G4SYSTEM 追加されるべきです。$パス 利用者環境で。
$CLHEP_BASE_DIR
CLHEPパッケージがシステムに取り付けられるパスを指定します。
ドルG4システム(!)
現在使われたアーキテクチャとコンパイラを定義します。 この変化物は自動的にインストーラスクリプト「g4install」(Geant4のインストールの場合)によってまたはスクリプト「g4config」(ユーザーの環境のプリインストールされたGeant4と初期のコンフィギュレーションの場合)によってセットされるべきです。
$G4INSTALL
Geant4ツールキットが取り付けられるべきであるパスを定義します。 それはシステムインストーラによって設定されるべきです。 デフォルトで、Geant4配布が$HOMEに置かれると仮定して、それは$HOME/geant4に設定します。
ドルG4ベース(!)
ソースコードへのパスを定義します。 $CPPFLAGSと$LDFLAGSのための私のおよびL指令を定義するために内部で使われます。 それは、$G4INSTALL/srcに設定される必要があります。
$G4WORKDIR
Geant4のためにユーザーのworkdirのためにパスを定義します。 Geant4のためのユーザーの作業用ディレクトリが$HOMEに置かれると仮定して、それは$HOME/geant4にデフォルトで設定されます。
$G4INCLUDE
ソースヘッダーファイルが、出ることによってインストールで映されているかもしれないパスを定義します。gmake includes (デフォルトはそうするために設定されます)$G4INSTALL/include)
ドルG4貯蔵箱、$G4BINDIR(!)
場所を指定し、executablesをどこに蓄えるかために、システムにより用いられます。 デフォルトで、彼らはそれぞれ$G4WORKDIR/貯蔵箱と$G4BIN/$G4SYSTEMに準備できています。 $G4WORKDIR/貯蔵箱/$G4SYSTEMへのパスは利用者環境で$PATHに追加されるべきです。 $G4BINは無効にされることができます。
$G4TMP、 $G4TMPDIR (!)
場所を指定し、ユーザーアプリケーションまたはテストのコンパイル/築きのテンポラリファイル製品をどこに蓄えるかために、システムにより用いられます。 デフォルトで、彼らはそれぞれ$G4WORKDIR/tmpと$G4TMP/$G4SYSTEMに準備できています。 $G4TMPは無効にされることができます。
ドルG4ウーマン・リブ、$G4LIBDIR(!)
場所を指定し、ライブラリをどこに蓄えるかために、システムにより用いられます。 デフォルトで、彼らはそれぞれ$G4INSTALL/libと$G4LIB/$G4SYSTEMに準備できています。 $G4LIBは無効にされることができます。
ドルG4目標
築かれるために、アプリケーション/例の目標(main()を定義しているソースファイルの名前)を指定します。 この変数は$G4INSTALL/例に置かれた例とテストに自動的に課されます。
$G4EXEC_BUILD
ユーザーのためにアプリケーション/例を建てる時間にテンプレート例示を処理するために第2のテンプレート宝庫を使うかどうかを指定して、たれ下がってください。 Geant4における内部のカテゴリーテストにとって、この変数はすでに関連したGNUmakefileにあります。 しかし、クラス名がすでに切り刻まれて、違う互いである所で、それは$G4INSTALL/例における例とテストのために必要でありません。 テンプレート宝庫(このガイドの付録A.2を見てください)を利用するそれらのコンパイラについてだけ、それはあてはまります。 第2のテンプレート容器は$G4TREP/幹部にセットされます。
ドルG4デバッグ
デバッグのために象徴的な情報をオブジェクトコードに含めているコード(ライブラリまたは例)をコンパイルするために、指定します。 生成されたオブジェクトコードのサイズはかなり増大することができます。 デフォルトで、コードは最適化されたモード($G4OPTIMISEセット)中でコンパイルされます。
$G4NO_OPTIMISE
コンパイラ最適化なしでコード(ライブラリまたは例)をコンパイルするために、指定します。
$G4NO_STD_NAMESPACE
Geant4ライブラリでstd namespaceを使うのを避けるため。
$G4NO_STD_EXCEPTIONS
Geant4において例外の投げを避けるため。
$G4_NO_VERBOSE
Geant4コードは高い冗長モード($G4VERBOSEフラグセット)中のデフォルトでコンパイルされます。 よりよい性能のために、冗長コードは、ドルG4_NO_VERBOSEを定義することによって除外されることができます。
$G4LIB_BUILD_SHARED
共用ライブラリ(ライブラリはその時デフォルトで使われるでしょう)としてカーネル図書館を建設するかどうかを指定して、たれ下がってください。 設定されないならば、静的なアーカイブ図書館はデフォルトで建設されます。
$G4LIB_BUILD_STATIC
共用ライブラリ($G4LIB_BUILD_SHAREDがその上設定される場合)にに加えて静的なアーカイブライブラリとしてカーネル図書館を建設するかどうかを指定して、たれ下がってください。
$G4LIB_USE_GRANULAR
両方がインストールされた場合にリンク時間で「合成の」ライブラリを背景として「粒状の」ライブラリの用法を強制するため。 インストールされるならば、Geant4建築システムはデフォルトで「合成の」ライブラリを選びます。
ユーザーインターフェイスドライバーのための最も適切なフラグはまさにここでリストされます。 より詳細な説明はセクションの中でもこのユーザーズガイドの2つ.を与えられます。
G4UI_USE_TERMINAL
築かれる(デフォルト)ためにアプリケーションの中でダム端末インタフェースを使うために、指定します。
G4UI_BUILD_XM_SESSION、 G4UI_BUILD_XAW_SESSION
XMまたはXAW主題ベースのユーザーインターフェイスをカーネルライブラリに含めるために、指定します。
G4UI_USE_XM、 G4UI_USE_XAW
築かれるためにアプリケーションの中でXMまたはXAWインタフェースを使うために、指定します。
G4UI_BUILD_WO_SESSION、 G4UI_USE_WO
OPACSツールに関連したWOユーザーインターフェイスを使うために、指定します。
G4UI_BUILD_WIN32_SESSION
WindowsシステムのためにWin32ターミナルインタフェースをカーネルライブラリに含めるように、指定します。
G4UI_USE_WIN32
Windowsシステムの上で築かれるためにアプリケーションの中でWin32インタフェースを使うために、指定します。
G4UI_NONE
設定されるならば、どのUIセッションやどのようなUIライブラリも築かれません。 それ自身のUIシステムを持っている純粋なバッチジョブまたはユーザーの中の枠組を実行する時にこれは有益であるかもしれません。
視覚化グラフィックスドライバーのための最も適切なフラグはまさにここでリストされます。 これらの変数の説明はセクションの中でもこのユーザーズガイドの2つ.を与えられます。
$G4VIS_BUILD_OPENGLX_DRIVER
X11拡張によってOpenGLドライバーを含む視覚化のためにカーネル図書館を建設するように、指定します。 それは$OGLHOMEセット(OpenGLインストールへのパス)を必要としています。
$G4VIS_USE_OPENGLX
築かれるためにアプリケーションの中でX11拡張を持つOpenGLグラフィックスを使うために、指定します。
$G4VIS_BUILD_OPENGLXM_DRIVER
XM拡張によってOpenGLドライバーを含む視覚化のためにカーネル図書館を建設するように、指定します。 それは$OGLHOMEセット(OpenGLインストールへのパス)を必要としています。
$G4VIS_USE_OPENGLXM
築かれるためにアプリケーションの中でXM拡張を持つOpenGLグラフィックスを使うために、指定します。
$G4VIS_BUILD_OI_DRIVER
OpenInventorドライバーを含む視覚化のためにカーネル図書館を建設するように、指定します。 それは$OIHOMEと$HEPVISDIRセット(OpenInventor/HepVisインストールへのパス)を必要としています。
$G4VIS_USE_OI
築かれるためにアプリケーションの中でOpenInventorグラフィックスを使うために、指定します。
$G4VIS_BUILD_OIX_DRIVER
OpenInventorの自由なX11バージョンのためにドライバーを建てるために、指定します。
$G4VIS_USE_OIX
OpenInventorの自由なX11バージョンを使うために、指定します。
$G4VIS_BUILD_OIWIN32_DRIVER
Windowsシステムの上のOpenInventorの自由なX11バージョンのためにドライバーを建てるために、指定します。
$G4VIS_USE_OIWIN32
Windowsシステムの上のOpenInventorの自由なX11バージョンを使うために、指定します。
$G4VIS_BUILD_OPACS_DRIVER
OPACSドライバーを含む視覚化のためにカーネル図書館を建設するように、指定します。 それは$OPACSHOMEセット(OPACSインストールへのパス)を必要としています。
$G4VIS_USE_OPACS
築かれるためにアプリケーションの中でOpenInventorグラフィックスを使うために、指定します。
$G4VIS_BUILD_DAWN_DRIVER
DAWNの間ドライバーを含む視覚化のためにカーネル図書館を建設するように、指定します。
$G4VIS_USE_DAWN
建てられるアプリケーションの中で可能なグラフィックスrendererとしてのDAWNを使うために、指定します。
$G4DAWN_HOST_NAME
DAWNネットワークドライバーと使用のためにhostnameを指定するため。
$G4VIS_NONE
指定されるならば、どの視覚化ドライバーも築かれるか、使われないでしょう。
$G4ANALYSIS_USE
AIDAに基づいたhistogrammingのためにアプリケーションがコードを含むならば、分析のために適切な環境を作動させるように、指定します。 追加のセットアップ変数は、AIDA(「aida-config --cflags」と「aida-config --libs」)のためにconfigオプションを定義するように必要とされています($G4ANALYSIS_AIDA_CONFIG_CFLAGS、 $G4ANALYSIS_AIDA_CONFIG_LIBS)。 詳細は具体的な分析ツールのインストール手順を見てください。
$NeutronHPCrossSections
中性子をScaterringするプロセスのための外部のデータセットへのパス。
$G4LEDATA
低エネルギー電磁波プロセスのための外部のデータセットへのパス。
$G4LEVELGAMMADATA
光子蒸発のためのデータセットへのパス。
$G4RADIOACTIVEDATA
放射した腐敗プロセスのためのデータセットへのパス。
EXTRALIBS: =-L/lib<パス>-l<myExtraLib> または EXTRALIBS:=<進路>/lib/lib<myExtraLib>.aまた、EXTRA_LINK_DEPENDENCIES(それは実行可能な目標の依存状態に追加されます)を指定してもよく、それ、例えばをやってのけるためにまた規則を指定してさしつかえありません:
EXTRA_LINK_DEPENDENCIES:=<進路>/lib/lib<myExtraLib>.a
<進路>/lib/lib<myExtraLib>.a:
cdの<進路>/lib; $(つくり)
ほぼ確実に、外部のライブラリ、例えばのヘッダーファイルのためにCPPFLAGSを増やす必要があることに注意してください:CPPFLAGS+=-I<進路>/は含みます。テーブル10.5.1を見てください。
#--------------------------------------------------------------------
モジュール「Xplotter」#に依存しているアプリケーション「sim」のための#GNUmakefile
--------------------------------------------------------------------
名前:= sim
G4TARGET:= $(名前)
G4EXLIB := true
CPPFLAGS += -I$(HOME)/Xplotter/は含みます。
EXTRALIBS += -L$(HOME)/Xplotter/lib -lXplotter EXTRA_LINK_DEPENDENCIES := $(HOME)/Xplotter/lib/libXplotter.a
. 偽物: すべて
all: lib貯蔵箱
$(G4INSTALL)/config/binmake.gmkを含んでください。
$(HOME)/Xplotter/lib/libXplotter.a:
cd $(HOME)/Xplotter; $(つくり)
|
| テーブル10.5.1 アプリケーションのためのカスタマイズされたGNUmakefileまたはGeant4と結合しなかった外部のモジュールを使っている例の例。 |
EXTRALIBS += $(G4WORKDIR)/tmp/$(G4SYSTEM)/<myApp>/lib<myApp>.a \
- L/lib<パス>-l<myExtraLib>
EXTRALIBSSOURCEDIRS +=<進路>/<myApp><進路>/<MyExtraModule> EXTRA_LINK_DEPENDENCIES:= $(G4WORKDIR)/tmp/$(G4SYSTEM)/<myApp>/lib<myApp>.a
MYSOURCES:= $(ワイルドカード<進路>/<myApp>/src/*cc)$(G4WORKDIR)/tmp/$(G4SYSTEM)/<myApp>/lib<myApp>.a
: $(MYSOURCES) cd<進路>/<myApp>; $(つくり)
テーブル10.5.2を見てください。
#-----------------------------------------------------------------
モジュール「reco」#に依存しているアプリケーション「phys」のための#GNUmakefile-----------------------------------------------------------------
名前:= phys
G4TARGET:= $(名前)
G4EXLIB := true
EXTRALIBS += $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(名前)/libphys.a\
-L$(HOME)/reco/lib -lreco
EXTRALIBSSOURCEDIRS += $(HOME)/phys $(HOME)/reco EXTRA_LINK_DEPENDENCIES:= $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(
名前)/libphys.a
. 偽物: すべて
all: lib貯蔵箱
$(G4INSTALL)/config/binmake.gmkを含んでください。
MYSOURCES:= $(ワイルドカード$(HOME)/phys/src/*cc)$(G4WORKDIR)/tmp/$(G4SYSTEM)/$(
名前)/libphys.a: $(MYSOURCES) cd $(HOME)/phys; $(つくり)
|
| テーブル10.5.2 アプリケーションのためのカスタマイズされたGNUmakefileまたはGeant4と結合した外部のモジュールを使っている例の例。 |
利益(ネットワークのためのGeant4順応的なインタフェース)はGAGに基づいたネットワーク化されたGUIツールです。 それはGAGのほとんどすべての機能を引き継ぎ、リモートのマシン(s)での(a)Geant4運転を利用するために、新しい機能を持っています。
Geant4がリモートの、またはローカルなサーバー(LinuxまたはSolaris)上で動く一方、クライアントマシン(WindowsまたはLinux)上のランを得てください。
それは、接続する2つの方法をリモートサーバーに提供します; SSHモードと利益ソケットモード。 それがリモートのSSh接続と同じくらい安全で、それがGeant4のインタフェースとしてG4UIGAGを必要としているので、SSHモードは強く勧められます。
利益が利益ソケットモードの中で動いている時に、数値は場面を示します。
この例において、2つのタブを付けられた枠は、違うサーバーの上のリモートのGeant4s運転を動かすために表示されます。