• 検索結果がありません。

Jupiter_lecture_ono.ppt

N/A
N/A
Protected

Academic year: 2021

シェア "Jupiter_lecture_ono.ppt"

Copied!
43
0
0

読み込み中.... (全文を見る)

全文

(1)

Geant4 based

Full Simulator

Jupiter

2007/02/25

ILC物理、測定器シミューレション講習会

Hiroaki Ono

Niigata University

(2)

内容

Jupierとは?

Jupiterの使い方

‒ 入手方法とセットアップ

‒ Jupiterのみの使用

‒ JSFJ4としてJSFを通して使う場合

Jupiterへの検出器ジオメトリの実装

‒ 新しい検出器を作る場合

‒ ジオメトリ

‒ ヒットとSD (Sensitive Detector)

(3)

1. Jupiterとは?

Geant4をベースとしたILC実験用GLD検出器シミュレータ

(SimToolsのうちの一つ)

検出器パラメータ、ジオメトリの変更やインストール、アンイン

ストールが簡単に行えるように構築

現在IceCube実験に所属している保科琴代さんとKEKの藤井

恵介さんがコアデベロッパ

ソースはC++で記述

JUPITER

JLC Unified Particle Interaction

and Tracking EmulatoR

(4)

GLD Simulation/Analysis Tools

JUPITER

JLC Unified Particle Interaction and Tracking EmulatoR

IO

Input/Output

module set

URANUS

Monte-Calro Exact hits

To Intermediate Simulated output Unified Reconstruction and ANalysis Utility Set METIS

Satellites

Geant4 based

Simulator

JSF/ROOT based

Framework (JSFJ4)

MC truth generator Event Reconstruction

Tools for Full Simulation For real data

Full Geometry/MC generator

Clustering/smearing

Library Extension

for

Data Analysis

(5)

Jupiter Feature

Run mode:

– A standalone Geant4 application (Geant4.8.0.p01)

– JSF application to output a ROOT file (JSFJ4).

Input:

– StdHep (ASCII/Binary), HepEvt, CAIN, or generators

implemented in JSF

Output:

– Exact Hits of each detectors (Smearing in Satellites)

– Format: ROOT (standard), ASCII (debug), LCIO

Physics List

– LCPhysicsList, QGSP, LHEP, …

Geometry:

(6)

Jupiterのディレクトリ構造

Jupiter

bin

lib

macros

data

config

source

kern

main

lcexp

bd

cal

clx

it

vtx

mud

sol

tpc

fcal

bcal

cdc

•Base class

•G4継承 class

•PhysicsList

ct

ir

Sub Detector Geometry

exmaples

ParameterList Run macros

(7)

Current Jupiter Geometry

MUD

SOL

CLX

TPC

VTX&IT

FCAL

BCAL

VTX

IT

(8)

Detail of Detector Geometry

210

280

350

765

r-phi view

r-z view

ECAL

HCAL

TPC

VTX & IT

SOL

MUON

420

800

Unit : [cm]

40

(9)

Sub Detectors in Jupiter

3Tesla

Solenoid Magnet (SOL)

Fe(20mm)/Sci(5mm)/Readout(1mm) 5.7λ, 46 sampling layers HD Calorimeter (CAL/CLX) Rin = 2.1m W(3mm)/Sci(2mm)/Readout(1mm). 26X0, 33 sampling layers EM Calorimeter (CAL/CLX) Muon (MUD) R=40-205cm, L=230cm

Gas P10, 200 Radial sampling, Central Tracker (TPC)

Barrel: 4 layers, Si Cylinder, R=9-37cm Endcap: 7 layers, Si disk, Z=20-140cm Intermediate Tracker (IT)

6 layers, R=2-5cm, Si=50µm, |cosθ|<0.9 Cylindirical shape (not FPCCD for now) Vertex Detector (VTX)

(10)

Feb.25.2007 Jupiter Lecture 10

Calorimeter Geometry (CAL/CLX)

Full One Tower  EM + HD 27 X0 6.1λ

Barrel block

Endcap block

EM

: W/Sci/Air=3/2/1mm 33 layer (r)

HD : Fe/Sci/Air=20/5/1mm 46 layer (z)

CAL (Tower Shape)

(11)

2. Jupiterの使い方

Jupiter 単独の場合

– Geant4 (jlclogin2:/proj/soft/ext/g4)

– CLHEP (jlclogin2:/proj/soft/ext/clhep)

– Jupiter (jlclogin2:/proj/sort/Release/1.XX/Jupiter)

JSFJ4 with JSF (ROOT output)

