c Diese Datei enthaelt Initialisierungen fuer das Programm TOF zur Berechnung
c von Flugzeiten zwischen MCP3 und MCP2 der NEMU-Apparatur.
c Die Deklaration der Variablen findet im Include-file 'COM_MUTRACK.INC'
c statt.

c die Spezifizierungen der Schleifen-Parameter (character*22):

	par_text(UTgt	)  =  'U(TARGET) [kV]      : '
	par_text(UGua	)  =  'U(GUARD)  [kV]      : '
	par_text(UG1	)  =  'U(GITTER) [kV]      : '
	par_text(UL1	)  =  'U(L1)     [kV]      : '
	par_text(USp	)  =  'U(SPIEGEL)[kV]      : '
	par_text(UL2	)  =  'U(L2)     [kV]      : '
	par_text(UL3	)  =  'U(L3)     [kV]      : '
	par_text(UFolie	)  =  'U(FOLIE)  [kV]      : '
	par_text(UVorne	)  =  'U(VORNE)  [kV]      : '
	par_text(UHinten)  =  'U(HINTEN) [kV]      : '
	par_text(UMCP3	)  =  'U(MCP3)   [kV]      : '

	par_text(UMCP2	)  =  'U(MCP2)   [kV]      : '

	par_text(BTD  	)  =  'B(TD)     [Gauss]   : '
	par_text(BHelm	)  =  'B(Helmh.) [Gauss]   : '

	par_text(alfTgt	)  =  'alpha_Tgt [degree]  : '
	par_text(alfSp	)  =  'alpha_Sp  [degree]  : '
	par_text(alfTD	)  =  'alpha_TD  [degree]  : '

	par_text(mass	)  =  'Masse     [keV/c**2]: '
	par_text(charge	)  =  'Ladung    [e]       : '
	par_text(ener	)  =  'Energie   [keV]     : '
	par_text(yPos	)  =  'y0        [mm]      : '
	par_text(zPos	)  =  'z0        [mm]      : '
	par_text(thetAng)  =  'theta0    [degree]  : '
	par_text(phiAng	)  =  'phi0      [degree]  : '

	par_text(Thickn	)  =  'Thickness [ug/cm^2] : '
	par_text(Eloss	)  =  'E-Verlust [keV]     : '

 	par_text(deltaL1)  =  'delta_L1  [mm]      : '
 	par_text(deltaL2)  =  'delta_L2  [mm]      : '


c Groesste Laenge einer Parameterbezeichnung (ohne Einheitenangabe) in
c 'par_text':

	lengthParName = 10


c die Gebiets-Bezeichnungen (character*40):

	Gebiet_Text(upToGrid1)      = 'in 1. Beschl.Stufe:'
	Gebiet_Text(upToGrid2)      = 'in 2. Beschl.Stufe:'
	Gebiet_Text(upToHeShield)   = 'bis He-Schild:'
	Gebiet_Text(upToLNShield)   = 'bis LN-Schild:'
	Gebiet_Text(upToL1Map)	    = 'vor Linse-1-Mappe:'
	Gebiet_Text(upToExL1)	    = 'in Linse-1-Mappe:'
	Gebiet_Text(upToEnSp)	    = 'bis Spiegel:'
	Gebiet_Text(upToExSp)	    = 'im Spiegel:'
	Gebiet_Text(upToChKoord)    = 'bis Koordinatenwechsel:'
	Gebiet_Text(upToEnTD)	    = 'bis TriggerDetektor:'
	Gebiet_Text(upToExTD)	    = 'im TriggerDetektor:'
	Gebiet_Text(upToL2andFoMap) = 'vor Linse-2-Mappe:'
	Gebiet_Text(upToExL2)       = 'in Linse-2-Mappe:'
	Gebiet_Text(upToL3Map)	    = 'vor Linse-3-Mappe:'
	Gebiet_Text(upToExL3)	    = 'in Linse-3-Mappe:'
	Gebiet_Text(upToM2Map)	    = 'zwischen Linse-3-Mappe und MCP2-Mappe:'
	Gebiet_Text(upToMCP2)	    = 'vor MCP2:'


