#include #include #include #include #include #include #include #include using namespace std; void initCounters(); int inclusiveCount[numWbins][numQ2bins];//={0,0,0}; //total inclusive e- count int tagIncCount[numWbins][numQ2bins];//={0,0,0}; //total tagged-inclusive count (tagged w/ VIP) int tagIncBGCount[numWbins][numQ2bins];//={0,0,0}; //total background to tagged-inclusive int tagIncCount_BGcorr[numWbins][numQ2bins];//={0,0,0}; //tagged-inclusive count, corrected for background int rc_untagInc[numWbins][numQ2bins]; //untagged inclusive count radiative and bg corrected int rc_bgc_tagInc[numWbins][numQ2bins]; //tagged count radiative and bg corrected double runningW[numWbins][numQ2bins];//={0,0,0}; //Running W sum double runningQ2[numWbins][numQ2bins];//={0,0,0}; //Running Q^2 sum double runningx[numWbins][numQ2bins];//={0,0,0}; //Running x sum double runningps[numWbins][numQ2bins];//={0,0,0}; //Running ps sum double Wavg[numWbins][numQ2bins];//={0,0,0}; //Avg. W per bin double Q2avg[numWbins][numQ2bins];//={0,0,0}; //Avg. Q^2 per bin double xavg[numWbins][numQ2bins];//={0,0,0}; //Avg. x per bin double psavg[numWbins][numQ2bins];//={0,0,0}; //Avg. ps per bin double Q2_min[numQ2bins],Q2_max[numQ2bins]; //Arrays for Q^2 bin definitions int loWbin,hiWbin,Wbin,Wstarbin; //misc int Q2_bin,loQ2bin,hiQ2bin; double Wmin[numWbins],Wmax[numWbins], dW; double psmin[npsbins],psmax[npsbins], dps; void initCounters() { double junk; //Temp Junk variables char skip[256]; ///initialize data arrays for(ii = 0; ii < numWbins; ii++) { for(jj = 0; jj < numQ2bins; jj++) { inclusiveCount[ii][jj] = 0; tagIncCount[ii][jj] = 0; tagIncBGCount[ii][jj] = 0; tagIncCount_BGcorr[ii][jj] = 0; rc_untagInc[ii][jj] = 0; rc_bgc_tagInc[ii][jj] = 0; runningW[ii][jj] = 0; runningQ2[ii][jj] = 0; runningx[ii][jj] = 0; runningps[ii][jj] = 0; Wavg[ii][jj] = 0; Q2avg[ii][jj] = 0; xavg[ii][jj] = 0; psavg[ii][jj] = 0; } } /////////////////////////////////////////////////////////////////// //Get Q^2 bin values //Must make sure Q2bins.dat file is in correct directory loWbin = 310; hiWbin = -1; loQ2bin = 50; hiQ2bin = -1; ifstream Q2file("./Q2bins.dat"); //Open file containing Q^2 bin def. file if (!Q2file.good()) { printf(">>>>WARNING!!!! Q2 binning file missing!!<<<<"); } else { //------------------------------------Read Q^2 values from file Q2file.getline(skip,256); Q2_min[0]=0; for (int h=1;h<=40;h++){ Q2file >> Q2_bin; Q2file >> Q2_min[Q2_bin] >> Q2_max[Q2_bin] >> junk >> junk; //printf("Q2_min,Q2_max[%d] = %.2f %.2f\n", // Q2_bin,Q2_min[Q2_bin],Q2_max[Q2_bin]); } Q2_max[0]=Q2_min[1]; } ///////////////////////////////////////////////////////////////////////////////////////////////// //-------------------Make W and p_spectator bins Wmin[0]=lowW; Wmax[numWbins-1]=highW; dW = highW - lowW; for (int t=1;t