# Used with select * from DCOPS_NEW_DCOPS where line_timestamp>=XXX order by line_timestamp,dlc_index # Purpose is to figure out which events are likely to be better, and guess which laser lines will # have problems. # James N. Bellinger 2-July-2010 function clearArray(){ for(i=1; i<=504; i++){Pr1[i]=0;Pr2[i]=0;Pr3[i]=0;Pr4[i]=0;} return 0; } function dumpAns(){ if(count<=0) return 0; badU=0; badL=0; badB=0; for(i=1; i<=504; i++){ if(Pr1[i]>0&&Pr3[i]>0){badU++;} if(Pr2[i]>0&&Pr4[i]>0){badL++;} if(Pr1[i]>0&&Pr3[i]>0&&Pr2[i]>0&&Pr4[i]>0){badB++;} } print runno,"w/",count,"has bad UD ",badU,", LR",badL," , both ",badB; for(i=1; i<=6; i++){MEp1[i]=0; MEm1[i]=0; XFER[i]=0;} for(i=1; i<=3; i++){ MEp2[i]=0; MEm2[i]=0; MEp3[i]=0; MEm3[i]=0; MEp4[i]=0; MEm4[i]=0; } for(i=1; i<=6; i++){ for(j=1; j<=4; j++){ if((Pr1[i*4-4+j]>0||Pr3[i*4-4+j]>0)||(Pr2[i*4-4+j]>0||Pr4[i*4-4+j]>0)){ MEp1[i]++;} if((Pr1[i*4+176+j]>0||Pr3[i*4+176+j]>0)||(Pr2[i*4+176+j]>0||Pr4[i*4+176+j]>0)){ MEm1[i]++;} } for(j=1; j<=12; j++){ if((Pr1[i*24+336+j]>0&&Pr3[i*24+336+j]>0&&Pr1[i*24+348+j]>0&&Pr3[i*24+348+j]>0)|| (Pr2[i*24+336+j]>0&&Pr4[i*24+336+j]>0&&Pr2[i*24+348+j]>0&&Pr4[i*24+348+j]>0)){ XFER[i]++; } } } for(i=1; i<=3; i++){ for(j=1; j<=10; j++){ if((Pr1[i*20+j+4]>0&&Pr3[i*20+j+4]>0&&Pr1[i*20+j+14]>0&&Pr3[i*20+j+14]>0)|| (Pr2[i*20+j+4]>0&&Pr4[i*20+j+4]>0&&Pr2[i*20+j+14]>0&&Pr4[i*20+j+14]>0)){ MEp2[i]++;} if((Pr1[i*20+j+64]>0&&Pr3[i*20+j+64]>0&&Pr1[i*20+j+74]>0&&Pr3[i*20+j+74]>0)|| (Pr2[i*20+j+64]>0&&Pr4[i*20+j+64]>0&&Pr2[i*20+j+74]>0&&Pr4[i*20+j+74]>0)){ MEp3[i]++;} if((Pr1[i*20+j+184]>0&&Pr3[i*20+j+184]>0&&Pr1[i*20+j+194]>0&&Pr3[i*20+j+194]>0)|| (Pr2[i*20+j+184]>0&&Pr4[i*20+j+184]>0&&Pr2[i*20+j+194]>0&&Pr4[i*20+j+194]>0)){ MEm2[i]++;} if((Pr1[i*20+j+244]>0&&Pr3[i*20+j+244]>0&&Pr1[i*20+j+254]>0&&Pr3[i*20+j+254]>0)|| (Pr2[i*20+j+244]>0&&Pr4[i*20+j+244]>0&&Pr2[i*20+j+254]>0&&Pr4[i*20+j+254]>0)){ MEm3[i]++;} } for(j=1; j<=6; j++){ if((Pr1[i*12+j+132]>0&&Pr3[i*12+j+132]>0&&Pr1[i*12+j+138]>0&&Pr3[i*12+j+138]>0)|| (Pr2[i*12+j+132]>0&&Pr4[i*12+j+132]>0&&Pr2[i*12+j+138]>0&&Pr4[i*12+j+138]>0)){ MEp4[i]++;} if((Pr1[i*12+j+312]>0&&Pr3[i*12+j+312]>0&&Pr1[i*12+j+318]>0&&Pr3[i*12+j+318]>0)|| (Pr2[i*12+j+312]>0&&Pr4[i*12+j+312]>0&&Pr2[i*12+j+318]>0&&Pr4[i*12+j+318]>0)){ MEp4[i]++;} } } print runno,count"\t+1 "\ MEp1[1],MEp1[2],MEp1[3],MEp1[4],MEp1[5],MEp1[6]"\t+2 "\ MEp2[1],MEp2[2],MEp2[3]"\t+3 "MEp3[1],MEp3[2],MEp3[3]"\t+4 "MEp4[1],MEp4[2],MEp4[3]"\nXF "\ XFER[1],XFER[2],XFER[3],XFER[4],XFER[5],XFER[6]"\t-1 "\ MEm1[1],MEm1[2],MEm1[3],MEm1[4],MEm1[5],MEm1[6]"\t-2 "\ MEm2[1],MEm2[2],MEm2[3]"\t-3 "MEm3[1],MEm3[2],MEm3[3]"\t-4 "MEm4[1],MEm4[2],MEm4[3]; clearArray(); return 0; } BEGIN{ runno=clearArray(); count=0; } function Cuts(areasignal, areabackground, sigma, chi, error, mean){ a=0; if(mean<=-10||mean>=2050) a++; if(areasignal<=100||areasignal>5000000) a++; if(areabackground<=0||areabackground>5000000) a++; if(sigma<=5||sigma>600) a++; return a; } { DLC=$1; DCID=$2; LID=$3; status=$4; mean1=$5; mean2=$6; mean3=$7; mean4=$8; merr1=$9; merr2=$10; merr3=$11; merr4=$12; sig1=$13; sig2=$14; sig3=$15; sig4=$16; areasig1=$17; areasig2=$18; areasig3=$19; areasig4=$20; areabak1=$21; areabak2=$22; areabak3=$23; areabak4=$24; chi1=$25; chi2=$26; chi3=$27; chi4=$28; ndof1=$29; ndof2=$30; ndof3=$31; ndof4=$32; time=$33; temp=$34; if(runno!=time){ if(count>0){xxx=dumpAns(); count=1;} runno=time; } else{count++;} if(Cuts(areasig1, areabak1, sig1, chi1, merr1, mean1)!=0){Pr1[DLC]++;} if(Cuts(areasig2, areabak2, sig2, chi2, merr2, mean2)!=0){Pr2[DLC]++;} if(Cuts(areasig3, areabak3, sig3, chi3, merr3, mean3)!=0){Pr3[DLC]++;} if(Cuts(areasig4, areabak4, sig4, chi4, merr4, mean4)!=0){Pr4[DLC]++;} } END{ xxx=dumpAns(); }