– JSF (jlclogin2:/proj/sort/Release/1.XX/jsf)

– Satellites (jlclogin2:/proj/sort/Release/1.XX/Satellites)

– Uranus (jlclogin2:/proj/sort/Release/1.XX/Uranus)

Jlclogin2上であればReleaseVersionを使うのが楽

– /proj/soft/Release/1.XXから setup.bash をコピー

もちろん自分でコンパイルしても使用可能

(12)

環境変数の設定

(setup.bash)

export LC_RELEASE=1.34 export LC_RELEASE_DIR=/proj/soft/Release/$LC_RELEASE export ROOTSYS=/proj/soft/ext/root/5.10.00 export G4INSTALL=/proj/soft/ext/g4/geant4.8.0.p01 export LCIO=/proj/soft/ext/lcio/v01-06 export JDK_HOME=$LC_RELEASE_DIR/JDK/j2sdk1.4.2_08 export CERN_ROOT=/proj/soft/ext/cernlib/2005 export CLHEP_BASE_DIR=/proj/soft/ext/clhep/1.9.2.2 export CLHEP_INCLUDE_DIR=$CLHEP_BASE_DIR/include export LCBASEDIR=$LC_RELEASE_DIR/lcbase export LEDAROOT=$LC_RELEASE_DIR/Leda export LCLIBROOT=$LC_RELEASE_DIR/lclib export JSFROOT=$LC_RELEASE_DIR/jsf export KFLIBROOT=$LC_RELEASE_DIR/physsim export JUPITERROOT=$LC_RELEASE_DIR/Jupiter export SATELLITESROOT=$LC_RELEASE_DIR/Satellites export URANUSROOT=$LC_RELEASE_DIR/Uranus setup.bash 4.8.0.p01以降の バージョンでは 結果がおかしい? (2007/02/25) SimToolsについては 全てCVSでソース管理 されているので、 自分でCVS版を持ってくる ことも可能。 SimTools

(13)

CVS版の取得方法

Jlclogin2上で使用する場合

% cvs -d :pserver:anonymous@jlccvs.kek.jp/home/cvs/soft login

password : <return>

% cvs -d :pserver:anonymous@jlccvs.kek.jp/home/cvs/soft co Jupiter

% export CVSROOT=/proj/soft/CVSMASTER

% cvs co Jupiter Satellites Uranus jsf

外部から使用する場合

http://jlccvs.kek.jp/cgi-bin/cvsweb.cgi/

から取得可能

‒ブラウザを使わずに anonymous CVS で取得することも可能

CVS版ファイルの更新(commit)等もCVSを使って管理

(14)

Jupiter を単体で使う場合

Jupiterを単体で使用するの場面は少ない

‒ DAWNを使ってジオメトリの絵を表示させたい(後述)

‒ 新しくインストールしたモジュールのテスト

ジオメトリファイル(geomfile)、G4macroを読み込んで起動

% ./bin/Linux-g++/Jupiter [-f geomfile] [g4mac]

${JUPITERROOT}/macro以下に絵を描く macro が用意されている

% ./bin/Linux-g++/Jupiter

>/control/execute macros/visdawnf.g4mac

>/control/execute macros/view.g4mac

(15)

JupiterをJSFを介して動かす場合

JupiterはJSFJ4として使うのが一般的

Satellites/examples/SimTools/exam01,02 が例題

‒ exam01 : single particle event

‒ exam02 : e+e-->gamma/Z->qq event

‒ jsf.conf, rungun.mac で生成イベントを指定

 Interactive mode (Use GUI event display)

% jsf gui.C

 Batch mode

% jsf -b -q --maxevt=3 --g4macro=rungun.g4mac gui.C

% jsf -b -q --OutputFile=jsfj4.root -conf=jsf.conf gui.C

(16)

JSFJ4の設定ファイル

JSFGUI.SimulationType: 3

# Simulation type = 3 for JSFJ4 simulation

JSFGUI.RunMode:1

#!runmode

# = 1 Generate event. # = 2 Read root file.

JSFJ4.UseJupiterGenerator:Yes/No #!generator JSFGUI.Pythia.Decay.Z:-2 #!zdcay JSFGUI.Pythia.Process.gammaZ:1 #!gammaz

jsf.conf

Jupiterで実装された

Generator を使うか指定

/gun/number 1 /gun/particle mu-/gun/energy 5 GeV /gun/direction 1.0 0. 0. /gun/position 0. 0. 0. m /jupiter/generator ParticleGun

rungun.mac

e+e-->gamma/Z->qq

$JSFROOT/macro/InitPythia.C

にJSFでのPythia Generatorの情報

(17)

JSFJ4の追加設定

JSFJ4.ParameterTable:gldaug06_2m.dat #geom JSFJ4.HasCAL:No #hascal JSFJ4.HasCLX:Yes #hasclx

jsf.conf

Geometryパラメータファイルを

変更して読み込ませる場合

検出器モジュールを

使わなくすることも出来る

jsf.conf パラメータの詳細については以下を参照

$JSFROOT/macro/default.conf (default)

http://acfahep.kek.jp/subg/sim/simtools/jsfparam.html

(18)

3. Jupiterへの検出器実装方法(calを例に)

1.

Sub Detector BaseClass作成 (他検出器からコピー)

̶

J4V

CAL

DetectorComponet

̶

J4V

CAL

MaterialStore

2.

Component の実装 (J4

CAL

, J4

CAL

ParameterList)

Assemble() : ParameterTableへの追加, Solidの選択、作成

InstallIn(), Cabling() : Solidの配置

3.

Hit/SD(SensitiveDetector)の構築 (J4

CAL

Hit, J4

CAL

SD)

Hit type (Track/CAL)、 残す情報の選択

Pre/PostHitなどの付加的情報

4.

main関数への登録

5.

Satellites以下の実装 (

JSFJ4で動かすため)

io/mctruth, metis/XXX/hitmaker

io/jsfj4/JSFJupiter

(19)

Jupiter Base Class

J4VComponent

virtual InstallIn( mother, pRot, tlate, copyNo)=0 virtual Assemble()=0 virtual Cabling() OutPutAll() virtual OpenMaterialStore() J4VDetectorComponent J4VCALDetectorComponent J4VSD J4VSensitiveDetector MakeHitBuf() OutputAll() OutputAll() OpenMaterialStore() G4VSensitiveDetector J4VHit G4VHit J4CALMaterialStore Create(name) J4VMaterialStore Order(matelial) CAL Detector Base Class

J4CALSD

(20)

Sub Detector ディレクトリの中

J4VCALDetectorComponent.hh/cc

J4CALMaterialStore.hh/cc

J4CAL.hh/cc

J4CALParameterList.hh/cc

J4CALSD.hh/cc

J4CALHit.hh/cc

J4VDetectorComponetの継承クラス ユーザーが定義するマテリアル 検出器本体の実装(PV,LV,Solid) 各種パラメータ J4VSDの継承、SDの実装 J4VHitの継承、Hitの実装 これらのファイルは、他の検出器からコピーして 名前を付け替えて使うのが早道 J4CALLayer.hh/cc 娘ボリューム

Jupiter/source/cal/{src,include}

src : ソース include : ヘッダファイル

(21)

Sub Detector Base Class

J4VCALDetectorComponet (J4VCompoentを継承)

‒ Sub Detector Group名 ( CAL ) を設定

‒ OpenMaterialStore() の実装

J4CALMaterialStore (J4VMaterialStoreを継承)

‒ 基本的な物質はJ4MaterialCatalogで定義されている

(Sci,Pb,Si,Fe,Air

)

‒ OpenMaterialStore()->Order( Carbon )で呼び出して使う

‒ 混合ガス等定義されていないものを使う場合には

Create() 関数内で定義する

‒ Geant4で物質を作るのと同じ

(22)

Installation of Components

J4CAL の中身

