31def inputWrite(mres,gax,nev,Lmin,Lmax):
32 Mres = ALPACAFormatting(mres)
33 Gax = ALPACAFormatting(gax)
34 L = ALPACAFormatting(float(Lmax)-float(Lmin))
35 Lmin = ALPACAFormatting(Lmin)
36 Lmax = ALPACAFormatting(Lmax)
37 with open("input.DAT","w") as f:
38 f.write("****************************************************************************************\n")
39 f.write("*********** RE-RUN ./init IF FIRST FIVE PARAMETERS ARE CHANGED: **********************\n")
40 f.write("****************************************************************************************\n")
41 f.write("************************* Experimental parameters *************************************\n")
42 f.write("****************************************************************************************\n")
43 f.write("4d2 ! [ebeam] : Beam kinetic energy (GeV)\n")
44 f.write("'prot' ! [btype] : Beam type ('prot' = proton, 'elec' = electron)\n")
45 f.write("95.95d0 ! [aa] : Target mass number\n")
46 f.write("42d0 ! [az] : Target atomic number\n")
47 f.write("%s ! [lsh] : Shielding length (m)\n"%(Lmin))
48 f.write("%s ! [dvol] : Decay volume (m)\n"%(L))
49 f.write("1.5d-1 ! [rmin] : Inner radius (m)\n")
50 f.write("2.5d0 ! [rmax] : Outer radius (m)\n")
51 f.write("0.1d0 ! [dmin] : Minimum photon separation (m)\n")
52 f.write("1d0 ! [emin] : Minimum photon energy (GeV)\n")
53 f.write("1d-2 ! [athetamax] : Maximum ALP theta (when adecay is false)\n")
54 f.write("****************************************************************************************\n")
55 f.write("********************************** ALP parameters **************************************\n")
56 f.write("****************************************************************************************\n")
57 f.write("%s ! [mres] : ALP mass (GeV)\n"%(Mres))
58 f.write("%s ! [gax] : ALP photon coupling (GeV^-1)\n"%(Gax))
59 f.write("****************************************************************************************\n")
60 f.write("****************************** Output parameters **************************************\n")
61 f.write("****************************************************************************************\n")
62 f.write("'_%s_%s' ! [outtag] : For output file\n"%(mres,gax))
63 f.write("****************************************************************************************\n")
64 f.write("************************* Integration parameters ***************************************\n")
65 f.write("****************************************************************************************\n")
66 f.write("100000 ! [ncall] : Number of calls for preconditioning\n")
67 f.write("10 ! [itmx] : Number of iterations for preconditioning\n")
68 f.write("1d0 ! [prec] : Relative accuracy (in %) in main run\n")
69 f.write("100000 ! [ncall1] : Number of calls in first iteration\n")
70 f.write("100000 ! [inccall] : Number of increase calls per iteration\n")
71 f.write("50 ! [itend] : Maximum number of iterations\n")
72 f.write("6 ! [iseed] : Random number seed (integer > 0)\n")
73 f.write("****************************************************************************************\n")
74 f.write("******************************* Unweighted events **************************************\n")
75 f.write("****************************************************************************************\n")
76 f.write(".true. ! [genunw] : Generate unweighted events\n")
77 f.write("%s ! [nev] : Number of events ( < 1000000 recommended)\n"%(nev))
78 f.write("'hepevt' ! [erec] : Event record format ('lhe' = Les Houches, 'hepevt' = HEPEVT)\n")
79 f.write("****************************************************************************************\n")
80 f.write("******************************* Cuts ************************************************\n")
81 f.write(".true. ! [gencuts] : Generate cuts - [rmin], [rmax], [dmin], [emin]\n")
82 f.write(".true. ! [adecay] : Include ALP decay\n")
83 f.write("****************************************************************************************\n")
84 f.write("****************************************************************************************\n")
85 f.write("****************************************************************************************\n")
86