lc ツール講習会 jupiter part

41
2005/06/06 LC tools lecture, Jupiter part 1 LC ツツツツツツ Jupiter part 2005/06/06 LC tools lecture @kek Hiroaki Ono Niigata University [email protected]

Upload: anoush

Post on 14-Jan-2016

60 views

Category:

Documents


0 download

DESCRIPTION

LC ツール講習会 Jupiter part. 2005/06/06 LC tools lecture @kek Hiroaki Ono Niigata University [email protected]. Contents. Jupiter の全般について Jupiter とは ドキュメントなど セットアップ、 CVS など Jupiter で新しい検出器を作る Forward CAL(fw) を例えば作るとしたら J4FW 部分の実装方法 CAL のジオメトリを例として SD 登録と Hit( 軽く ). Jupiter とは?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 1

LC ツール講習会Jupiter part

2005/06/06 LC tools lecture @kekHiroaki Ono

Niigata [email protected]

Page 2: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 2

Contents

1. Jupiter の全般について1. Jupiter とは2. ドキュメントなど3. セットアップ、 CVS など

2. Jupiter で新しい検出器を作る1. Forward CAL(fw) を例えば作るとしたら2. J4FW 部分の実装方法3. CAL のジオメトリを例として4. SD 登録と Hit( 軽く )

Page 3: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 3

Jupiter とは?JUPITER とは  JLC Unified Particle Interaction and   Tracking Emul

atoRの略で Geant4 をベースとした LC 実験用シミュレータです。LC 実験の検出器パラメータ、ジオメトリの変更、インストールを簡単に行えるように構築されています(現千葉大学の保科琴代さんが作成)

Page 4: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 4

シミュレーションツール群

JUPITERJLC Unified

Particle Interactionand

Tracking EmulatoR

IO Input/Outputmodule set

URANUSLEDA

Monte-Calro Exact hits ToIntermediate Simulated output

Unified Reconstructionand

ANalysis Utility Set

Library Extention for

Data AnalysisMETIS

Satellites

Geant4 basedSimulator

JSF/ROOT basedFramework

MC truth generator Event Reconstruction

Tools for simulation Tools For real data

Full geometry/mc generatorClustering/smearing

Page 5: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 5

Jupiter に関するドキュメント• Jupiter のマニュアルについて( Japanese )

保科さんが書いたマニュアルを以下に置きました。http://www.hep.sc.niigata-u.ac.jp/~ono/acfa-sim-j/Jupiter_manual.pdf

保科さんの昔のホームページにもいくつかドキュメントが残っています。

http://wwwjlc.kek.jp/~hoshina/cdc/geant4/diary/diary.htm

• Geant4 のジオメトリ、ヒットの実装についてGeant4 lecture 2003 のページが役に立ちます。http://geant4.kek.jp/g4users/tutorial03/

 私の説明で足りない部分はこれらを参考にしてみてください。

Page 6: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 6

Jupiter の Setup

• Jupiter では以下のツールが必要です。– Geant4 (G4INSTALL などいろいろ )– CLHEP (CLHEP_BASE_DIR)

• 環境変数として JUPITERROOT を設定する必要があります。

% export JUPITERROOT=${HOME}/Jupiter(bash)% setenv JUPITERROOT ${HOME}/Jupiter(csh)

等とします。

Page 7: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 7

CVS によるファイルの管理 CVS でファイルを入手できます。jlclogin 上で持ってくるには% cvs co Jupiter外部から持ってくるには% cvs -d :pserver:[email protected]/home/cvs/soft loginpassword : <return>% cvs -d :pserver:[email protected]/home/cvs/soft co Jupiterファイルのアップデートは% cvs updateファイルのコミットは% cvs commit filename

CVS でファイルは管理されており最新のファイルを入手できます

Page 8: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 8

Jupiter のディレクトリ構造

ユーザーが変更する部分PhysicsList や G4 の継承クラス