J4CAL::J4CAL( J4VDetectorComponent* parent, G4int nclones, G4int nbrothers, G4int me,

G4int copyno ) : J4VCALDetectorComponent( fFirstName, parent,

nclones, nbrothers, me, copyno ) G4String J4CAL::fFirstName( CAL" );

virtual Assemble()

virtual Cabling()

virtual InstallIn()

名前の宣言

Logica Volumeの生成、Solidの作成

Physical Volumeの生成 (配置)

SDの生成、登録

Pure virtual

なので必ず実装しなければならない

(23)

(1). Assemble() 関数

void J4CAL::Assemble() {

if ( !GetLV() ) {

J4FWParameterList *list = OpenParameterList(); G4double rmin = list->GetCALInnerR();

G4double rmax = list->GetCALOuterR(); G4double len = list->GetCALHalfZ(); G4double dphi = 360.*deg;

// MakeSolid ---//

OrderNewTubs( rmin, rmax, len, dphi ); // MakeLogicalVolume --// MakeLVWith(OpenMaterialStore()->Order(list->GetCALMaterial())); // SetVisAttribute ----// PaintLV(list->GetCALVisAtt(), list->GetCALColor());

単なるシリンダー

Solidを作る

物質名を渡して

LVを作成

rmax len rmin dphi

Solidの作成、LogicalVolumeの作成

(24)

Solidの作り方 1 (基本図形)

G4Box (四角)

G4Sphere (曲面)

G4Trap (台形)

// MakeSolid ---//

G4Box* box = new G4Box( GetName(),halfX, halfY, halfZ ); Register( box );

SetSolid( box );

Assemble()関数内でG4VSolid継承クラスを使ってSolidを作る

̶

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)

(25)

Solid の作り方 2 (便利な関数)

rmax

halfZ

rmin

totalphi

endcaprmin

OrderNewTubs(rmin, rmax, halfZ, totalphi, endcapHalfThick,

endcaprmin, sphi ))

Endcap付きシリンダーの作成(Endcap無しも可能)

Register()

SetSolid()

(26)

Solid の作り方 3 (その他)

基本図形に無い複雑な形状は

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 で作ることが出来る。

(27)

Daughter Volumes

J4CAL の内部に layer 構造を作る場合

J4CALLayer を作成し、J4CAL の 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()関数

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

(28)

(2). InstallIn() 関数

一つのオブジェクトを n分割して作成する。

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

Assemble(); SetPVPlacement(); または

SetPVReplica();

// Cabling function for SD object... //Cabling(); } 1 2 n オブジェクトを 一つ一つ配置していく 1

InstallIn()関数は親のコンポーネントの中で

呼ばれることに注意

Assembleがここで呼ばれる 同じ形状をたくさん並べる場合 メモリーを1/nに節約 PVPlacement PVReplica

(29)

PVPlacement

J4CAL::Assemble( component, ) { for ( G4int i = 0; i < nLayers; i++ ) {

J4CALLayer* Layer = new J4CALLayer( this, 1, nLayers, i ); ....

Layer -> InstallIn( this ); } } PVPlacement

Placementで置く場合には

親のAssemble()関数の中で娘オブジェクトを作る際に

引数にnbrothers, copyNoを与える。nClonesは1になる。

J4CALLayer::InstallIn() {

SetPVPlacement( rotationMatrix, tlateVector );

(回転させながら置くことも可能)

}

2 n

(30)

PVReplica

Replicaで配置する場合は

親のAssemble()関数の中で娘オブジェクトを作る際に

引数に

nClones(分割数)

を与え、

SetPVReplica()関数には分割方向、分割ステップを与える

PVReplica 1

J4CALLayer::InstallIn() {

Assemble();

SetPVReplica( 分割方向, 分割ステップ, offset );

}

J4CAL::Assemble() {

...

J4CALLayer* fLayers = new J4CALLayer( this, nphi ); fLayers->InstallIn(this);

...

(31)

(3). Cabling() 関数

Hit情報を残すためにSD登録を行なう

SD登録は Cabling() 関数を実装することで行なう

void J4CAL::Cabling() { if ( !GetSD() ) {

J4CALSD* sd = new J4CAKSD( this ); Register( sd ); SetSD( sd ); } }

Hit情報を残すコンポーネントは全

てSDを作る必要がある。

LayerのHit情報が欲しければ、

J4CALLayerSD/J4CALLayerHit

を作成する。

J4CAL.cc/hh 内で実装するのは

最低限

1. Assemble()

2. InstallIn()

3. Cabling()

(32)

ParameterList

J4ParamterTable()::GetValue( J4CALXX ,value)*cm; を使っ

て、パラメータをファイルから読み込むことが可能

void J4CALParameterList::SetMaterial(){

fCALMaterial = J4ParameterTable::GetValue("J4CAL.Material", scintillator"); ... } void J4CALParameterList::SetParameters(){ fCALOuterR = J4ParameterTable::GetValue("J4CAL.OuterR",100.0)*cm; .... } J4CALParameterList::SetVisAttributes() { fCALVisAtt = J4ParameterTable::GetValue("J4CAL.VisAtt",false); .... } void J4CALParameterList::SetColors(){ std::vector<double> col; col=J4ParameterTable::GetDValue("J4CAL.Color","1.0 0.0 0.0 1.0",4); SetCALColor( G4Color( col[0], col[1], col[2], col[3] ) );

(33)

Components 例 (CLX)

(34)

(4). Hits/SD

J4CALHit (Hit implementation, J4VHitを継承)

J4CALSD (Sensitive Detector, J4VSDを継承)

J4CALSD.hh (ヘッダファイル)

class J4CALSD : public J4VSD<J4CALHit> { 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<J4CALHit>::OutputAll( HCTE ) } };

(35)

Hits

J4VHitに渡すもの以外に保存するべきヒット情報等

をデータメンバとして持つ

J4CALHit::J4CALHit( 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 ),

(36)

SD

ProcessHits() の実装がメイン

G4bool J4CALSD::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(); ....

J4CALHit* hit = new J4CALHit( location, trackID, mothertrackID, particle, tof, edep, etot, p, pre, pos);

((J4CALHitBuf*)GetHitBuf())->insert( hit ); return true;

(37)

SDの例 (CALSDs)

SubLayerSD Layer Active Abs PreHit PostHit CALSD Hit

(38)

(5). main/Jupiter

ここに登録して実装終了

#define __INSTALLIR__

#define __INSTALLBD__

#define __INSTALLVTX__

#define __INSTALLIT__

#if 0

#define __INSTALLCDC__

#else

#define __INSTALLTPC__

#endif

#define __INSTALLCAL__

#define __INSTALLSOL__

#define __INSTALLMUD__

#ifdef __INSTALLFW_

J4CAL *calptr = new J4CAL();

calptr->SetMother(dtcptr->GetEXPHall()); dtcptr->AddComponent(calptr);

#endif

Install したり

(39)

(6). Satellites for JSFJ4

JSFJ4を使ってJSF越しにJupiterを動かすためには

以下の実装が必要

‒ Satellites/io/mctruth/cal/

• S4CALExactHit, S4CALMCTruth, S4CALMCTruthBuf

‒ Satellites/io/jsfj4

• JSFJupiter

‒ Satellites/metis/cal/hitmaker

• hitmaker/, trackmaker/(for track), analysis/

(40)

Geometry viewer DAWN

このようなGUIが立ち上がるので、カメラの方向や位置、 モード(wireframe, surface 等)選ぶ ビューモード ズームアップ カメラで見る向き polar 90 なら横から

% dawn XXX.prim

(41)

Geometry cut viewer ‘Dawncut’

dawncut で完成した prim file を x, y, z 平面でカット

% dawncut a b c d g4_00.prim input.prim cut.prim

 ( ax+by+cz+d = 0 平面でカット )

(42)

How to make 3D Cut View?

dawncut で作ったファイルをくっつければ良い

http://www.hep.sc.niigata-u.ac.jp/~ono/acfa-sim-j/Jupiter/mkcutview.sh

#!/bin/sh

dawncut 1 0 0 0 ${inFile} x-.prim dawncut -1 0 0 0 ${inFile} x+.prim dawncut 0 0 1 0 x+.prim x+z-.prim dawncut 0 1 0 0 x+.prim x+y-.prim dawncut 0 -1 0 0 x+.prim x+y+.prim dawncut 0 0 1 0 x-y+.prim x-y+z-.prim head -6 x-.prim > ${outHalfFile}

for prim in "x-.prim x+z-.prim"; do cat ${prim} | grep -v "!" | grep -v "/BoundingBox" >> ${outFile} done

tail -3 x-z-.prim >> ${outHalfFile}

x-とx+z-をくっつけた

(43)

Jupiterに関するドキュメント

Jupiterのマニュアルについて

保科さんが書いたマニュアルを以下に置きました。

http://www.hep.sc.niigata-u.ac.jp/~ono/acfa-sim-j/Jupiter_manual.pdf

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

ています。

http://www-jlc.kek.jp/~hoshina/cdc/geant4/diary/diary.htm

Geant4のジオメトリ、ヒットの実装について

Geant4 lecture 2003のページが役に立ちます。

http://geant4.kek.jp/g4users/tutorial03/

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

参照

関連したドキュメント

The goods and/or their replicas, the technology and/or software found in this catalog are subject to complementary export regulations by Foreign Exchange and Foreign Trade Law

The purpose of the present paper is to investigate mathematically the infrared (IR) catastrophe for Nelson’s Hamiltonian [25], in particular non- existence of ground state and

(※)Microsoft Edge については、2020 年 1 月 15 日以降に Microsoft 社が提供しているメジャーバージョンが 79 以降の Microsoft Edge を対象としています。2020 年 1

There have been a few researches on the time decay estimates with the help of the spectral analysis of the linearized Boltzmann equation for soft potentials with cut-off.. The

1994 Seiberg-Witten computed the prepotential of N = 2 SUSY YM theory (physical counterpart of Donaldson invariants) via periods of Riemann surfaces (SW curve).. 1997

Con- sequently, they defined basic notions of soft topological spaces such as open soft and closed soft sets, soft subspace, soft closure, soft nbd of a point, soft separation

• Soft−Skip Mode: This proprietary feature of the NCP1271 minimizes the standby low−frequency acoustic noise by ramping the peak current envelope whenever skip is activated..

(注)