c die Bezeichnungen fuer die moeglichen Teilchenschicksale (character*26):

	code_text(code_ok	      )	=  'MCP2 getroffen:             '
	code_text(code_durchSpiegel   )	=  'Spiegel durchquert:         '
	code_text(code_Stuetzgitter   ) =  'Folienstuetzgitter getr.:   '
	code_text(code_lostInTD       ) =  'im TD abgebrochen:          '
	code_text(code_NotRegInM3     ) =  'von MCP3 nicht registriert: '
	code_text(code_hitBlende      ) =  'auf Blende des MCP2:        '
	code_text(code_hitMCP2inactive) =  'auf Rand des MCP2:          '

	code_text(code_frontOfMapAc   ) =  'ACCEL: vor Mappe (FEHLER!): '
	code_text(code_leftMapAc      ) =  'ACCEL: seitlich aus Mappe:  '
	code_text(code_hit_TgtHolder  ) =  'Targethalter getroffen:     '

	code_text(code_stopped_in_foil) =  'in Triggerfolie gestoppt:   '

	code_text(code_decay	      )	=  'zerfallen:                  '
	code_text(code_vorbei	      )	=  'Element verfehlt:           '
	code_text(code_reflektiert    )	=  'reflektiert:                '
	code_text(code_grid           ) =  'auf Gitter getroffen:       '
	code_text(code_wand	      )	=  'aufgeschlagen:              '
	code_text(code_lost	      )	=  'verloren (steps>maxsteps):  '
	code_text(code_dtsmall	      )	=  'Zeitschritt kleiner dtSmall:'


c die Bezeichnungen der Statistiken (character*8):

	statName(Nr_S1xM2)   = 'S1xM2   '
	statName(Nr_S1M2)    = 'S1M2    '
	statName(Nr_S1Fo)    = 'S1Fo    '
	statName(Nr_FoM2)    = 'FoM2    '
	statName(Nr_S1M3)    = 'S1M3    '
	statName(Nr_M3M2)    = 'M3M2    '
	statName(Nr_t_FE)    = 't(FE)   '
	statName(Nr_y_Fo)    = 'y(FOLIE)'
	statName(Nr_z_Fo)    = 'z(FOLIE)'
	statName(Nr_r_Fo)    = 'r(FOLIE)'
c	statName(Nr_y_xFo)   = 'y(xFOLIE)'
c	statName(Nr_z_xFo)   = 'z(xFOLIE)'
c	statName(Nr_r_xFo)   = 'r(xFOLIE)'
	statName(Nr_y_M2)    = 'y(MCP2) '
	statName(Nr_z_M2)    = 'z(MCP2) '
	statName(Nr_r_M2)    = 'r(MCP2) '
	statName(Nr_y_xM2)   = 'y(xMCP2)'
	statName(Nr_z_xM2)   = 'z(xMCP2)'
	statName(Nr_r_xM2)   = 'r(xMCP2)'


c die Bezeichnungen der statistischen Groessen (character*8):

	whatName(1) = 'mean    '
	whatName(2) = 'variance'
	whatName(3) = 'minimum '
	whatName(4) = 'maximum '
	whatName(5) = 'percent '


c die Extensions der Tabellen-files (character*9):

	TabExt(Nr_S1xM2)   = '._S1xM2   '
	TabExt(Nr_S1M2)	   = '._S1M2    '
	TabExt(Nr_S1Fo)	   = '._S1Fo    '
	TabExt(Nr_FoM2)	   = '._FoM2    '
	TabExt(Nr_S1M3)    = '._S1M3    '
	TabExt(Nr_M3M2)    = '._M3M2    '
	TabExt(Nr_t_FE)	   = '._T_FE    '
	TabExt(Nr_y_Fo)    = '._Y_FO    '
	TabExt(Nr_z_Fo)    = '._Z_FO    '
	TabExt(Nr_r_Fo)    = '._R_FO    '
	TabExt(Nr_y_M2)    = '._Y_M2    '
	TabExt(Nr_z_M2)    = '._Z_M2    '
	TabExt(Nr_r_M2)    = '._R_M2    '
	TabExt(Nr_y_xM2)   = '._Y_xM2   '
	TabExt(Nr_z_xM2)   = '._Z_xM2   '
	TabExt(Nr_r_xM2)   = '._R_xM2   '


c die Reihenfolge, in welcher die Schleifen der 'Schleifenparameter' par(i,k)
c im Hauptprogramm abgearbeitet werden:
c Aenderungen in der Reihenfolge brauchen in den Routinen fuer die graphische
c Darstellung mittels 'PHYSICA' nicht durch entsprechende Aenderungen in den
c jeweiligen files beruecksichtigt werden (PHYSICA bekommt die Reihenfolge ueber
c die .PHYSICA - files selbst mitgeteilt).
c Diese files sind nur anzugleichen, falls die Zuordnungen der verschiedenen
c physikalischen Groessen zu ihren jeweiligen Code-Nummern geaendert werden, 
c bzw. wenn zusaetzliche Schleifengroessen aufgenommen werden 
c (-> mutrack$PHYSICAdirectory: 'xxx.FOR'- und 'xxx.PCM'-Dateien).
c Desweiteren koennen ACCEL und 'foilFile' durchaus andere Reihenfolgen ver-
c wendet haben.

	DATA reihenfolge /
     +		DeltaL1,DeltaL2,Eloss,Thickn,
     +		UMCP2, alfTgt,alfSp,alfTD,
     +		UVorne,UHinten,UMCP3,
     +		UFolie,UL2, USp,UL1,UL3,
     +		BHelm,BTD,
     +		mass,charge,  UTgt,UGua,UG1,    
     +		ener,thetAng,phiAng,yPos,zPos  /


c====== Initialisierungen fuer die benutzerdefinierbaren Parameter ============

c Das Startgebiet 'Gebiet0' wird indirekt im SUB 'READ_INPUTFILE' via die
c lokalen Variablen 'Startflaeche', bzw. 'x0_' und 'Kammerteil' initialisiert.

c - - - - - - - - - - zufallsverteilte Startparameter - - - - - - - - - - - - -

c Energie:

	DATA random_E0		/.false./

	DATA random_E0_equal	/.false./
	DATA lowerE0 		/ 0.000 /
	DATA upperE0		/ 0.010 /

	DATA random_E0_gauss	/.false./
	DATA sigmaE0		/ 0.010 /


c Position:

	DATA random_pos		/.false./
	DATA sigmaPosition      /  15.  /

	DATA random_y0z0_equal	/.false./
	DATA random_r0_equal	/.false./
	DATA random_y0z0_Gauss	/.false./
	DATA random_r0_Gauss	/.false./
	DATA StartBreite	/  -1.  /      
	DATA StartHoehe		/  -1.  /
	DATA StartRadius	/  -1.  /


c Winkel:

	DATA random_angle 	/.false./

	DATA random_lambert	/.false./
	DATA random_gauss       /.false./
	DATA StartLambertOrd	/   1.  /
	DATA sigmaWinkel        /   1.  /

	DATA ener_offset	/ .true. /
	DATA pos_offset		/ .true. /
	DATA angle_offset	/ .true. /

c - - - - - - - - - - Schleifen-Parameter - - - - - - - - - - - - - - - - - - -

	! Das Schleifenparameterfeld 'par(i,k)' (1 <= k <= par_Anzahl) 
	! wird indirekt im SUB 'read_inputFile' ueber die dortigen lokalen
	! Variablen initialisiert (siehe dort).
	! Hier wird nur die 'Zufallsschleife' par(i,0) initialisiert.

	DATA par(1,0)		/   1.  /
	DATA par(2,0)		/   1.  /
	DATA par(3,0)		/   1.  /


c - - - - - - - - - - Projektile- - - - - - - - - - - - - - - - - - - - - - - -

	DATA art_Name   /    'm+  ',    'm-  ',		! character*4
     +			     'Mu  ',    'Mu- ',
     +			     'e+  ',    'e-  ',
     +			     'H+  ',    'H   ',    'H-  ',
     +			     'H2+ ',    'H2  ',    'H2- ',
     +			     'alfa',
 
     +			     'A11+',    'A12+',    'A21+',    'A31+',    'A32+',
     +			     'N11+',    'N21+',
     +			     'K11+',    'K12+',

     +			     'H2O1',    'H2O2',    'H2O3',    'H2O4',    'H2O5',

     +                       'Hyd1',    'Hyd2',    'Hyd3',    'Hyd4',    'Hyd5',
     +                       'Hyd6',    'Hyd7',    'Hyd8',    'Hyd9'
     +			      /