CVS でファイルは管理されており最新のファイルを入手できます

Page 9: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 9

新しい検出器の作成たとえば forward cal(fw) を作るとしたら?1. source ディレクトリの中に新しく fw を作成。2. source/Makefile に fw を追加。3. source/ 以下に fw/src 、 fw/include を作る。4. Detector componet, Solid を実装。 (Geometry)5. SD (Sensitive Detector) と Hit を実装。6. source/main/Jupiter.cc の中に fw を追加。7. テストランとジオメトリのチェック。

Page 10: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 10

Jupiter ベースクラスJ4VComponent

virtual InstallIn( mother, pRot, tlate, copyNo=0 )=0virtual Assemble()=0Virtual Cabling()Virtual OpenMaterialStore() OutPutAll()static GetDCPtrByName(detectorname)

J4VDetectorComponent

J4VFWDetectorComponent

J4VSD

J4VSensitiveDetector

MakeHitBuf()OutputAll()

OutputAll()

OpenMaterialStore()

G4VSensitiveDetector

J4VHit

G4VHit

J4VFWMaterialStoreCreate(name)

J4VMaterialStore

Order(matelial)

virtual Create(name)

Page 11: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 11

FW 検出器の実装source/fw  ディレクトリ以下に最低限必要なファイル

J4VFWDetectorComponent.hh/ccJ4FWMaterialStore.hh/ccJ4FW.hh/ccJ4FWParameterList.hh/cc

J4FWSD.hh/ccJ4FWHit.hh/cc

Hit 情報を残すのであれば

J4VDetectorComponet の継承クラスユーザーが定義するマテリアル

検出器本体の実装 (PV,LV,Solid)

各種パラメータ

J4VSD の継承、 SD の実装J4VHit の継承、 Hit の実装

これらのファイルは、他の検出器からコピーして名前を付け替えて使うのが早道です。

J4FWLayer.hh/cc 娘ボリューム

Page 12: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 12

1. 検出器 base class の実装検出器の base class を作成する際には J4VComponent を継承して作ります

J4VComponent

fDaughters    ( 娘 Components)fMother     ( 親 Component)fSD        (Sensitive Detector へのポインタ )fNbrothers   ( 同じクラスから作られたオブジェクトの数 )fNclones    (Copy, Replica で作られたオブジェクトの数 )fMyID      (fNbrothers の何番目か )fCopyNo     ( コピーされた場合のコピーナンバー )新しく検出器 base class を作成する際には、これらの引数を J4VComponent に渡してやる必要があります。

実際には他の検出器のものをコピーして名前を変えただけで動くと思います。J4VCALDetectorComponet -> J4VFWDetectorComponent

Page 13: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 13

2. J4VFWDetectorComponent の実装J4VFWDetectorComponet.cc の中身

J4VFWDetectorComponent( const G4String &name, J4VDetectorComponent *parent, G4int nclones, G4int nbrothers, G4int me, G4int copyno ): J4VDetectorComponent( fgSubGroup, name, parent, nclones, nbrothers, me, copyno)

#include “J4VFWDetectorComponent.hh”J4FWMaterialStore* J4VFWDetectorComponet;;fgMatrialStore=0;G4String J4VFSDetectorComponent::fgSubGroup(“FW”)

J4VMaterialStore* J4VFWDetectorComponet::OpenMaterialStore(){ fMaterialStore = new J4FWMaterialStore();}

static で名前の宣言

先程の base classJ4VDetectorComponetに渡す。

MaterialStore を new

Page 14: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 14

3. J4MaterialStore の実装J4FWMaterialStore.cc の中身

#include "J4FWMaterialStore.hh"#include "G4Element.hh"#include "G4Material.hh"

G4Material* J4FWMaterialStore::Create( const G4String& /*name*/, G4MaterialPropertiesTable * /* mtable */ ) { G4Material* material = 0; return material;}

