123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #! /opt/star/bin/perl -w
- use File::Basename;
- use Getopt::Std;
- use Cwd 'abs_path'; # aka realpath()
- my %opt;
- getopts('htoz:b:m:adn:q:x:y:s',\%opt);
- my $usage = "$0 combinedDir \n";
- #----
- my $combinedDir = shift or die $usage;
- #my $pwd = abs_path ( $ENV { 'PWD' } );
- my $pwd = `pwd`;
- if ($pwd=~/direct/) { #if at RCF, /direct/star+dataxx/ does not work ! ANNOYING
- $pwd=~ s/\/direct//;
- $pwd=~ s/\+/\//; # change /direct/star+dataxx to /star/dataxx
- }
- chomp($pwd);
- @flowCents = (
- # "cen1",
- # "cen2",
- # "cen3",
- "cen4"
- # "cen5",
- # "cen6",
- # "cen7",
- # "cen8",
- # "cen9"
- );
- my $stdHistName = "flow.hist.root";
- my $tempMacroName="myWriteHeader";
- open ( tempMacro, ">".$tempMacroName.".C");
- print tempMacro "void $tempMacroName(const char* histFileName, const char* headerFileName) { \n";
- print tempMacro " TFile* histFile = new TFile(histFileName,\"READ\"); \n";
- print tempMacro " TVectorD* cumulConstants =(TVectorD* ) histFile->Get(\"CumulConstants\"); \n";
- print tempMacro " int nHars = (*cumulConstants)(0); \n";
- print tempMacro " int nSels = (*cumulConstants)(1); \n";
- print tempMacro " int nSubs = (*cumulConstants)(2); \n";
- print tempMacro " int nPhiBins = (*cumulConstants)(3); \n";
- print tempMacro " int nPhiBinsFtpc = (*cumulConstants)(4); \n";
- print tempMacro " int nEtaBins = (*cumulConstants)(5); \n";
- print tempMacro " int nPtBins = (*cumulConstants)(6); \n";
- print tempMacro " int nCumulIntegOrders = (*cumulConstants)(7); \n";
- print tempMacro " int nCumulInteg_qMax = (*cumulConstants)(8); \n";
- print tempMacro " int nCumulDiffOrders = (*cumulConstants)(9); \n";
- print tempMacro " int nCumulDiff_qMax = (*cumulConstants)(10); \n";
- print tempMacro " int nCumulMixHar_pMax = (*cumulConstants)(11); \n";
- print tempMacro " int nCumulMixHar_qMax = (*cumulConstants)(12); \n";
- print tempMacro " double r0 = (*cumulConstants)(13); \n";
- print tempMacro " int m_M = (*cumulConstants)(14); \n";
- print tempMacro " int isPidFlow = (*cumulConstants)(15); \n";
- print tempMacro " double r0Mix = (*cumulConstants)(16); \n";
- print tempMacro " double profScale = (*cumulConstants)(17); \n";
- print tempMacro " TObjString* oldNewTag = (TObjString* )histFile->Get(\"CumulMethodTag\"); \n";
- print tempMacro " int isNewMethod = ((oldNewTag->GetString()).Contains(\"cumulNew\")) ? 1 : 0; \n";
- print tempMacro " FILE* f = fopen(headerFileName,\"w\"); \n";
- print tempMacro " fprintf(f, \"const int nHars = %d; \\n\", nHars); \n";
- print tempMacro " fprintf(f, \"const int nSels = %d; \\n\", nSels); \n";
- print tempMacro " fprintf(f, \"const int nSubs = %d; \\n\", nSubs); \n";
- print tempMacro " fprintf(f, \"const int nPhiBins = %d; \\n\", nPhiBins); \n";
- print tempMacro " fprintf(f, \"const int nPhiBinsFtpc = %d; \\n\", nPhiBinsFtpc); \n";
- print tempMacro " fprintf(f, \"const int nEtaBins = %d; \\n\", nEtaBins); \n";
- print tempMacro " fprintf(f, \"const int nPtBins = %d; \\n\", nPtBins); \n";
- print tempMacro " fprintf(f, \"const int nCumulIntegOrders = %d; \\n\", nCumulIntegOrders); \n";
- print tempMacro " fprintf(f, \"const int nCumulInteg_qMax = %d; \\n\", nCumulInteg_qMax); \n";
- print tempMacro " fprintf(f, \"const int nCumulDiffOrders = %d; \\n\", nCumulDiffOrders); \n";
- print tempMacro " fprintf(f, \"const int nCumulDiff_qMax = %d; \\n\", nCumulDiff_qMax); \n";
- print tempMacro " fprintf(f, \"const int nCumulMixHar_pMax = %d; \\n\", nCumulMixHar_pMax); \n";
- print tempMacro " fprintf(f, \"const int nCumulMixHar_qMax = %d; \\n\", nCumulMixHar_qMax); \n";
- print tempMacro " fprintf(f, \"const double r0 = %f; \\n\", r0); \n";
- print tempMacro " fprintf(f, \"const int m_M = %d; \\n\", m_M); \n";
- print tempMacro " fprintf(f, \"const int isPidFlow = %d; \\n\", isPidFlow); \n";
- print tempMacro " fprintf(f, \"const double r0Mix = %f; \\n\", r0Mix); \n";
- print tempMacro " fprintf(f, \"const double profScale = %f; \\n\", profScale); \n";
- print tempMacro " fprintf(f, \"const int isNewMethod = %f; \\n\", 1); \n";
- print tempMacro " fclose(f); \n";
- print tempMacro " } \n";
- close tempMacro;
- # do not move around the two lines below.
- my $writeHeaderMacroName = $tempMacroName;
- my $tempMacroName="calculateCumulant"; # do not change this name
- if (-e "$pwd/myWriteCalcCumuHeaderFile.log"){
- print `rm $pwd/myWriteCalcCumuHeaderFile.log \n`;
- }
- $dummy = $flowCents[0];
- `time root4star -b -q '$writeHeaderMacroName.C("$pwd/$combinedDir/$dummy/$stdHistName", "$tempMacroName.h")' > myWriteCalcCumuHeaderFile.log`;
- foreach $eachCent(@flowCents) {
- print "calculating flow result from cumulants for $cent \n";
- print "$pwd/$combinedDir/$eachCent/$stdHistName \n";
- if (-e "$pwd/$combinedDir/$eachCent/myCalcCumulantStd$cent.log"){
- print `rm $pwd/$combinedDir/$eachCent/myCalcCumulantStd$cent.log \n`;
- }
- `time root4star -b -q '$tempMacroName.C("$pwd/$combinedDir/$eachCent/$stdHistName")' > $pwd/$combinedDir/$eachCent/myCalcCumulantStd$cent.log`;
- #if (-e "$pwd/$combinedDir/$eachCent/myCalcCumulantCumul$cent.log"){
- #print `rm $pwd/$combinedDir/$eachCent/myCalcCumulantCumul$cent.log \n`;
- #}
- # `time root4star -b -q '$tempMacroName.C("$pwd/$combinedDir/$eachCent/$stdHistFile/$cumulHistName")' > $pwd/$combinedDir/$eachCent/myCalcCumulantCumul$cent.log`;
- }
-
- exit;
|