In [1]:
%run '../rootlib.ipynb'
chain = R.TChain( "bbq" )
chain.Add( "/Users/danielbrandenburg/bnl/local/work/vpdTriggerSlewPicoDstMaker/bin/bbq.root" )
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/kernel/__init__.py:13: ShimWarning: The `IPython.kernel` package has been deprecated. You should import from ipykernel or jupyter_client instead.
  "You should import from ipykernel or jupyter_client instead.", ShimWarning)
Out[1]:
1
In [2]:
c1 = Canvas( width = 1000, height = 600 )
In [6]:
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 )
In [18]:
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)
In [19]:
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 ) )
WARNING:ROOT.TROOT.Append:Replacing existing TH1: sigmas (Potential memory leak).
In [21]:
iBin = 1
for v, e in zip( sigmaVals, sigmaErrs) :
    if 0 != v :
        hSigmas.SetBinContent( iBin, v )
        hSigmas.SetBinError( iBin, e )
        iBin = iBin+1

Vertex Resolution using random pairs of not-earliest TACs

In [46]:
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
Out[46]:
In [47]:
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
Out[47]:
In [29]:
(5.866 - 4.375) / 5.866
Out[29]:
0.25417661097852023
In [48]:
( 4.375 - 5.866) / 4.375
Out[48]:
-0.34079999999999994
In [ ]: