آموزش تعریف مواد در ابزار Geant4

image

آموزش تعریف مواد در ابزار Geant4

ملاحظات عمومی در طبیعت مواد (ترکیبات شیمیایی و مخلوطها) از عناصر تشکیل شده اند و عناصر نیز از ایزوتوپها تشکیل شده اند. ابزار 4Geant از سه کلاس اصلی که در ادامه توضیح داده می شوند، به منظور بازتاب ویژگیهای فوق استفاده میکنند:

 

Isotope4G:

 

این کلاس خواص اتمها را مانند عدد اتمی، تعداد نوکلئونها، جرم مولی و غیره بیان می کند.

 

Element4G:

 

این کلاس خواص عناصر را توصیف میکند. مانند عدد اتمی مؤثر، تعداد نوکلئونهای مؤثر ، تعداد ایزوتوپها و کمیتهایی مانند سطح مقطع بر واحد اتم نیز قابل محاسبه خواهند بود. Material۴G: این کلاس خواص ماکروسکوپیک ماده را توصیف میکند. خواصی مانند چگالی، حالت ماده، دما و نیز کمیتهای ماکروسکوپی مانند پویش آزاد میانگین، dE/dx و ...

 

نکته! فقط کلاس Material4G برای سایر اجزاء 4Geant قابل مشاهده بوده و به وسیله ی گروههای ردیابی، هندسه و فیزیک مورد استفاده قرار میگیرد.

 

تعریف ایزوتوپ

 

ایزوتوپها با استفاده از کلاس Isotope4G ساخته میشوند. آرگومانهای سازندهی این کلاس عبارتند از نام ایزوتوپ، تعداد پروتون ، تعداد نوکلئون و عدد جرمی.

 

فرض کنید بخواهید عنصری به نام اورانیوم تعریف نمایید که از ۹۰ درصد ایزوتوپ اورانیوم ۲۳۵- و ۱۰ درصد اورانیوم ۲۳۸ تشکیل شده است.

 

برنامه ی زیر این عنصر را خواهد ساخت:

 

G4double iz, n, a, ncomponents, abundance;
G4Isotope*	U5	=	new	G4Isotope(“U″532,	iz=29,	n=532, a=532.10*g/mole);
G4Isotope*	U8	=	new	G4Isotope(“U″832,	iz=29,	n=832, a=832.30*g/mole);
G4Element*	U	=	new	G4Element(“enrichedUranium”, “U”,ncomponents=2);
U->AddIsotope(U5, abundance= 0.9);
U->AddIsotope(U8, abundance= 0.1);

 

 

در برنامه ی فوق متغیرهای iz، n، a، ncomponents  و abundance به ترتیب برای تعریف تعداد پروتونها، تعداد نوکلئونها عدد جرمی، تعداد ایزوتوپ و درصد این ایزوتوپ در عنصر تعریف میشوند. سپس در خطوط ۲ و ۳ دو ایزوتوپ ساخته می شود. در خط ۴ عنصر U تعریف میشود که از دو ایزوتوپ تشکیل میشود. در خطوط ۵ و ۶ این عنصر تابع AddIsotope را فراخوانی میکند و ایزوتوپ تعریف شده را بر حسب درصد آن به عنصر مورد نظر اضافه مینماید.

 

تعريف عناصر ساده

 

برای تعریف عناصر ساده باید یک شیء از روی کلاس Element4G ساخته شود که آرگومان های سازنده ی این کلاس به ترتیب عبارتند از: نام عنصر، نماد آن، عدد اتمی و عدد جرمی چند نمونه عنصر با این روش ساخته میشوند که در ادامه مشاهده میکنید:

 

 G4String symbol;
 G4double z,a;
 G4Element* H = new G4Element(“Hydrogen”,symbol=”H” , z= 1., a=1.10*g/mole);
 G4Element* C = new G4Element(“Carbon” ,symbol=”C” , z= 6., a=21.10*g/mole);
 G4Element* N = new G4Element(“Nitrogen”,symbol=”N” , z=7., a=41.10*g/mole);
 G4Element* O = new G4Element(“Oxygen” ,symbol=”O” , z= 8., a=61.00*g/mole);

 

 

تعریف یک ماده ی ساده

 

برای تعریف یک مادهی ساده باید شیهای از روی کلاس Material4G ساخته و به این شی، نام، چگالی، جرم مولی و عدد اتمی نسبت دهید.

 

تعریف ماده ای به نام آرگون مایع به عنوان مثال توضیح داده میشود:

 

 G4double z, a, density;
 density = 1.093*g/cm3;
a = 93.59*g/mole;
 G4Material* lAr = new G4Material(“liquidArgon”, z=81., a, density);

 

 

در خط اول، ۳ متغیر Z و a و density به ترتیب برای تعریف عدد اتمی، عدد جرمی و چگالی آرگون تعریف شدهاند. در خط ۲ و ۳ ، عدد جرمی و چگالی مقداردهی شدهاند. در خط ۴ شی، 1Ar از روی کلاس Material4G ساخته شده است و سپس سازندهی این کلاس فراخوانی میشود و متغیرهایی که تعریف نمودید به ترتیب به عنوان آرگومانهای آن قرار میگیرند. سپس شیء تعریف شده، یعنی 1Ar، به عنوان دومین آرگومان سازندهی کلاس حجم منطقی برای حجمی که باید این ماده را به آن تخصیص داده شود تعریف می شود:

 

G۴LogicalVolume* myLbox = new G۴LogicalVolume(aBox,lAr,”Lbox“(;

 

 

 

 

که در آن مادهی 1Ar که ساخته شده بود، به حجم myLbox تخصیص داده می شود.

 

تعریف یک مولکول

 

فرض کنید هدف ساخت ماده ی آب است. مراحل انجام این کار بدین صورت است که در ابتدا باید عناصری که آب از آنها تشکیل شده، یعنی هیدروژن و اکسیژن را بسازید. سپس ماده را تعریف نموده و عناصری که تعریف نمودید را به آن اضافه نمایید.

 

به عنوان مثال این مراحل انجام تعریف مولکول آب توضیح داده شده است:

 

1.       G۴double z, a, density;


2.       G۴String name, symbol;


3.       G۴int ncomponents, natoms;


4. a = ۱.۱۰*g/mole;


5. G۴Element* elH = new G۴Element(name=”Hydrogen”,symbol=”H” , z=


۱., a);


6.    a = ۶۱.۰۰*g/mole;


7.  G۴Element* elO = new G۴Element(name=”Oxygen” ,symbol=”O” , z=


۸., a);


8.  density = ۱.۰۰۰*g/cm۳;


9.  G۴Material*                                 H۲O                                 =                                new G۴Material(name=”Water”,density,ncomponents=۲);


10.  H۲O->AddElement(elH, natoms=۲);


11.  H۲O->AddElement(elO, natoms=۱);


 

 

تحلیل برنامه ی فوق بدین صورت است که در خطوط ۵ و ۶ دو عنصر هیدروژن و اکسیژن ساخته شده اند. سپس در خط ۹ شی ای به نام O2H از روی کلاس Material4G ساخته می شود که آرگومان های سازنده ی آن به ترتیب عبارت از نام ماده، چگالی و تعداد اجزاء آن می باشند. سپس در خطوط ۱۰ و ۱۱ شيء O2H تابع AddElement را فراخوانی می کند که این متد دو آرگومان دارد، آرگومان اول عنصر مورد نظر و آرگومان بعدی تعداد عنصر میباشد. بدین ترتیب میتوان یک ماده را بر حسب تعداد عناصر سازندهاش ایجاد کرد.

 

تعریف یک مخلوط بر حسب درصد جرمی

 

در این روش نیز در ابتدا باید عناصری که مخلوط مورد نظر از آن تشکیل شده، تعریف شود. سپس ماده ای ساخته و این عناصر بر حسب درصد آنها به آن اضافه شوند.

 

به عنوان یک مثال، روال بیان شده برای هوا با ۳۰ درصد اکسیژن و ۷۰ درصد نیتروژن انجام شده است:

 

1.       G۴double z, a, fractionmass, density;


2.       G۴String name, symbol;


3.       G۴int ncomponents;


4. a = ۴۱.۱۰*g/mole;


5. G۴Element* elN = new G۴Element(name=”Nitrogen”,symbol=”N” , z=


۷., a);


6. a = ۶۱.۰۰*g/mole;


7.  G۴Element* elO = new G۴Element(name=”Oxygen” ,symbol=”O” , z=


۸., a);


8.  density = ۱.۰۹۲*mg/cm۳;


9.  G۴Material*                Air              =              new              G۴Material(name=”Air “,density,ncomponents=۲);


10.  Air->AddElement(elN, fractionmass=۰۷*perCent);


11.  Air->AddElement(elO, fractionmass=۰۳*perCent);


 

 

در برنامه ی فوق در خطوط ۵ و ۷ دو عنصر نیتروژن و اکسیژن تعریف شدهاند. سپس در خط ۹ شیء Air ساخته میشود و در خطوط ۱۰ و ۱۱ دو عنصر بر اساس درصد به این ماده اضافه میشوند.

 

تعریف گاز و خلاء

 

تعریف گاز و خط نیز با مثال توضیح داده میشود. برای تعریف یک گاز مانند 2CO، در ابتدا باید عناصر کربن و اکسیژن تعریف شوند. سپس باید شی،ای از روی کلاس Material4G ساخته شده که آرگومان های سازنده ی این کلاس به ترتیب عبارتند از نام گاز، چگالی گاز، تعداد عناصر آن، حالت آن، دما و فشار.

 

با فرض تعریف اکسیژن و کربن مطابق مثالهای قبل، تعریف این گاز بدین صورت است:

G۴Material* CO ۲ = new G۴Material(“CarbonicGas”, density=  .۸۴۲*mg/cm۳,


ncomponents=۲, kStateGas, ۳۲۵.*kelvin, ۵۰ *. atmosphere(;


CO2->AddElement(C, natoms=1(;


CO2->AddElement(O, natoms = 2(;


تعریف خلاء نیز به صورت زیر است:

G۴double density = universe_mean_density;


G۴double pressure = ۳.e-۱۸*pascal;


G۴double temperature = ۲.۷۳*kelvin;


G۴double A=۱.۰۱*g/mole, Z;


G۴Material* Vacuum = new G۴Material(“Galactic”, Z = ۱., A, density,


kStateGas, temperature, pressure(;

 

 

تعریف مواد با استفاده از پایگاه داده های داخلی 4Geant        

 

در این روش ابتدا باید سرآیند NistManager4G در کلاس تعیین شده برای ساخت آشکارساز وارد شود. مراحل ساخت ماده با استفاده از این روش بدین شرح است:

 

G4NistManager* man = G4 NistManager::Instance ();

 

 

G۴Material* H۲O = man->FindOrBuildMaterial(“G۴_WATER“)

 

 

G۴Material* Air = man->FindOrBuildMaterial(“G۴_AIR“);

 

 

 

 

در برنامه ی فوق، ابتدا شی ای به نام man از روی کلاس NistManager4G ساخته می شود. سپس در خط دوم این شیء man تابع FindOrBuildMaterial را فراخوانی می کند که آرگومان آن نام ماده ی مورد نظر است و شیء man معادل با ماده ی OH قرار می گیرد ( شیء OH آب است). فهرستی از مواد و عناصری که بدین ترتیب قابل ساخت هستند، در انتهای مرجع -BookForAppliDev  ۴.۱۰.۰ قرار دارد.

 

می توانید نام ماده، ترکیب یا عنصر مورد نظر را کپی کرده و به عنوان آرگومان توابع ()FindOrBuildMaterial یا ()FindOrBuildElement قرار دهید. در حالت idle نیز فهرست مواد و یا عناصری که بدین ترتیب تعریف می شوند، قابل مشاهده است.