Skip to content
Snippets Groups Projects
Commit eb23491e authored by Patrick Friedel's avatar Patrick Friedel
Browse files

add of summarizeResults.pl subMassIndepQa.pl

parent 30bc1504
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/perl -w
use strict;
use File::Basename;
my $baseDir = "/data/sleipnir1/patrick/pwa/Pawian/Examples/JpsiToPhiPhiGam/bin/gcc-4.4.5/release/link-static/jpsiData";
print $baseDir."\n";
my $pawiandir = $ENV{CMAKE_SOURCE_DIR};
print $pawiandir."\n";
#my $configFilesDir = $pawiandir."/Examples/JpsiToPhiPhiGam/ConfigFiles";
#print $configFilesDir."\n";
my $queue="batch";
#my $queue="pwaLarge";
my $app = "$pawiandir/Examples/JpsiToPhiPhiGam/bin/gcc-4.4.5/release/link-static/MJpsiToPhiPhiGamApp";
my @mySingleHypList=('All', 'Eta2', 'Eta', 'F0', 'F1', 'F2');
my @myHypList=('Eta', 'Eta2', 'F0', 'F1', 'F2', 'Eta_F0', 'Eta_F1', 'Eta_F2', 'Eta_Eta2', 'F0_F1', 'F0_F2', 'F0_Eta2', 'F1_F2', 'F1_Eta2', 'F2_Eta2', 'Eta_F0_F1', 'Eta_F0_F2', 'Eta_F0_Eta2', 'Eta_F1_F2', 'Eta_F1_Eta2', 'Eta_F2_Eta2', 'F0_F1_F2', 'F0_F1_Eta2', 'F0_F2_Eta2', 'F1_F2_Eta2', 'Eta_F0_F1_F2', 'Eta_F0_F1_Eta2', 'Eta_F0_F2_Eta2', 'Eta_F1_F2_Eta2', 'F0_F1_F2_Eta2', 'Eta_F0_F1_F2_Eta2' );
my $theHyp= "";
for $theHyp (@myHypList) {
my $configFile = "JpsiGamPhiPhi_$theHyp.cfg";
my $allHyps = "All";
my $massMin=2.05;
my $binWidth=0.05;
my $nbins=20;
my $bin=0;
while($bin<$nbins){
my $rangeMin=$massMin+$bin*$binWidth;
my $rangeMax = $rangeMin+$binWidth;
my $rangeMean = sprintf("%.0f",($rangeMin+0.5*$binWidth)*1000);
my $rangeDir= $baseDir."/" .$rangeMean;
if(! (-e $rangeDir)){
print "rangeDir:\t".$rangeDir."\tdoes not exist!\n";
exit(0);
}
my $fitDir = $rangeDir."/" .$theHyp;
if(! (-e $fitDir)) {
print "fitDir:\t".$fitDir."\tdoes not exist!\n";
exit(0);
}
my $fitConfig = $fitDir."/JpsiGamPhiPhi_$theHyp.cfg";
print "fitConfig:\t".$fitConfig."\n";
my $qaDir = $fitDir."/qa";
if(! (-e $qaDir)) {system("mkdir $qaDir");}
my $singleHyp= "";
my $theCompHyps = $theHyp;
for $singleHyp (@mySingleHypList) {
if ($theCompHyps =~ /$singleHyp/ || $singleHyp =~ /All/){
if ($singleHyp !~ /All/){ $theCompHyps =~ s/$singleHyp/''/g};
print $singleHyp."\t exists\n";
my $qaHypDir = $qaDir."/".$singleHyp;
if(! (-e $qaHypDir)) {system("mkdir $qaHypDir");}
# chdir($qaHypDir);
my $qaConfigFile = $qaHypDir."/JpsiGamPhiPhi_$theHyp.cfg";
# system("cp $fitConfig $qaConfigFile");
open INF, "<$fitConfig";
open OUTF, ">$qaConfigFile";
while (<INF>) {
if ($_ !~ /paramFile/ && $_ !~ /enableHyp/) { print OUTF $_; }
elsif ($_ =~ /paramFile/) { print OUTF "paramFile = ".$fitDir."/finalResult.dat"; }
elsif($_ =~ /enableHyp/){
if ($singleHyp =~ /All/ || $_ =~ /$singleHyp/) { print OUTF $_; }
}
}
close INF;
close OUTF;
chdir($qaHypDir);
my $cmd = "bsub -q $queue -o $qaHypDir/batch.log \"$app -c $qaConfigFile --mode qaMode >&! $qaHypDir/qa.log\"";
# my $cmd = "$app -c $qaConfigFile --mode qaMode >&! $qaHypDir/qa.log";
print $cmd."\n";
system($cmd);
}
}
chdir($baseDir);
$bin++;
}
}
#!/usr/bin/perl -w
use strict;
use File::Basename;
my $baseDir = "/data/sleipnir1/patrick/pwa/Pawian/Examples/JpsiToPhiPhiGam/bin/gcc-4.4.5/release/link-static/jpsiData";
my @myHypList=('Eta', 'Eta2', 'F0', 'F1', 'F2', 'Eta_F0', 'Eta_F1', 'Eta_F2', 'Eta_Eta2', 'F0_F1', 'F0_F2', 'F0_Eta2', 'F1_F2', 'F1_Eta2', 'F2_Eta2', 'Eta_F0_F1', 'Eta_F0_F2', 'Eta_F0_Eta2', 'Eta_F1_F2', 'Eta_F1_Eta2', 'Eta_F2_Eta2', 'F0_F1_F2', 'F0_F1_Eta2', 'F0_F2_Eta2', 'F1_F2_Eta2', 'Eta_F0_F1_F2', 'Eta_F0_F1_Eta2', 'Eta_F0_F2_Eta2', 'Eta_F1_F2_Eta2', 'F0_F1_F2_Eta2', 'Eta_F0_F1_F2_Eta2');
my $qaFile = "qaSummary.dat";
my $massMin=2.05;
my $binWidth=0.05;
my $nbins=20;
my $bin=0;
while($bin<$nbins){
my $rangeMin=$massMin+$bin*$binWidth;
my $rangeMax = $rangeMin+$binWidth;
my $rangeMean = sprintf("%.0f",($rangeMin+0.5*$binWidth)*1000);
my $rangeDir= $baseDir."/" .$rangeMean;
if(! (-e $rangeDir)){
print "rangeDir:\t".$rangeDir."\tdoes not exist!\n";
exit(0);
}
my $summaryFile = $baseDir."/summary".$rangeMean.".txt";
open SUMFILE, ">$summaryFile";
print SUMFILE "Phi Phi Mass range\tMin: ".$rangeMin."\tMax: ".$rangeMax."\n\n";
# print SUMFILE "hypothesis\tBIC\tAIC\tNLL\tNoParams\n\n";
printf SUMFILE '%17s',"hypothesis";
printf SUMFILE '%10s',"BIC";
printf SUMFILE '%10s',"AIC";
printf SUMFILE '%10s',"AICc";
printf SUMFILE '%10s',"NLL";
printf SUMFILE '%12s',"NoParams\n";
my $makeSummaryListFile = $baseDir."/makeSummaryLists".$rangeMean.".C";
open MAKESUMMARYLISTFILE, ">$makeSummaryListFile";
print MAKESUMMARYLISTFILE "#include <iostream>\n";
print MAKESUMMARYLISTFILE "#include <fstream>\n";
print MAKESUMMARYLISTFILE "#include <map>\n";
print MAKESUMMARYLISTFILE "#include <string>\n";
print MAKESUMMARYLISTFILE "#include \"TMath.h\"\n";
print MAKESUMMARYLISTFILE "#include \"Math/DistFunc.h\"\n";
print MAKESUMMARYLISTFILE "using namespace std;\n";
print MAKESUMMARYLISTFILE "void makeSummaryLists$rangeMean\(\)\{\n\n";
print MAKESUMMARYLISTFILE "std::map< string, pair<double, int> > lhResultMap;\n";
print MAKESUMMARYLISTFILE "std::map< double, string > bicMap;\n";
print MAKESUMMARYLISTFILE "std::map< double, string > aicMap;\n\n";
print MAKESUMMARYLISTFILE "std::map< double, string > aiccMap;\n\n";
my $theHyp= "";
for $theHyp (@myHypList) {
my $fitDir = $rangeDir."/" .$theHyp;
if(! (-e $fitDir)) {
print "fitDir:\t".$fitDir."\tdoes not exist!\n";
exit(0);
}
my $qaDir = $fitDir."/qa/All";
if(! (-e $qaDir)) {
print "qaDir:\t".$qaDir."\tdoes not exist!\n";
exit(0);
}
my $qaFile = $qaDir."/qaSummary.dat";
my $qaCont = `cat $qaFile`;
foreach my $line(split "\n", $qaCont){
if($line=~/BIC/){
my @lineCont = split(/\t/,$line);
# print SUMFILE $theHyp."\t".$lineCont[1]."\t";
printf SUMFILE '%17s',"$theHyp";
printf SUMFILE '%10s',"$lineCont[1]";
printf MAKESUMMARYLISTFILE "bicMap\[$lineCont[1]\]=\"$theHyp\";\n";
}
elsif($line=~/AICa/){
my @lineCont = split(/\t/,$line);
# print SUMFILE $lineCont[1]."\t";
printf SUMFILE '%10s',"$lineCont[1]";
printf MAKESUMMARYLISTFILE "aicMap\[$lineCont[1]\]=\"$theHyp\";\n";
}
elsif($line=~/AICc/){
my @lineCont = split(/\t/,$line);
# print SUMFILE $lineCont[1]."\t";
printf SUMFILE '%10s',"$lineCont[1]";
printf MAKESUMMARYLISTFILE "aiccMap\[$lineCont[1]\]=\"$theHyp\";\n";
}
elsif($line=~/logLh/){
my @lineCont = split(/\t/,$line);
# print SUMFILE $lineCont[1]."\t";
printf SUMFILE '%10s',"$lineCont[1]";
printf MAKESUMMARYLISTFILE "lhResultMap[\"$theHyp\"\] = make_pair($lineCont[1],";
}
elsif($line=~/free parameter/){
my @lineCont = split(/\t/,$line);
# print SUMFILE $lineCont[1]."\n";
printf SUMFILE '%12s',"$lineCont[1]\n";
printf MAKESUMMARYLISTFILE "$lineCont[1]\);\n\n";
}
}
}
print MAKESUMMARYLISTFILE "std::map<double, string> ratioResultMapInv;\n";
print MAKESUMMARYLISTFILE "std::map< string, pair<double, int> >::iterator it;\n";
print MAKESUMMARYLISTFILE "for (it=lhResultMap.begin(); it!=lhResultMap.end(); ++it){\n";
print MAKESUMMARYLISTFILE "double currentLhRatio=sqrt(ROOT::Math::chisquared_quantile_c(TMath::Prob(2.*fabs(lhResultMap[\"Eta_F0_F1_F2_Eta2\"].first-it->second.first), lhResultMap[\"Eta_F0_F1_F2_Eta2\"].second-it->second.second),1));\n";
print MAKESUMMARYLISTFILE "cout << \"LhRatio:\t\" << it->first << \"\t\" << currentLhRatio << endl;\n";
print MAKESUMMARYLISTFILE "ratioResultMapInv[currentLhRatio]=it->first;\n";
print MAKESUMMARYLISTFILE "\}\n\n";
print MAKESUMMARYLISTFILE "ofstream lhStream;\n";
print MAKESUMMARYLISTFILE "lhStream.open(\"LhRatioList$rangeMean.txt\");\n";
print MAKESUMMARYLISTFILE "map<double, string>::iterator it2;\n";
print MAKESUMMARYLISTFILE "for (it2=ratioResultMapInv.begin(); it2!=ratioResultMapInv.end(); ++it2){\n";
print MAKESUMMARYLISTFILE "cout << it2->second << \"\t\" << it2->first << endl;\n";
print MAKESUMMARYLISTFILE "lhStream << it2->second << \"\t\" << it2->first << endl;\n";
print MAKESUMMARYLISTFILE "}\n\n";
print MAKESUMMARYLISTFILE "ofstream aicStream;\n";
print MAKESUMMARYLISTFILE "aicStream.open(\"AICList$rangeMean.txt\");\n";
print MAKESUMMARYLISTFILE "map<double, string>::iterator it3;\n";
print MAKESUMMARYLISTFILE "for (it3=aicMap.begin(); it3!=aicMap.end(); ++it3){\n";
print MAKESUMMARYLISTFILE "cout << it3->second << \"\t\" << it3->first << endl;\n";
print MAKESUMMARYLISTFILE "aicStream << it3->second << \"\t\" << it3->first << endl;\n";
print MAKESUMMARYLISTFILE "}\n\n";
print MAKESUMMARYLISTFILE "ofstream aiccStream;\n";
print MAKESUMMARYLISTFILE "aiccStream.open(\"AICcList$rangeMean.txt\");\n";
print MAKESUMMARYLISTFILE "for (it3=aiccMap.begin(); it3!=aiccMap.end(); ++it3){\n";
print MAKESUMMARYLISTFILE "cout << it3->second << \"\t\" << it3->first << endl;\n";
print MAKESUMMARYLISTFILE "aiccStream << it3->second << \"\t\" << it3->first << endl;\n";
print MAKESUMMARYLISTFILE "}\n\n";
print MAKESUMMARYLISTFILE "ofstream bicStream;\n";
print MAKESUMMARYLISTFILE "bicStream.open(\"BICList$rangeMean.txt\");\n";
print MAKESUMMARYLISTFILE "for (it3=bicMap.begin(); it3!=bicMap.end(); ++it3){\n";
print MAKESUMMARYLISTFILE "cout << it3->second << \"\t\" << it3->first << endl;\n";
print MAKESUMMARYLISTFILE "bicStream << it3->second << \"\t\" << it3->first << endl;\n";
print MAKESUMMARYLISTFILE "}\n\n";
print MAKESUMMARYLISTFILE "}\n";
close SUMFILE;
close MAKESUMMARYLISTFILE;
$bin++;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment