using FINGER libprespecFINGER.so

##The lookup table for the finger: 
##The mhtdc has the times of the 16 pmts of the finger followed by 
##ch 16 : Sc21 left   ch 17 : Sc21 right
##ch 18 : Sc41 left   ch 19 : Sc41 right

# 0   2   4   6   8  10  12  14  
#    __  __  __  __  __  __  __
# /\/  \/  \/  \/  \/  \/  \/  \
#
#
# \__/\__/\__/\__/\__/\__/\__/\/
#
#  1    3   5   7   9  11  13 15
##First we Preproc the 2 scintillators 
processor Finger/Sc41Preproc   FINGER.MhTdcPreprocc
	 # triggers 8 9 10
	input[0]     <-    FingerCrate.mhtdc[18] #left
	input[1]     <-   FingerCrate.mhtdc[19]	 #right
	display diff   1,0.1,4096,200  | diff_gate   in Sc41Preproc/diff
	display output 1,0.1,4096,200              in Sc41Preproc/output
	display multiplicity 16,0,16             
	
end
processor Finger/Sc21Preproc   FINGER.MhTdcPreprocc
	  #triggers 8 9 10
	input[0]     <-   FingerCrate.mhtdc[16]
	input[1]     <-  FingerCrate.mhtdc[17]
	display diff   1,0.1,4096,200  | diff_gate   in Sc21Preproc/diff
	display output 1,0.1,4096,200              in Sc21Preproc/output
	display multiplicity 16,0,16             
end
##Now I preproc the Finger strips
processor Finger/FingerMhTdcPreproc   FINGER.MhTdcPreprocc
    	  #triggers 8 9 10	      
        input[0:15]  <-   FingerCrate.mhtdc[0:15]
    	display diff 1,0.1,4096,200  | diff_gate in FingerMhTdcPreproc/diff
    	display output 2048,0,204.8  in FingerMhTdcPreproc/outputs
    	display multiplicity  16,0,16 in FingerMhTdcPreproc/multiplicity
    	display PMTmult 20,0,20 
end 
###########Now, another way to select hits.  I will compare:
########### Sc41 right and Finger PMT 08
for $i in [00:15]
processor Finger/HitSelectionStrip$i  UTILS.TimeHitSelectionSc
	  input_array[0] <-  Finger/FingerMhTdcPreproc.output[$i]
	  input_array[1] <-  Finger/Sc41Preproc.output[1]
          display all_diff  in HitSelection/Strip$i/all_diff
	  display all_diff_cal 100,15,40  in HitSelection/Strip$i/all_diff_cal
	  display diff_visu | time_gate   in HitSelection/Strip$i/diff_gate
	  display hit_mult  20,0,20  in HitSelection/Strip$i/multiplicity
	  display SelectedTime 4096,-200,200 in HitSelection/Strip$i/Times
	  display CalibratedTime 4096,-200,200 in HitSelection/Strip$i/Times
end
end
##Now I take the average of all of them per event. 
processor Finger/FingerTimeAverage UTILS.Average  
    	  input[0] <- Finger/HitSelectionStrip00.CalibratedTime
    	  input[1] <- Finger/HitSelectionStrip01.CalibratedTime
    	  input[2] <- Finger/HitSelectionStrip02.CalibratedTime
    	  input[3] <- Finger/HitSelectionStrip03.CalibratedTime
    	  input[4] <- Finger/HitSelectionStrip04.CalibratedTime
    	  input[5] <- Finger/HitSelectionStrip05.CalibratedTime
    	  input[6] <- Finger/HitSelectionStrip06.CalibratedTime
    	  input[7] <- Finger/HitSelectionStrip07.CalibratedTime
    	  input[8] <- Finger/HitSelectionStrip08.CalibratedTime
    	  input[9] <- Finger/HitSelectionStrip09.CalibratedTime
    	  input[10] <- Finger/HitSelectionStrip10.CalibratedTime
    	  input[11] <- Finger/HitSelectionStrip11.CalibratedTime
    	  input[12] <- Finger/HitSelectionStrip12.CalibratedTime
    	  input[13] <- Finger/HitSelectionStrip13.CalibratedTime
    	  input[14] <- Finger/HitSelectionStrip14.CalibratedTime
    	  input[15] <- Finger/HitSelectionStrip15.CalibratedTime
    	  display array_average   4096,-200,200
    	  display input in FingerTimeAverage/input 4000,0,200
end 
##Now we compare the times
processor Finger/TofTac_vs_TofFinger UTILS.Pair
	  first <-   Finger/FingerTimeAverage.array_average
	  second <-  Frs/TofSystem.tof
	  display first:second  1000,150,550:1000,150,550
	  display first  2000,150,300
	  display second 2000,150,300
end
##Beta calculation
processor Finger/BetaFinger    FrsTofSystem
	tof_ll  <-  Finger/FingerTimeAverage.array_average
	tof_rr  <-   Finger/FingerTimeAverage.array_average
	display beta  1000,0,1
	display tof      1000,150,350
end
