//========================================== // Garfield V8.1 Input file for: // // Vertical Drift Chamber (VDC) Simulation // for the Qweak experiment at JLab // //========================================== // Realization in Garfield: // // VDC consists of one wire plane and // two HV planes // //========================================== // // Author: Klaus Grimm // Department of Physics // The College of William and Mary // Williamsburg, VA 23185 // // email: grimm@jlab.org // //========================================== // Last Change: 04/02/2004 //========================================== GLOBAL aiter = 1000 // Loops for ARRIVAL-TIME-DISTRIBUTION GLOBAL titer = 40000 // Loops for TIMING GLOBAL tanglemin = 45.0 GLOBAL tanglemax = 65.0 GLOBAL tanglestep = 2.0 GLOBAL tofmin = 0.0 // Minimal Time of Flight for histograms [us] GLOBAL tofmax = 0.3 // Minimal Time of Flight for histograms : 300ns GLOBAL anode = -4100 // high voltage on planes GLOBAL wnum = 41 // Number of wires GLOBAL pitch = 0.423 // perp. distance between signal wires (4.23mm) GLOBAL wdiameter = 0.002 // 20um wire diameter GLOBAL wpot = 0.0 // voltage on signal wire = 0.0 V GLOBAL wtension = 70.0 // wire tention = 70g GLOBAL wlength = 25.0*1.141 // overall wire length (45deg) GLOBAL apitch = 0.423*0.5 // half top pitch size used for ARRIVAL-TIME-DISTRIBUTION GLOBAL tpitch = apitch*1.41 // bit more than bottom half pitch size used for TIMING GLOBAL plane = 1.3 // distance wire plane to HV plane (13mm) GLOBAL wxpos = 0.0 // all signal wires with x=0 GLOBAL wystart = -20*pitch // position of first signal wire: y=-8.46mm GLOBAL anglemean = 54.7 // mean garfield tracking angle = 54.7deg GLOBAL anglemin = 53.787 // min garfield tracking angle = 53.787deg GLOBAL anglemax = 55.673 // max garfield tracking angle = 55.673deg // gas related globals GLOBAL pbar = 1.0 // relative gas pressure GLOBAL gasmbar = pbar*1013.25 // absolute gas pressure in MILLI-BAR GLOBAL gastemp = 300 // gas temperature = 300 KELVIN Global gas_file `Arg-50-Eth-50.gas` Global gas_member `a50e50` // Delete some result files, otherwise results from different settings/simulations // will be saved in the same file ... //============================================= & CELL //============================================= //----------------------------------------------------------------------- // Simplified VDC layout for Garfield // // Garfield forces us to use this orientation of the VDC since // in Garfiled you can only define a X-RANGE **only** for a XT-PLOT ... // // | | | // | * | Y | // | | | // | * | ------> X // | | used coordinate system // | * | // | | ------> Gravity vector // //------------------------------------------------------------------------- opt cell-pr // Location of the HV planes plane x={-plane} v={anode} plane x={+plane} v={anode} // Location of the signal wires ROWS CARTESIAN S {wnum} ... {wdiameter} ... {wxpos} ... {wystart}+({pitch}*I) ... {wpot} ... {wtension} ... {wlength} ... TUNGSTEN // Gravity points perp. to HV plane = x directection GRAVITY 1 0 0 // Save this &CELL definition WRITE DATASET vdc_cell.dat //============================================= & MAGNETIC //============================================= // at present: no B fieed here // whats about the earth B field ?! COMPONENTS 0 0 0 GAUSS //============================================= & GAS //============================================= // 1 atm 50/50 Argon-ethane mixture in your chamber. // Load or generate gas_file, which contains all // the gas properties needed for tracking Call inquire_member(gas_file,gas_member,`gas`,exist) If exist Then get {gas_file,gas_member} Else write {gas_file,gas_member} // Loads the mixture Argon 50 %, ethane 50 % ARG-50-ETH-50 // temp + pressure def before Heed TEMPERATURE {gastemp} KELVIN PRESSURE {gasmbar} MILLI-BAR // Compute for electrons: drift velocity, diffusion coefficient etc // time comsuming: several hours on a 2.4GHz Xeon !!! MAGBOLTZ argon 50 ethane 50 // (Tong put it outside if-else-endif ?!) // Prepares cluster generation by Heed Heed argon 50 ethane 50 Endif // Plot some gas properties // plot-options drift-velocity nodiffusion notownsend opt gas-plot nogas-print //============================================= & OPTIMISE //============================================= //Prints the current potential settings DISPLAY //forces acting on a wire and the wire displacement SELECT 21 FORCES PRINT-SAG PLOT-SAG KEEP-SAG DETAILED ... ELECTROSTATICS GRAVITY //============================================= & FIELD //============================================= AREA {-1.1*plane, -2*pitch, +1.1*plane, +2*pitch} // Plot electrical field //track -1.3 0.0 -0.01 0.0 //PLOT-FIELD GRAPH sqrt(EX**2+EY**2) //track * * -0.3 * //PLOT-FIELD GRAPH sqrt(EX**2+EY**2) //track -0.3 * -0.05 * //PLOT-FIELD GRAPH sqrt(EX**2+EY**2) //track -0.05 * -0.0001 * //PLOT-FIELD GRAPH sqrt(EX**2+EY**2) // Plot contour of Electrostatic potential //grid 25 //area * -.423 * .423 //PLOT-FIELD CONTOUR -V RANGE 1200 4000 n=14 //area -.423 * .423 * //PLOT-FIELD CONTOUR -V RANGE 900 2100 n=24 //============================================= & DRIFT //============================================= //Sets the size and view of the drift area AREA {-1.1*plane, -3.0*pitch, +1.1*plane, +3.0*pitch} //Number of drift lines used by x(t) etc. LINES 60 //Grid density for tables and contour plots GRID 10 20 // define area around wire #21 for possible plots SELECT 21 // select center wire INTEGRATION-PARAMETERS COMPUTE-IF-INTERPOLATION-FAILS // Heed takes care of cluster generation, it simulates the ionisation of // the gas molecules by a particle. TRACK HEED ... NODELTA-ELECTRONS NOTRACE-DELTA-ELECTRONS ... NOMULTIPLE-SCATTERING ... NOENERGY-CUT ELECTRON ENERGY 0.85 GeV //======================== // drift line calculation: //======================== // First define a track TRACK {-1.1*plane, -1.1*plane, +1.1*plane, +1.1*plane} // will begin at some of the boundaries of the drift area as set by AREA. //DRIFT EDGE notleft notright up down isochrone 0.020 // drift line calculation: // electrons or ions start to drift from the surfaces of the wires that // have been SELECTed. //DRIFT WIRE lines 30 isochrone 0.020 // drift line calculation: will begin on the track. //DRIFT TRACK TIME-GRAPH CONTOUR 0.020 //--------------------- // Open Postscript file //--------------------- !add meta type PostScript file-name "erin.ps" !open meta !act meta FOR tangle from {tanglemin} to {tanglemax} STEP {tanglestep} DO // delete old entries from previous simulations * %DELETE "XT,{angle}deg,S21.dat" . // XT-PLOT: relation between the perp. position of a track and the drift time. // This is a calibration curve used by the track reconstruction program Say "Simulating now XT-PLOT for incident angle = {tangle}" XT-PLOT ... ANGLE {tangle} ... X-RANGE {0.0 , 1.1*plane} X-STEP 0.05 ... PRECISION 1E-4 ... PLOT-XT-RELATION //ARRIVAL-TIME-DISTRIBUTION: //Computes the arrival time distribution of the n'th electron that //reach electrodes from a series of tracks. //A by-product of this calculation is the x(t) relation and an estimate of //the arrival time spread. See XT-PLOT for a comparison with related commands. Say "Simulating now ARRIVAL-TIME-DISTRIBUTION for angle = {tangle}" ARRIVAL-TIME-DISTRIBUTION ELECTRON 1 ... TIME-WINDOW {tofmin , tofmax} ... STEP X RANGE {0.0 , 1.1*plane} INCREMENT 0.1 ... SCAN Y RANGE {-apitch , +apitch} ... ANGLE {tangle} ... DIFFUSION ... DATASET "XT,{tangle}deg,S21.dat" ... ITERATIONS {aiter} ... PLOT-SELECTED-ELECTRONS ENDDO // Last but not least (in cpu time comsuming =8-) // TIMING: Computes the arrival time distribution of the n'th electron over // a given area. Unlike the ARRIVAL-TIME-DISTRIBUTION instruction, TIMING does // not produce calibration curves, but merely timing distributions. // // -> good for white noise TOF spectrum TIMING ELECTRON 1 ... TIME-WINDOW {tofmin , tofmax} ... X-RANGE {-1.1*plane, 0.0} ... Y-RANGE {-tpitch , +tpitch} ... ANGLE-RANGE {anglemin , anglemax} ... BINS 301 ... ITERATIONS {titer} ... RUNGE-KUTTA-DRIFT ... PLOT-SELECTED-ELECTRON //---------------------- // Close Postscript file //---------------------- !deact meta !close meta !del meta