GEANT key Parameter(s) Description FILE ifile Set HGeant output mode ifile = 0 : no output to file = 1 : output to ROOT file (default) ------------------------------------------------------------------------------------ JVER jver(3) Set mode for vertex sampling (for details see file makevertex.F) jver(1) = 0 : emission from (0,0,0) vertex (default) = 1 : emission from (x,y,z) vertex given by tgtpar(1..3) = 2 : emission from segmented target intersected by beam (for details see rantarg.F) = 3 : emission from cubic volume defined by tgtpar(1..3) = 4 : emission from cylindrical volume defined by jver(2), jver(3) and tgtpar(1..7) jver(2) = 0 : emission from sharp z = 1 : volume with uniform z distribution = 2 : volume with exponential z distribution = 3 : volume with discrete z distribution jver(3) = 0 : emission from sharp x,y = 1 : volume with uniform x,y distribution = 2 : volume with exponential x,y distribution Example 1: JVER 2 0 0 emission from segmented target specified by geometry BEAM 0.7 1.4 1500.0 1.0 0.0 0.0 Example 2: JVER 4 1 1 emission from cylindrical target TARG -37. 17. 0. 12.5 12.5 ------------------------------------------------------------------------------------ TARG tgtpar(7) Specify vertex volume and characteristics tgtpar(...) = function of jvert(...) settings (see file makevertex.F for details) ------------------------------------------------------------------------------------ BEAM beampar(6) Specify beam parameters beampar(...) = sig(X) sig(Y) Ebeam sig(Ebeam) offsetX offsetY (in mm,mm,MeV,MeV,mm,mm) ------------------------------------------------------------------------------------ PMCF pmcf Read event files pmcf = 1: read events from .evt event files (default=1) ------------------------------------------------------------------------------------ PMCK pmck ROOT event generator pmck = 1 : get event from ROOT macro via passEvent() (default=0) ------------------------------------------------------------------------------------ PMC1 radius Cosmics generator radius > 0 : call cosmics generator on volume of radius in mm ------------------------------------------------------------------------------------ PMC2...8 Npart Id T1 T2 frac blast A2 A4 v1 v2 [Ap At prob] Thermal sources Npart > 0 : call thermal generator for exactly Npart particles of type Id with temperature(s) T1 (T2) at fraction frac (1-frac), optional blast, optional polar anisotropy A2/A4, and optional flow v1/v2 in NN cm system. Npart = 0 : impact parameter sampling is done for Ap+At and Poisson sampling for Apart*prob, where prob = production probability per participant. Npart < 0 : sample Poisson-distributed multiplicity with mean=Npart. (see thermalgen.F for details) ------------------------------------------------------------------------------------ PMC9 pmc9(30) Spare generator pmc9(1) > 0 : call spare generator igen=pmc9(1) with parameters pmc9(2..30) ------------------------------------------------------------------------------------ FMAP imap Specify field map to be used imap = 0 : use zero field = 1 : use old magnetic field map = 2 : use TOSCA magnetic field map (default) ------------------------------------------------------------------------------------ FPOL fpol Control scaling and polarity of magnetic field fpol = 1.0 : field polarity and scaling factor (default = 1.0) = -1.0 : reverse field ------------------------------------------------------------------------------------ SECO iseco icomp Control treatment of secondaries iseco = 0 : no secondaries are stored = 1 : store in temporary stack only = 2 : store only secondaries, if not produced in Shower converter = 3 : store all secondaries (default) icomp = 0 : all tracks output into kine branch (default) = 1 : only active tracks are output (use with iseco>0 only) ------------------------------------------------------------------------------------ SPLIT nsplit HGeant1: HGeant Versions < 8.13: Define split level of ROOT tree HGeant Versions >= 8.13: Define size of output file (were tree is split) nsplit = 0 : HGeant < 8.13: ROOT tree has 1 superbranch only (=Event) = 1 : HGeant < 8.13: Each partial event makes a superbranch (default) = 2 : HGeant < 8.13: Each data member makes a (browseable) branch HGeant2 (version > 6.4): nsplit = x : HGeant >= 8.13: ROOT tree output file has a size of x bytes. If file size is exeeced, a new one - with incremented file name - is opened. To over come the integer limit of the GEANT CERN input routine ffkey values < 100000 are assumed to be in Mbyte instead of bytes. The value will be multiplied by 1000000 in the booktree.cc before setting the output limit. ------------------------------------------------------------------------------------ MXST maxstep Set max. number of steps allowed in tracking maxstep = maximum number of steps allowed in GSTRACK ------------------------------------------------------------------------------------ REFT nref Compute reference trajectories nref = 1 : compute reference trajectories (default=0) ------------------------------------------------------------------------------------ MACC iacc Generate a simpleminded acceptance matrix iacc = 1 : produce MDC acceptance matrix (default=0) (use with KINE 3 thmin thrange 2 phmin phrange 2 pmin prange 2 partID) ------------------------------------------------------------------------------------ VERS ivers Set DAQ version number (default=0) ------------------------------------------------------------------------------------ PI0 br(1) ... br(2) Reset pi0 branchings (default = builtin; sequence cannot start with 0!) ETA br(1) ... br(6) Reset eta branchings (default = builtin) OMEG br(1) ... br(6) Reset omega branchings (default = builtin) RHO0 br(1) ... br(6) Reset rho0 branchings (default = builtin) PHI br(1) ... br(6) Reset phi branchings (default = builtin) ETAP br(1) ... br(6) Reset eta' branchings (default = builtin) ------------------------------------------------------------------------------------ In addition, the following native GEANT steering keywords are used: ------------------------------------------------------------------------------------ KINE ikine pkine(10) Control 1-shot generator ikine > 0 : generate particle(s) or pair(s) with fixed kinematics ikine = nb. of particles shot, if set to -1, then 6 particles, one per sector is created. %BR In this case the phi range must be set to 0..60 pkine(1), pkine(2) = theta (min, max in degrees) pkine(3), pkine(4) = phi (min, max in degrees) pkine(5), pkine(6) = momentum (min, max in MeV/c) pkine(7) = particle id1 (+1000*id2 for pairs) pkine(8), pkine(9) = pair opening angle (min, max in degrees) pkine(10) = orientation of pair in degrees (if>360, random) ikine = -1: generate exactly 6 particles, 1 per sector, with phi = phi + (isec-1)*60. Example 1: KINE 3 45. 45. 90. 90. 250. 250. 8. 0. 0. 0. shoots 3 pi+ with th=45 deg, ph=90 deg and p=250 MeV/c. Example 2: KINE 1 45. 45. 90. 90. 250. 250. 3002. 3. 3. 400. shoots 1 e+e- pair with th=45 deg, ph=90 deg, p=250 MeV/c, open=3 deg, random orientation. ------------------------------------------------------------------------------------ SWIT iswit(10) Set GEANT switches iswit(1) = 0 : track all particles (default) > 0 : track only particles with ID=iswit(1) (see GEANT manual) < 0 : do not track particles with ID=abs(iswit(1)) iswit(2) = 0 : no tracks plotted or printed (default) = 1 : store tracks for later plotting with GDXYZ() = 2 : print tracking information on the fly = 3 : plot tracks on the fly = 4 : plot charged tracks (e+,e-,pi+,pi-,K+,K-,p) only = 5 : plot charged tracks with custom colors (see gdcxyz.F) = 6 : plot tracks with custom colors iswit(3) = 0 : input events in lab frame (default) = 1 : input events in NN CM, transform to lab with Ebeam=beampar(3) iswit(4) = 0 : all particle decays are allowed (default) = 1 : pi0 and eta decay into gamma e+ e- only iswit(5) > 0 : skip input events < iswit(5) iswit(6) > 0 : sample event plane iswit(7) > 0 : switch to gcalor iswit(8) > 0 : remove neutrons with ekin < 10MeV from stack ------------------------------------------------------------------------------------ RUNG idrun idevt Run and event numbers idrun = 0 : use builtin run id generator(default) > 0 : use idrun idevt : start value for event numbering (default = 1) ------------------------------------------------------------------------------------ LOOP nmaxloop nleptpair nogamma (example 100 2 1, default 0 0 0 ) Repeats each event at max nmaxloop until n lepton pairs are detected in acceptance. example: eta ->gg (Pluto). Conversion probability per gamma in targted+RICH is arround 1%. If you require both gamma to be converted into e+e- in acceptance only about once per 10000 events such a case would happen. This rare cases are enhanced by repeating a given input event until the result is detected in the output. The loop is stopped latest at nmaxloop. For each input event is exactly one event in the output, at the maximum number of repeats the event is accepted anyway) nmaxloop : repeat each input event at max nmaxloop times nleptpair: number of e+e- pairs in output (in the example 1 or 2, dependend if you want to work with 1 gamma in ECAL and 1 or 2 e+e- in acceptance) All primary gammas have to be either in ECAL or e+e- in acceptance Bare in mind repeating events will have only effect on e+e- from conversion since this is a statistical process. Gammas are not changed. nogamma : simulations can be speed up if all primary gammas should be converted in front of MDCs. In that case the flag (=1) will skip the event in stepping already if a primary gamma is entering MDC. In the example eta->gg->e+e- e+e- speed gain is about a factor 3 Output : To get some handle on the number of processed events additional information is stored in the EventHeader HEventHeader::getTimeInSpillOld() returns the number of processed events up to this point. HEventHeader::getDownscaling() returns the number of repeats until success (1 - nmaxloop). For pure simulations this values are not used. For embedding into real data this values will not be available. ------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ FILE FORMATS the format of the evt input file is given by the flag in the header (multiple values can archieve the same format following the decoding convention) Header: i i f f i eventNumber,nParticle,ebeam [GeV],impactParameter [fm],flag Particle: units : Etot,P [GeV] , vertex [mm] tof [ns] flag notations: see the macro testFlag.C below flag example f f f f f f f f i i i i f f 1 Etot,px,py,pz, ID, ,weight 11 Etot,px,py,pz, ID, ,weight,userVal 2 Etot,px,py,pz, ID,sourceID,parentID, ,weight 22 Etot,px,py,pz, ID,sourceID,parentID, ,weight,userVal -2 Etot,px,py,pz, ID,sourceID,parentID,indexParent ,weight -22 Etot,px,py,pz, ID,sourceID,parentID,indexParent ,weight,userVal 3 Etot,px,py,pz ,vx,vy,vz, ID,sourceID,parentID, ,weight 33 Etot,px,py,pz ,vx,vy,vz, ID,sourceID,parentID, ,weight,userVal -3 Etot,px,py,pz ,vx,vy,vz, ID,sourceID,parentID,indexParent ,weight -33 Etot,px,py,pz ,vx,vy,vz, ID,sourceID,parentID,indexParent ,weight,userVal 4 Etot,px,py,pz, tof ,vx,vy,vz, ID,sourceID,parentID, ,weight 44 Etot,px,py,pz, tof ,vx,vy,vz, ID,sourceID,parentID, ,weight,userVal -4 Etot,px,py,pz, tof ,vx,vy,vz, ID,sourceID,parentID,indexParent ,weight -44 Etot,px,py,pz, tof ,vx,vy,vz, ID,sourceID,parentID,indexParent ,weight,userVal ------------------------------------------------------------------------------------ void testFlag(Int_t flg = -14){ // illustrate the decoding of HGeant flag for event format Int_t flag = flg; Int_t ivertex=flag/100; Int_t iswitch=(flag-ivertex*100)/10; Int_t iweight=flag-ivertex*100-iswitch*10; iswitch=abs(iswitch); ivertex=abs(ivertex); Bool_t has_weight = kTRUE; if(iweight == 0) has_weight = kFALSE; cout<<"flag "<