c folgende Werte wurden aus bzw. mittels 'HANDBOOK OF CHEMESTRY AND PHYSICS,
c 74th edition' und 'PHYSICAL REVIEW D, 50, S.1173-1826 (August 1994)' bestimmt:

 	DATA art_Masse  /    105658.,    105658., 
     +		             106169.,    106680.,
     +		            510.9991,   510.9991,
     +		            938272.3,   938783.3,  939294.3,
     +		           1877055.6,  1877566.6, 1878077.6, 
     +		           3727380.2,

     +			     37.96238E6,37.22371E6,74.44896E6,111.673689E6,111.673178E6,
     +			     13.043273 ,26.087057,
     +			     78.16258E6,78.162070E6,

     +                     16.77623E6,33.55297E6,50.32971E6,67.10644E6,83.88318E6,

     +                     17.71501E6,34.49175E6,51.26849E6,68.04523E6,84.82197E6,
     +                     101.59870E6,118.37544E6,135.15218E6,151.92892E6

     +			     /
 
	DATA art_Ladung /       +1.,       -1.,
     +			         0.,       -1.,
     +			        +1.,       -1.,
     +			        +1.,        0.,       -1.,
     +			        +1.,        0.,       -1.,
     +			        +2.,

     +				+1.,	   +2.,	      +1.,	+1.,	  +2.,
     +				+1.,	   +1.,
     +				+1.,	   +2.,

     +				+1.,	   +1.,	      +1.,	+1.,	  +1.,

     +                          +1.,       +1.,       +1.,      +1.,      +1.,
     +                          +1.,       +1.,       +1.,      +1.
     +				/

	DATA neutral_fract	/ artenMax*0. /

	DATA artList		/  ' '  /
	DATA artList_defined	/.false./

c - - - - - - - - - - Trigger-Detektor- - - - - - - - - - - - - - - - - - - - -

	DATA TriggerInBeam    / .false. /
	DATA Thickness	      /    3.0  /

	DATA log_aufStreu     / .false. /
	DATA log_aufstreu_fixed		/ .false. /
	DATA log_Meyer_Gauss		/ .false. /
	DATA log_Meyer_F_Function	/ .false. /
	DATA sigmaAufstreu    /    5.   /

	DATA log_E_Verlust		/ .false. /
	DATA log_E_Verlust_defined	/ .false. /
	DATA log_E_Verlust_ICRU		/ .false. /

	DATA log_E_Straggling_sigma	/ .false. /
	DATA log_E_Straggling_equal	/ .false. /
	DATA log_E_Straggling_Lindhard	/ .false. /
	DATA log_E_Straggling_Yang	/ .false. /

	DATA mean_E_Verlust   /    2.5  /
	DATA calculate_each   / .false. /

	DATA sigmaE           /    0.5  /
	DATA lowerE           /    0.   /
	DATA upperE           /    0.1  /

	DATA graphitData      / .false. /

	DATA log_neutralize   / .false. /

	DATA generate_FE      / .false. /
	DATA TransTDFoil      /   100.  /


c - - - - - - - - - - Programmsteuerung - - - - - - - - - - - - - - - - - - - -

	DATA alfaTgtVertically/ .false. /

	DATA scaleFactor      /    1.   /

	DATA UseDecay	      / .false. /
	DATA UseDecay_	      / .false. /
	DATA UseDecay_prevSim / .false. /

	DATA DEBUG            / .false. /
	DATA DEBUG_FE         / .false. /

	DATA log_alpha0_KS    / .false. /

        DATA gotFileNr        / .false. /
	DATA TestRun	      / .false. /
	DATA log_confine      / .false. /

	DATA TestOnWireHit    / .false. /

	DATA upToTDFoilOnly   / .false. /
	DATA createFoilFile   / .false. /

	DATA lense2	      / .false. /

