I've calculated the qso-galaxy correlation functions on the entire stripe, and also the stripe divided into two halves.

The code to do this is below (also in ../qsobias/Correlate/runCorrelation.py):

import numpy as N

from pylab import *

from correlationFunctions import *

#------------------------------------------------------------------------

# Set Angular Correlation Bin Information

#------------------------------------------------------------------------

oversample = 5. # Amount that randoms should be oversampled

corrBins = 15.0 # Number of correlation bins (+1)

mincorr = 0.1 # (Mpc/h comoving distance separation) Must be great than zero if log-binning

maxcorr = 10.0 # (Mphc/h comoving distance separation)

convo = 180./pi # conversion from degrees to radians

tlogbin = 1 # = 0 for uniform spacing, = 1 for log spacing in theta

#------------------------------------------------------------------------

# Create file names (full catalog)

#------------------------------------------------------------------------

workingDir = 'fullrun1'

makeworkingdir(workingDir)

galaxyDataFile, qsoDataFile, randomDataFile, corr2dCodefile, argumentFile, \

runConstantsFile = makeFileNamesFull(workingDir)

#------------------------------------------------------------------------

# Write run constants to a file (full catalog)

#------------------------------------------------------------------------

writeRunConstantsToFile(runConstantsFile, galaxyDataFile, qsoDataFile, \

randomDataFile, corr2dCodefile, argumentFile, oversample, corrBins, \

mincorr, maxcorr, tlogbin)

#------------------------------------------------------------------------

# Compute the Angular Correlation Function (full catalog)

#------------------------------------------------------------------------

runcrossCorrelation(workingDir, argumentFile, corr2dCodefile, galaxyDataFile,\

qsoDataFile, randomDataFile, mincorr, maxcorr, corrBins, tlogbin)

#------------------------------------------------------------------------

# Create file names (Left catalog)

#------------------------------------------------------------------------

workingDir = 'leftrun1'

makeworkingdir(workingDir)

galaxyDataFile, qsoDataFile, randomDataFile, corr2dCodefile, argumentFile, \

runConstantsFile = makeFileNamesLeft(workingDir)

#------------------------------------------------------------------------

# Write run constants to a file (Left catalog)

#------------------------------------------------------------------------

writeRunConstantsToFile(runConstantsFile, galaxyDataFile, qsoDataFile, \

randomDataFile, corr2dCodefile, argumentFile, oversample, corrBins, \

mincorr, maxcorr, tlogbin)

#------------------------------------------------------------------------

# Compute the Angular Correlation Function (Left catalog)

#------------------------------------------------------------------------

runcrossCorrelation(workingDir, argumentFile, corr2dCodefile, galaxyDataFile,\

qsoDataFile, randomDataFile, mincorr, maxcorr, corrBins, tlogbin)

#------------------------------------------------------------------------

# Create file names (Right catalog)

#------------------------------------------------------------------------

workingDir = 'rightrun1'

makeworkingdir(workingDir)

galaxyDataFile, qsoDataFile, randomDataFile, corr2dCodefile, argumentFile, \

runConstantsFile = makeFileNamesRight(workingDir)

#------------------------------------------------------------------------

# Write run constants to a file (Right catalog)

#------------------------------------------------------------------------

writeRunConstantsToFile(runConstantsFile, galaxyDataFile, qsoDataFile, \

randomDataFile, corr2dCodefile, argumentFile, oversample, corrBins, \

mincorr, maxcorr, tlogbin)

#------------------------------------------------------------------------

# Compute the Angular Correlation Function (Right catalog)

#------------------------------------------------------------------------

runcrossCorrelation(workingDir, argumentFile, corr2dCodefile, galaxyDataFile,\

qsoDataFile, randomDataFile, mincorr, maxcorr, corrBins, tlogbin)

#------------------------------------------------------------------------

# Must wait for jobs to finish running & output files to be created

#------------------------------------------------------------------------

#------------------------------------------------------------------------

# Plot Correlation Functions

#------------------------------------------------------------------------

#------------------------------------------------------------------------

# Plot Full Stripe 82

#------------------------------------------------------------------------

workingDir = "fullrun1"

outfile = "./"+workingDir+"/wpsOutput.dat"

theta,omega=readCorrOutfile(outfile) #Reads correlation output file

loglog(theta, omega,'r-', label = "Full Stripe")

# Number of dd pairs in each bin

ddpairs = [3029, 5404, 9578, 17175, 31653, 58113, 106518, 194566, 358573, 656623, 1211740, 2234135, 4121513, 7602541, 13931607]

errors = 1/N.sqrt(ddpairs)

errorbar(theta, omega, yerr=errors,fmt='ro')

xlabel('Separation Distance (Mpc/h)')

ylabel('omega')

title('2D QSO-Galaxy Cross-correlation Function')

pylab.legend(loc=3)

(plots on wiki)

#------------------------------------------------------------------------

# Plot Full Stripe 82, Left-Half and Right-Half of Stripe 82

#------------------------------------------------------------------------

workingDir = "fullrun1"

outfile = "./"+workingDir+"/wpsOutput.dat"

theta,omega=readCorrOutfile(outfile) #Reads correlation output file

loglog(theta, omega, label = "Full Stripe")

workingDir = "leftrun1"

outfile = "./"+workingDir+"/wpsOutput.dat"

theta1,omega1=readCorrOutfile(outfile) #Reads correlation output file

loglog(theta1, omega1, label = "Left Stripe")

workingDir = "rightrun1"

outfile = "./"+workingDir+"/wpsOutput.dat"

theta2,omega2=readCorrOutfile(outfile) #Reads correlation output file

loglog(theta2, omega2, label = "Right Stripe")

xlabel('Separation Distance (Mpc/h)')

ylabel('omega')

title('2D QSO-Galaxy Cross-correlation Function')

pylab.legend(loc=3)

(plots on wiki)

#------------------------------------------------------------------------

# Plot Full, Left-Half, Right-Half of Stripe 82, and Mean of all three + 3-sigma errors

#------------------------------------------------------------------------

workingDir = "fullrun1"

outfile = "./"+workingDir+"/wpsOutput.dat"

theta,omega=readCorrOutfile(outfile) #Reads correlation output file

loglog(theta, omega, label = "Full Stripe")

workingDir = "leftrun1"

outfile = "./"+workingDir+"/wpsOutput.dat"

theta1,omega1=readCorrOutfile(outfile) #Reads correlation output file

loglog(theta1, omega1, label = "Left Stripe")

workingDir = "rightrun1"

outfile = "./"+workingDir+"/wpsOutput.dat"

theta2,omega2=readCorrOutfile(outfile) #Reads correlation output file

loglog(theta2, omega2, label = "Right Stripe")

datamaxtrix = [omega,omega1,omega2]

mean = N.mean(datamatrix,axis=0)

errors = 3*N.std(datamatrix,axis=0)/sqrt(3)

loglog(theta, mean, 'k-',label = "Mean")

errorbar(theta, mean, yerr=errors,fmt='ko')

xlabel('Separation Distance (Mpc/h)')

ylabel('omega')

title('2D QSO-Galaxy Cross-correlation Function')

pylab.legend(loc=3)

(plots on wiki)

I sent the above plots to Martin, Alexie, Nic and David. Martin thought they looked about right. The slope of the mean correlation function above is -0.74. Martin and Nikhil found that the 3D correlation function was about -1.7, and we would expect the projected 2D correlation function to be about one less than this.... so that is good.

1) Try dividing the QSO samples into different redshift/brightness sets and see if we get different correlation results.

2) Implement jackknifing ability into the code.