Garfield++ v2r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
MagboltzInterface.hh
Go to the documentation of this file.
1// Interface to Magboltz (version 9)
2
3#ifndef G_MAGBOLTZ_INTERFACE
4#define G_MAGBOLTZ_INTERFACE
5
6#ifndef __CINT__
7
8namespace Garfield {
9
10namespace Magboltz {
11
12extern "C" {
13
14// Magboltz COMMON blocks
15
16// Magnetic field
17extern struct {
18 double eovb;
19 double wb;
20 double btheta, bmag;
22
23extern struct {
24 long long nGas;
25 long long nStep;
26 long long nAniso;
27 double efinal;
28 double estep;
29 double akt;
30 double ary;
31 double tempc;
32 double torr;
33 long long ipen;
35
36extern struct {
37 double tmax;
38 double small;
39 double api;
40 double estart;
41 double theta, phi;
42 double rstart;
43 double efield;
44 long long nmax;
46
47// Physical constants
48extern struct {
49 double echarg;
50 double emass;
51 double amu;
52 double pir2;
54
55// Definition of the gas mixture
56extern struct {
57 long long ngasn[6];
59extern struct {
60 double an1, an2, an3, an4, an5, an6, an;
61 double frac[6];
63
64// Calculation results
65// Drift velocity
66extern struct {
67 double wx, wy, wz;
69extern struct {
70 double dwx, dwy, dwz;
72
73// Diffusion
74extern struct {
75 double difxx, difyy, difzz;
76 double difyz, difxy, difxz;
78extern struct {
79 double dxxer, dyyer, dzzer;
80 double dyzer, dxyer, dxzer;
82extern struct {
83 double difln, diftr;
85extern struct {
86 double dfler, dfter;
88
89// Townsend and attachment coefficient
90extern struct {
91 double alpha, att;
93extern struct {
94 double alper, atter;
96extern struct {
97 double ralpha, ralper;
100 double tofwr, tofwrer;
103
104void gasmix_(long long* ngs, double* q, double* qin, long long* nin, double* e,
105 double* ei, char* name, double* virl, double* eb, double* peqel,
106 double* peqin, double* penfra, long long* kel, long long* kin,
107 double* qion, double* peqion, double* eion, long long* nion,
108 char scrpt[260][50]);
109
110void setup1_();
111
112void mixer_();
113
114void elimit_(long long* ielow);
115void elimitb_(long long* ielow);
116void elimitc_(long long* ielow);
117
118void monte_();
119void montea_();
120void monteb_();
121void montec_();
122
123void alpcalc_();
124void alpclca_();
125void alpclcb_();
126void alpclcc_();
127
128void prnter_();
129void output_();
130void output2_();
131}
132}
133}
134#endif
135#endif
void gasmix_(long long *ngs, double *q, double *qin, long long *nin, double *e, double *ei, char *name, double *virl, double *eb, double *peqel, double *peqin, double *penfra, long long *kel, long long *kin, double *qion, double *peqion, double *eion, long long *nion, char scrpt[260][50])
struct Garfield::Magboltz::@9 diferb_
struct Garfield::Magboltz::@8 diflab_
struct Garfield::Magboltz::@5 ratio_
struct Garfield::Magboltz::@12 ctowns_
void elimitc_(long long *ielow)
struct Garfield::Magboltz::@13 ctwner_
struct Garfield::Magboltz::@4 gasn_
struct Garfield::Magboltz::@0 bfld_
struct Garfield::Magboltz::@7 velerr_
struct Garfield::Magboltz::@2 setp_
void elimit_(long long *ielow)
struct Garfield::Magboltz::@1 inpt_
void elimitb_(long long *ielow)
struct Garfield::Magboltz::@3 cnsts_
struct Garfield::Magboltz::@14 tofout_
struct Garfield::Magboltz::@10 difvel_
struct Garfield::Magboltz::@6 vel_
struct Garfield::Magboltz::@11 diferl_