c - - - - - - - - - - Graphikausgabe- - - - - - - - - - - - - - - - - - - - - -
	
	DATA GRAPHICS         / .false. /
	DATA GRAPHICS_Anzahl  /    25   /
	DATA plot_FE	      / .false. /
	DATA vertical  	      / .true.  /

	DATA n_postSkript     /    1    /

	DATA imonitor         /    2    /
	DATA color            /    0    /
	DATA schnitt_p        /    2    /
	DATA schnitt_x        /   -1.   /

c - - - - - - - - - - FileName- - - - - - - - - - - - - - - - - - - - - - - - -

	DATA filename         /  'MU_'  /

c - - - - - - - - - - Vorgaben fuer das Summary - - - - - - - - - - - - - - - -

	DATA n_outWhere       /     2   /

	DATA LogFile          / .false. /
	DATA smallLogFile     / .false. /

	DATA statsInSummary   / .false. /

	! 'statInSummary' wird indirekt im SUB 'read_inputFile' ueber die
	! lokalen Variablen 'SUM_*' initialisiert (alle auf .false.)

	DATA log_out_FE       / .false. /
	DATA log_out_pfosten  / .false. , .false./

c - - - - - - - - WELCHE FILES sollen erzeugt werden? (ausser .SUM)- - - - - -

	DATA createTabellen   / .false. /

	! 'createTabelle' wird indirekt im SUB 'read_inputFile' ueber die
	! lokalen Variablen 'TAB_*' initialisiert (alle auf .false.)

	DATA createPhysTab    / .false. /

	DATA createNtp	      / .false. /
	DATA Fo_triggered     / .false. /
	DATA xM2_triggered     / .false. /
	DATA M2_triggered     / .false. /
	DATA NTP_Koord	      / .false. /
	DATA NTP_S1xM2	      / .false. /
	DATA NTP_times	      / .false. /
	DATA NTP_FoM2Only     / .false. /
	DATA NTP_charge	      / .false. /
	DATA NTP_start	      / .false. /
	DATA NTP_stop 	      / .false. /
	DATA NTP_40mm 	      / .false. /
	DATA NTP_Folie	      / .false. /
	DATA NTP_steps	      / .false. /
	DATA NTP_Koord	      / .false. /

c - - - - - - - - - - Fehlerkontrolle - - - - - - - - - - - - - - - - - - - - -

	DATA eps_x            /  1.e-5  /
	DATA eps_v            /  1.e-5  /
	DATA log_relativ      / .false. /

	DATA maxStep          /   6000  /

	DATA dtsmall	      /   .001  /
        DATA maxBelowDtSmall  /    50   /

	DATA idealMirror      / .false. /

c - - - - - - - - - - Programmablauf- - - - - - - - - - - - - - - - - - - - - -

	DATA accelVersionIndx	/ -1 /
	DATA mutrackVersionIndx	/ -1 /

	DATA n_dtsmall		/ 0 /
	DATA n_dtsmall_Max	/ 0 /
	DATA dtsmall_counter	/ 0 /
	DATA LostInTD_counter	/ 0 /
	DATA Lost_counter	/ 0 /

	DATA Startflaeche	/ 0 /
	DATA SchleifenNr	/ 0 /

c Ausgabekanaele (fuer die 'do indx = indx1, indx2 ....' Anweisungen):

	DATA lun		/ lunLOG, lunScreen /

	DATA OneLoop		/ .false. /
	DATA OneStartPerLoop	/ .false. /

	DATA log_percent	/ .false. /

	DATA Use_ACCEL		/ .false. /
	DATA Use_MUTRACK        / .false. /
	DATA fromScratch        / .true.  /

	DATA previousSettings	/ .false. /

	DATA guard		/ .true. /

	DATA gridInFrontOfFoil  / .false. /

c fuer Random-Generator: 'seed' soll gross und ungerade sein. ->
c nimm den Sinus von secnds, und mache daraus durch Multiplikation mit ent-
c sprechender 10er-Potenz eine 8stellige Integer-Zahl. Sollte seed dann
c gerade sein, mache es ungerade:

	help1= abs(sin(secnds(0.)))		! abs(), da sonst log10(sec) zu Fehler fuehrt
	seed = int(help1* 10.**(8-int(log10(help1)) ) )
	if ((seed/2)*2.EQ.seed) seed=seed-1	! z.B. seed=3 -> seed/2=1, wegen Integer

