%run '../rootlib.ipynb'
chain = R.TChain( "bbq" )
chain.Add( "/Users/danielbrandenburg/bnl/local/work/vpdTriggerSlewPicoDstMaker/bin/bbq.root" )
c1 = Canvas( width = 1000, height = 600 )
def adcE( tube ):
return "adcEast[" + str(tube) + "]"
def tdcE( tube ):
return "tdcEast[" + str(tube) + "]"
def safeE( tubes ):
ss = ""
for tube in tubes :
ss += tdcE( tube ) + " > 150 && " + adcE( tube ) + " > 10 &&"
ss += "1"
return ss
def adcW( tube ):
return "adcWest[" + str(tube) + "]"
def tdcW( tube ):
return "tdcWest[" + str(tube) + "]"
def safeW( tubes ):
ss = ""
for tube in tubes :
ss += tdcW( tube ) + " > 150 && " + adcW( tube ) + " > 10 &&"
ss += "1"
return ss
R.gStyle.SetOptFit( 111 )
def sigmaFrom( a, b ) :
if 0 == a or 4 == a or 8 == a or 12 == a : return 0
if 0 == b or 4 == b or 8 == b or 12 == b : return 0
chain.Draw( "29.979 * 0.0188 * ( " + tdcW( a ) + "-" + tdcE( b ) + ") / 2.0 - vertexZ >> vZ( 30, -15, 15 )", "fastAdcEast>10 && fastAdcWest>10", "colz" )
vZ = R.gDirectory.Get( "vZ" )
ff = R.TF1( "fgaus", "gaus" )
vZ.Fit( ff )
return ff.GetParameter(2)
def sigmaErrorFrom( a, b ) :
if 0 == a or 4 == a or 8 == a or 12 == a : return 0
if 0 == b or 4 == b or 8 == b or 12 == b : return 0
chain.Draw( "29.979 * 0.0188 * ( " + tdcW( a ) + "-" + tdcE( b ) + ") / 2.0 - vertexZ >> vZ( 30, -15, 15 )", "fastAdcEast>10 && fastAdcWest>10", "colz" )
vZ = R.gDirectory.Get( "vZ" )
ff = R.TF1( "fgaus", "gaus" )
vZ.Fit( ff )
return ff.GetParError(2)
hSigmas = R.TH1D( "sigmas", "sigmas", 140, 0, 140 )
sigmaVals = []
sigmaErrs = []
for a in range( 0, 16 ) :
for b in range( 0, 16 ):
val = sigmaFrom( a, b )
sigmaVals.append( val )
sigmaErrs.append( sigmaErrorFrom( a, b ) )
iBin = 1
for v, e in zip( sigmaVals, sigmaErrs) :
if 0 != v :
hSigmas.SetBinContent( iBin, v )
hSigmas.SetBinError( iBin, e )
iBin = iBin+1
fpol = R.TF1( "fpol", "pol0" )
hSigmas.Draw("pe")
fpol.SetLineWidth(5)
fpol.SetLineColor( R.kRed )
hSigmas.Fit( fpol )
hSigmas.SetTitle( "Vertex resolution for random not-fastest-TAC pairs; ; #sigma( L0 vZ - TPC vZ )" )
c1
chain.Draw( "29.979 * 0.0188 * ( fastTdcWest - fastTdcEast ) / 2.0 - vertexZ >> vZ( 30, -10, 12 )", "fastAdcEast>10 && fastAdcWest>10", "colz" )
vZ = R.gDirectory.Get( "vZ" )
ff = R.TF1( "fgaus", "gaus" )
ff.SetLineColor( R.kRed )
ff.SetLineWidth( 3 )
vZ.Fit( ff )
vZ.SetTitle( "L0 Vz From Fastest TAC West - East; L0 vZ - TPC vZ [cm]" )
c1
(5.866 - 4.375) / 5.866
( 4.375 - 5.866) / 4.375