基本的な物質は J4MaterialCatalog に入っているので(scintillator, Pb, Fe, Si...)componet を作る際にはOpenMaterialStore()->Order(“scintillator”) とするだけで良い。混合ガスなど定義されていないものを使うときははここで定義しておく。G4 で Material を作るときと同じ要領。

J4MaterialCatalog にないものは自分でここで作成しておく

Page 15: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 15

4. Component の実装ついに検出器コンポーネントの実装です。 J4FW.cc の中身です。

J4FW::J4FW( J4VDetectorComponent* parent, G4int nclones, G4int nbrothers, G4int me, G4int copyno ): J4VFWDetectorComponent( fFirstName, parent, nclones, nbrothers, me, copyno )

G4String J4MUD::fFirstName( “FW" );

Assemble()Cabling() InstallIn()

static で名前の宣言

先程のベースクラスJ4VFWDetectorComponetに引数を渡す。

これらの関数の実装でComponet の作成、 SD 登録を行います。必ず実装する必要があります。

Logica Volume の生成、 Solid を作成する

Physical Volume の生成SD の生成、登録

コンストラクタの引数

Page 16: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 16

5. Assemble() 関数の実装void J4FW::Assemble(){ if ( !GetLV() ) { J4FWParameterList *list = OpenParameterList(); G4double rmin = list->GetFWInnerR(); G4double rmax = list->GetFWOuterR(); G4double len = list->GetSOLHalfZ(); G4double dphi = 360.*deg; // MakeSolid ----------// OrderNewTubs( rmin, rmax, len, dphi );

// MakeLogicalVolume --// MakeLVWith(OpenMaterialStore()->Order(list->GetFWMaterial()));

// SetVisAttribute ----// PaintLV(list->GetFWVisAtt(), list->GetFWColor()); }}

2重に作るのを防ぎます。

Solid を作ります。単なるシリンダーを簡単に作成できます。

物質名を渡してLV を作ります。

表示の設定です。

rmax

len

rmindphi

parameters

Page 17: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 17

6. Solid の作り方 (OrderNewTubs())

OrderNewTubs( rmin, rmax, halflenZ, totalPhi, endcapHalfThick, endcaprmin, sphi )

エンドキャップつきのシリンダーを作成できます。

便利な関数の使い方

rmax

halflenZ

rmin

totalPhi

endcaprmin

endcaHalfThick

エンドキャップ無しのシリンダーも作成可能です。

Page 18: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 18

Solid の作り方 ( 一般 )

G4Box ( 四角 )G4Sphere ( 曲面 )G4Trap ( 台形 )

// MakeSolid ----------// G4Box* box = new G4Box( GetName(),halfX, halfY, halfZ ); Register( box ); SetSolid( box );

Assemble()関数内で G4VSolid 継承クラス(CSG,specific,BREPS,Bolean,STEP) から適切なものを選んで作るhttp://www-jlc.kek.jp/~hoshina/geant4/Geant4Lecture2003/2-2b.html が参考になります。

// MakeSolid ----------// G4Sphere* cone = new G4Sphere( GetName(), rmin, rmax, sphi, dphi, stheta, dtheta ); Register(cone); SetSolid(cone); 自分で Solid を作成した場合に

はRegister(solid)SetSolid(solid)関数を呼んで登録する

Page 19: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 19

Solid の作り方 ( その他 )

基本図形にない複雑な形状は Boolean Solid を用いてSolid をくっつけたり切り抜いたりして作る

G4VSolid* solid1 = new G4Tubs( “solid1”, rmin1, rmax1, halfL1, sphi, dphi );G4VSolid* solid2 = new G4Tubs( “solid2”, rmin2, rmax2, halfL2, sphi, dphi );

G4VSolid* solidUnion = new J4UnionSolid( “Union”, solid1, solid2, rotMat, transV );Register( solidUnion );SetSolid( solidUnion );

例 ) シリンダーにシリンダーがくっついたような形状を作る  シリンダーは G4Tubs で作ることが出来る。

Page 20: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 20

7. 娘 Solid の作り方 J4FW の内部に layer 構造を作る場合J4FWLayer を作成し、 J4FW の Assemble() 関数内でオブジェクトを作る。

J4FW::Assemble() { // MakeSolid ----------// OrderNewTubs( rmin, rmax, len, dphi );

// MakeLogicalVolume --// MakeLVWith(OpenMaterialStore()->Order(list->GetFWMaterial()));

// SetVisAttribute ----// PaintLV(list->GetFWVisAtt(), list->GetFWColor());

J4FWLayer* fLayers = Create( this, nLayers ); Register( fLayers ); fLayerss -> InstallIn( this ); SetDaughter( fLayers );}

娘ボリュームの InstallIn()関数

娘登録

親のボリュームからはみ出してはいけない

Page 21: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 21

8. InstallIn()関数の実装

PVReplica

同じ形状のオブジェクトを一つのオブジェクトをn 分割して作成する。メモリーの節約になる。

void J4FW::InstallIn( J4VComponent* /* mother */, G4RotationMatrix* /* prot */,    const G4ThreeVector& /* tlate */) { Assemble();

SetPVPlacement(); または SetPVReplica();

// Cabling function for SD object... //Cabling(); }

PVPlacement

1

2

n

オブジェクトを一つ一つ配置していく

1

同じ形状の layerをおく場合でも。。。

InstallIn()関数は親のコンポーネントの中で呼ばれることに注意

Page 22: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 22

PVPlacement で置く場合

J4FW::Assemble( component, ) { for ( G4int i = 0; i < nLayers; i++ ) { J4FWLayer* Layer = Create( this, 1, nLayers, i ); .... Layer -> InstallIn( this ); }}

PVPlacement

1

2

n

Placement で置く場合には親の Assemble()関数の中で娘オブジェクトを作る際に引数に nbrothers, copyNo を与える。 nClones は 1になる。

J4FWLayer::InstallIn(){ SetPVPlacement( rotationMatrix, tlateVector ); (回転させながら置くことも可能 )}

Page 23: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 23

Replica を使う場合

Replica する際には親の Assemble()関数の中で娘オブジェクトを作る際に引数に nClones(Replica する数 ) を与える

PVReplica

1J4FWLayer::InstallIn() { Assemble(); SetPVReplica( 分割方向 , 分割ステップ , offset );}

J4FW::Assemble() { ...... J4FWLayer* fLayers = Create( this, nphi ); fLayers->InstallIn(this); .......}

Page 24: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 24

( 例 )CAL のジオメトリについて

J4CAL

J4VCALBlockJ4CALCone

J4CALTower

J4VCALLayer

J4VCALSubLayer

CAL は以下のような構造になっています。

J4VCALMiniCone

J4VCALMiniTower

EM/HD

EM/HD

EM/HD

EM/HD

EM/HD Abs/Active

OrderNewTubs()J4CAL 以外は G4Sphere() で作成

Page 25: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 25

( 例 )CAL のジオメトリについてTowerCone

MiniCone

MiniTowerBlock

SubLayer

HD

EM

Layer

EM, HD で異なる分割にできる。セルサイズを分割量で変更

ActiveAbs

Replica Replica

Page 26: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 26

9. Cabling() 関数の実装Hit 情報を出すには SD 登録する必要があります。SD 登録を行うのは Cabling() 関数です。J4FW 内で Cabling() 関数をとりあえず実装します。その後 J4FWHit/J4FWSD の実装を行います。

void J4FW::Cabling()

{

if ( !GetSD() ) {

J4FWSD* sd = new J4FWSD( this );

Register( sd );

SetSD( sd );

}

}

Solid 同様にRegister(sd)SetSolid(sd)関数を呼んで登録します

ここまでで、J4FWの実装は終わりです。

Hit 情報を残すコンポーネントは全て SD を作る必要があります。Layer の Hit 情報が欲しければ、J4FWLayerSD/J4FWLayerHitを作成するということです。

Page 27: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 27

ParameterList の作成

J4FW と同時進行で作成するものとして、J4FWParameterList の作成があります。各種パラメータをまとめます。

void J4FWParameterList::SetMaterial(){ fFWMaterial = J4ParameterTable::GetValue("J4FW.Material",“scintillator");... }void J4FWParameterList::SetParameters(){ fFWOuterR = J4ParameterTable::GetValue("J4FW.OuterR",100.0)*cm;.... }J4FWParameterList::SetVisAttributes() { fFWVisAtt = J4ParameterTable::GetValue("J4FW.VisAtt",false);.... }void J4FWParameterList::SetColors(){std::vector<double> col; col=J4ParameterTable::GetDValue("J4MUD.Color","1.0 0.0 0.0 1.0",4); SetMUDColor( G4Color( col[0], col[1], col[2], col[3] ) );.... }

Page 28: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 28

10. Hit と SD 実装Hit 情報を出すには SD を作成する必要があります。J4VSD を継承して J4FWSD を作成します。先に J4VHit を継承して J4FWHit を作る必要があります。J4FWSD.hh (ヘッダファイル )class J4FWSD : public J4VSD<J4FWHit> {public:

J4CALSD( J4VDetectorComponent* detector ); ~J4CALSD();

virtual G4bool ProcessHits( G4Step* aStep, G4TouchableHistory* ROhist ); virtual void Initialize ( G4HCofThisEvent* HCTE ); virtual void EndOfEvent ( G4HCofThisEvent* HCTE ); virtual void OutputAll( HCTE ) { J4VSD<J4FWHit>::OutputAll( HCTE ) }};

コピーして名前を付け替えるだけでいいとおもいます。

Page 29: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 29

Hit の実装J4FWHit.hh   ( ヘッダファイル )基本的な部分はコピーして名前を付け替えるだけで OK です。各検出器ごとに何のデータを残すかでこの部分が違います。

J4FWHit::J4FWHit( J4VComponent* ptrDetector, // He is in "location" now G4int preHitID, // pre Hit ID G4int cellID, // cell address id G4bool isEM, // ( 0, 1 ) = ( HD, EM ) G4bool isBarrel, // ( 0, 1 ) = ( Endcap, barrel ) G4double edep, // Energy Deposit G4double tof, // TOF G4ParticleDefinition* particle, // Particle data const G4ThreeVector& Xcm, // Edep*position vector const G4ThreeVector& Xcell ) // cell center position) : J4VHit( detector, trackID, mothertrackID, particle, tof, edep, totalE, momentum, pre, pos )

Page 30: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 30

Hit 、 Output() 関数の実装Output()関数を実装し何のデータを hit.dat に残すか決めます。

void J4FWHit::Output( G4HCofThisEvent* /* HCTE */ ){ if ( fgOutput ) fgOutput -> Output( this ); // output hitdata to output file .... if ( !ofs.good() ) { const G4String& errorMessage = "J4FWHit::Output(): write error."; G4cerr << errorMessage << G4endl; } else { std::ofstream& ofs = GetOutputFileStream();  ofs << “fwhit " << std::setw(3) << fPreHitID << " " << std::setw(5) << GetPDGEncoding() << " " ........ << std::endl; }}

Page 31: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 31

11. SD の実装J4FWSD では ProcessHits() 部分の実装がメインです。下記の場合には SD 登録した部分に粒子が入射されると全ての hit情報を残します。G4bool J4FWSD::ProcessHits(G4Step *aStep, G4TouchableHistory *){ //In order to use Get function, you must call SetNewStep() at first. SetNewStep(aStep)J4VComponent* location = GetComponent(); G4int   trackID = GetTrackID(); G4int mothertrackID = GetMotherTrackID(); G4ParticleDefinition *particle = GetParticle(); G4double tof = GetTof(); .... J4FWHit* hit = new J4FWHit( location, trackID, mothertrackID, particle, tof, edep, etot, p, pre, pos); ((J4FWHitBuf*)GetHitBuf())->insert( hit ); return true;}

Page 32: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 32

( 例 )CAL の Hit/SD について

SubLayerSD

Layer

ActiveAbs

PreHit

PostHit

CALSD

Hit

Page 33: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 33

Source/main/Jupiter.cc の実装#define __INSTALLIR__ #define __INSTALLBD__ #define __INSTALLVTX__ #define __INSTALLIT__ #if 0#define __INSTALLCDC__ #else#define __INSTALLTPC__#endif#define __INSTALLCAL__ #define __INSTALLSOL__ #define __INSTALLMUD__#define __INSTALLFW__

#ifdef __INSTALLFW_ J4FW *fwptr = new J4FW(); fwptr->SetMother(dtcptr->GetEXPHall()); dtcptr->AddComponent(fwptr);#endif

Page 34: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 34

検出器実装の完了

以上で最低限の検出器実装が終了しました。

他に残っているのは PostHit 、 PreHit  など検出器の入り口、出口での情報を残すようにするか ?などの検討が必要です。これは SD 、 Hit を新しく書く必要があります。

実装がすんだら実際に検出器の絵を描いたりgeometry test 、正しい hit情報が出ているかなどもチェックします。

Page 35: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 35

dawn を用いたジオメトリの描画

• Jupiter のジオメトリを作った後に確認する手段として dawn があります。

• Jupiter/macros 以下に dawn で絵を描くためのマクロがあります。

% ./bin/Linux-g++/Jupiter>/control/execute macros/visdawnf.g4mac>/control/execute macros/view.g4mac

Jupiter/images/dawn/g4_00.prim といったprim ファイル、 eps ファイルが作成されます。

Page 36: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 36

dawn を用いたジオメトリの描画

このような GUI が立ち上がるので、カメラの方向や位置、モード( wireframe, surface 等)選んでください。

ビューモード

ズームアップ

カメラで見る向きpolar 90 なら横から

Page 37: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 37

dawn を用いたジオメトリの描画

wireframe surface

surface だと断面が見えない。% dawn xxx.prim で出来た prim ファイルを表示

Page 38: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 38

dawncut を用いた描画dawncut で完成した prim file を x, y, z 平面でカットします

x=0z=0

% dawncut a b c d g4_00.prim input.prim cut.prim  ( ax+by+cz+d = 0 平面でカット )

Page 39: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 39

3 次元立体図で切り取られた絵を描くには?

!EndModeling !DrawAll !CloseDevice

!SetCamera !OpenDevice !BeginModeling

/BoundingBox ****** *******

まず、下記のシェルスクリプトを用いて prim ファイルを合わせる#!/bin/shdawncut 0.0 -1.0 0.0 0.0 gr.prim gr-ycut.primdawncut 0.0 1.0 0.0 0.0 gr.prim gr+ycut.primdawncut -1.0 0.0 0.0 0.0 gr-ycut.prim gr-xcut.primdawncut 1.0 0.0 0.0 0.0 gr-ycut.prim gr+xcut.primdawncut 0.0 0.0 1.0 0.0 gr-xcut.prim gr+zcut.primcat gr+ycut.prim gr+xcut.prim gr+zcut.prim > sum.primその後 sum.prim の最初と最後以外の以下の項目を消す。

Page 40: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 40

まとめJupiter のジオメトリのインストールについて述べました。基本的には変更したりする必要はないかもしれませんが、SD や Hit などは変更する必要がある場合があるかもしれません。

Page 41: LC ツール講習会 Jupiter part

2005/06/06 LC tools lecture, Jupiter part 41

CAL のジオメトリについてTowerCone

MiniCone

MiniTowerBlock

SubLayer

HD

EM

Layer

EM, HD で異なる分割にできる。セルサイズを分割量で変更

ActiveAbs