#include "AliMuonQAMergeSubmitter.h"
#include "AliMuonAccEffSubmitter.h"
#include "AliAnalysisTriggerScalers.h"
#include "AliLog.h"
#include "TSystem.h"
#include "Riostream.h"
#include "TGrid.h"
#include "TGridResult.h"
namespace {
const Int_t kFinal(999);
}
ClassImp(AliMuonQAMergeSubmitter)
AliMuonQAMergeSubmitter::AliMuonQAMergeSubmitter(const char* period, const char* pass) :
AliMuonGridSubmitter(AliMuonGridSubmitter::kQAMerge),
fPeriod(period),
fPass(pass),
fWhatToMerge("Merged.QA.Data.root"),
fSplitMaxInputFileNumber(50)
{
if (!fPeriod.BeginsWith("LHC"))
{
AliError("Period not starting with LHC !");
}
AddToTemplateFileList("QAMerge.C");
AddToTemplateFileList("QAMerge.sh");
AddToTemplateFileList("validation.sh");
AddToTemplateFileList(MergeJDLName(kFALSE).Data());
AddToTemplateFileList(MergeJDLName(kTRUE).Data());
SetVar("VAR_MERGED_OUTPUT_NAME",Form("%s",fWhatToMerge.Data()));
ShouldOverwriteFiles(kTRUE);
TString speriod(period);
Int_t year = 2000 + TString(speriod(3,3)).Atoi();
SetMapKeyValue("DataDirFormat",Form("/alice/data/%d/%s/%%09d/ESDs/%s",year,period,pass));
}
AliMuonQAMergeSubmitter::~AliMuonQAMergeSubmitter()
{
}
Bool_t AliMuonQAMergeSubmitter::Generate(const char* jdlname) const
{
AliDebug(1,"");
std::ostream* os = CreateJDLFile(jdlname);
if (!os)
{
return kFALSE;
}
Bool_t final = TString(jdlname).Contains("final",TString::kIgnoreCase);
(*os) << "# Generated merging jdl (production mode)" << std::endl
<< "# $1 = run number" << std::endl
<< "# $2 = merging stage" << std::endl
<< "# Stage_<n>.xml made via: find <OutputDir> *Stage<n-1>/*" << fWhatToMerge.Data() << std::endl;
OutputToJDL(*os,"Packages",
GetMapValue("AliRoot").Data(),
GetMapValue("Geant3").Data(),
GetMapValue("Root").Data(),
GetMapValue("API").Data());
OutputToJDL(*os,"Executable","QAMerge.sh");
OutputToJDL(*os,"Price","1");
if ( final )
{
OutputToJDL(*os,"Jobtag","comment: AliMuonQAMergeSubmitter final merging RUN $1");
}
else
{
OutputToJDL(*os,"Jobtag","comment: AliMuonQAMergeSubmitter merging RUN $1 stage $2");
}
OutputToJDL(*os,"Workdirectorysize","5000MB");
OutputToJDL(*os,"Validationcommand",Form("%s/validation.sh",RemoteDir().Data()));
OutputToJDL(*os,"TTL","14400");
OutputToJDL(*os,"OutputArchive",
"log_archive.zip:stderr,stdout@disk=1",
Form("root_archive.zip:%s@disk=3",fWhatToMerge.Data())
);
if ( !final )
{
OutputToJDL(*os,"Arguments","wn.xml");
OutputToJDL(*os,"InputFile",Form("LF:%s/QAMerge.C",RemoteDir().Data()));
OutputToJDL(*os,"OutputDir",Form("%s/$1/Stage_$2/#alien_counter_03i#",RemoteDir().Data()));
OutputToJDL(*os,"Split","se");
OutputToJDL(*os,"InputDataCollection",Form("LF:%s/$1/Stage_$2.xml,nodownload",RemoteDir().Data()));
OutputToJDL(*os,"SplitMaxInputFileNumber",Form("%d",GetSplitMaxInputFileNumber()));
OutputToJDL(*os,"InputDataListFormat","xml-single");
OutputToJDL(*os,"InputDataList","wn.xml");
}
else
{
OutputToJDL(*os,"InputFile",Form("LF:%s/QAMerge.C",RemoteDir().Data()),
Form("LF:%s/$1/Stage_$2.xml",RemoteDir().Data()));
OutputToJDL(*os,"Arguments","Stage_$2.xml $1");
OutputToJDL(*os,"OutputDir",Form("%s/$1",RemoteDir().Data()));
}
return kTRUE;
}
UInt_t AliMuonQAMergeSubmitter::MakeXMLCollectionForRun(Int_t runNumber, Int_t stage)
{
if ( stage < 0 )
{
AliError(Form("Stage (%d) should be >=0",stage));
return 0;
}
TString filename;
TString sourcedir;
if ( stage > 1 )
{
filename.Form("%s/%d/Stage_%d.xml",LocalDir().Data(),runNumber,stage);
sourcedir.Form("%s/%d/Stage_%d",RemoteDir().Data(),runNumber,stage-1);
}
else if ( stage == 1 )
{
sourcedir = GetMapValue("DataDirFormat");
if ( sourcedir.Length() == 0 )
{
AliError("Cannot make collections from an empty data dir !");
return 0;
}
filename.Form("%s/%d/Stage_%d.xml",LocalDir().Data(),runNumber,stage);
}
else
{
AliError("oups");
return 0;
}
UInt_t count(0);
TGridResult* res = gGrid->Query(Form(sourcedir.Data(),runNumber),fWhatToMerge.Data());
Int_t nFiles = res->GetEntries();
if (!nFiles)
{
AliError(Form("Got no file for run %d",runNumber));
return 0;
}
gSystem->mkdir(Form("%s/",gSystem->DirName(filename.Data())),kTRUE);
AliDebug(1,Form("Creating %s",filename.Data()));
std::ofstream out(filename.Data());
out << Form("<?xml version=\"1.0\"?>\n<alien>\n <collection name=\"%d-stage-%d\">",runNumber,stage) << std::endl;
Long64_t size(0);
const Double_t byte2GB(1024*1024*1024);
for (Int_t i = 0; i < nFiles; ++i)
{
++count;
size += TString(res->GetKey(i,"size")).Atoll();
out << Form(" <event name=\"%d\">",count) << std::endl;
out << Form(" <file name=\"%s\" aclId=\"%s\" broken=\"%s\" ctime=\"%s\" "
"dir=\"%s\" entryId=\"%s\" expiretime=\"%s\" gowner=\"%s\" "
"guid=\"%s\" guidtime=\"%s\" lfn=\"%s\" md5=\"%s\" owner=\"%s\" "
" perm=\"%s\" replicated=\"%s\" size=\"%s\" turl=\"%s\" type=\"%s\" />",
gSystem->BaseName(res->GetKey(i,"lfn")),
res->GetKey(i,"aclId"),
res->GetKey(i,"broken"),
res->GetKey(i,"ctime"),
res->GetKey(i,"dir"),
res->GetKey(i,"entryId"),
res->GetKey(i,"expiretime"),
res->GetKey(i,"gowner"),
res->GetKey(i,"guid"),
res->GetKey(i,"guidtime"),
res->GetKey(i,"lfn"),
res->GetKey(i,"md5"),
res->GetKey(i,"owner"),
res->GetKey(i,"perm"),
res->GetKey(i,"replicated"),
res->GetKey(i,"size"),
res->GetKey(i,"turl"),
res->GetKey(i,"type")) << std::endl;
out << " </event>" << std::endl;
}
TString summary(Form("numberoffiles=\"%d\" size=\"%7.2f GB\" ",count,size/byte2GB));
out << Form(" <summary %s />",summary.Data()) << std::endl;
out << " </collection>" << std::endl;
out << "</alien>" << std::endl;
out.close();
delete res;
Bool_t ok = CopyFile(filename.Data());
if (!ok) return 0;
return count;
}
void AliMuonQAMergeSubmitter::Print(Option_t*) const
{
std::cout << "SplitMaxInputFileNumber : " << GetSplitMaxInputFileNumber() << std::endl;
AliMuonGridSubmitter::Print();
}
Bool_t AliMuonQAMergeSubmitter::Run(const char* mode)
{
if (!IsValid()) return kFALSE;
TString smode(mode);
smode.ToUpper();
if ( smode == "FULL")
{
return ( Run("LOCAL") && Run("UPLOAD") && Run("SUBMIT") );
}
if ( smode == "LOCAL")
{
return CopyTemplateFilesToLocal();
}
if ( smode == "UPLOAD" )
{
return CopyLocalFilesToRemote();
}
if ( smode == "TEST" )
{
Bool_t ok = Run("LOCAL") && Run("UPLOAD");
if ( ok )
{
ok = (Submit(kTRUE)>0);
}
return ok;
}
if ( smode == "SUBMIT" )
{
return (Submit(kFALSE)>0);
}
return kFALSE;
}
Bool_t AliMuonQAMergeSubmitter::SetRemoteDir(const char* dir)
{
if ( AliMuonGridSubmitter::SetRemoteDir(dir) )
{
Validate();
return kTRUE;
}
else
{
Invalidate();
return kFALSE;
}
}
void AliMuonQAMergeSubmitter::ShowStage(Int_t runNumber)
{
Int_t stage(0);
if ( RemoteFileExists(Form("%s/%d/%s",RemoteDir().Data(),runNumber,fWhatToMerge.Data())) )
{
stage = kFinal;
}
else
{
stage = GetLastStage(Form("%s/%d",RemoteDir().Data(),runNumber));
}
std::cout << "RUN " << runNumber << " ";
if ( stage == kFinal )
{
std::cout << "FINAL";
}
else
{
std::cout << "Stage " << stage;
}
std::cout << std::endl;
}
void AliMuonQAMergeSubmitter::ShowStages()
{
TGridResult* r = gGrid->Ls(RemoteDir());
Int_t i(0);
std::map<int,std::vector<int> > stages;
while ( r->GetFileName(i) )
{
TString s(r->GetFileName(i));
if (s.IsDec())
{
Int_t runNumber = s.Atoi();
Int_t stage(0);
if ( RemoteFileExists(Form("%s/%d/%s",RemoteDir().Data(),runNumber,fWhatToMerge.Data())) )
{
stage = kFinal;
}
else
{
stage = GetLastStage(Form("%s/%d",RemoteDir().Data(),runNumber));
}
stages[stage].push_back(runNumber);
}
++i;
}
delete r;
std::map<int,std::vector<int> >::const_iterator it;
for ( it = stages.begin(); it != stages.end(); ++it )
{
const std::vector<int>& runs = it->second;
Int_t stage = it->first;
if ( stage == kFinal )
{
std::cout << "FINAL";
}
else
{
std::cout << "Stage " << stage;
}
std::cout << std::endl;
for ( std::vector<int>::size_type irun = 0; irun < runs.size(); ++irun )
{
std::cout << runs[irun] << " ";
}
std::cout << std::endl;
}
}
Bool_t AliMuonQAMergeSubmitter::Submit(Int_t runNumber, Bool_t dryRun)
{
TString runDir = GetRemoteDir(Form("%s/%d", RemoteDir().Data(), runNumber),kTRUE);
if (RemoteFileExists(Form("%s/%s", runDir.Data(),fWhatToMerge.Data())))
{
AliWarning(" ! final merging already done");
return kTRUE;
}
Int_t lastStage = GetLastStage(runDir.Data());
AliDebug(1,Form("lastStage=%d",lastStage));
++lastStage;
UInt_t n = MakeXMLCollectionForRun(runNumber,lastStage);
Bool_t final = ( n < GetSplitMaxInputFileNumber() );
TString query;
TString jdl(MergeJDLName(final));
gGrid->Cd(RemoteDir().Data());
query.Form("submit %s %d %d", jdl.Data(), runNumber, lastStage);
AliInfo(Form("query=%s",query.Data()));
if (dryRun)
{
return kTRUE;
}
Bool_t done = kFALSE;
TGridResult *res = gGrid->Command(query);
if (res)
{
TString cjobId1 = res->GetKey(0,"jobId");
if (!cjobId1.IsDec())
{
AliError(" FAILED");
gGrid->Stdout();
gGrid->Stderr();
}
else
{
AliInfo(Form(" DONE\n --> the job Id is: %s \n", cjobId1.Data()));
done = kTRUE;
}
delete res;
}
else
{
AliError(" FAILED");
}
return done;
}
Int_t AliMuonQAMergeSubmitter::Submit(Bool_t dryRun)
{
if (!NofRuns())
{
AliError("No run to work with");
return 0;
}
const std::vector<int>& runs = RunList();
TString failed;
for ( std::vector<int>::size_type i = 0; i < runs.size(); ++i )
{
Int_t run = runs[i];
Bool_t ok = Submit(run,dryRun);
if (!ok)
{
failed += TString::Format("%d",run);
failed += " ";
}
}
if (failed.Length()>0)
{
AliInfo(Form("List of failed runs : %s",failed.Data()));
return 0;
}
return 1;
}
AliMuonQAMergeSubmitter.cxx:1 AliMuonQAMergeSubmitter.cxx:2 AliMuonQAMergeSubmitter.cxx:3 AliMuonQAMergeSubmitter.cxx:4 AliMuonQAMergeSubmitter.cxx:5 AliMuonQAMergeSubmitter.cxx:6 AliMuonQAMergeSubmitter.cxx:7 AliMuonQAMergeSubmitter.cxx:8 AliMuonQAMergeSubmitter.cxx:9 AliMuonQAMergeSubmitter.cxx:10 AliMuonQAMergeSubmitter.cxx:11 AliMuonQAMergeSubmitter.cxx:12 AliMuonQAMergeSubmitter.cxx:13 AliMuonQAMergeSubmitter.cxx:14 AliMuonQAMergeSubmitter.cxx:15 AliMuonQAMergeSubmitter.cxx:16 AliMuonQAMergeSubmitter.cxx:17 AliMuonQAMergeSubmitter.cxx:18 AliMuonQAMergeSubmitter.cxx:19 AliMuonQAMergeSubmitter.cxx:20 AliMuonQAMergeSubmitter.cxx:21 AliMuonQAMergeSubmitter.cxx:22 AliMuonQAMergeSubmitter.cxx:23 AliMuonQAMergeSubmitter.cxx:24 AliMuonQAMergeSubmitter.cxx:25 AliMuonQAMergeSubmitter.cxx:26 AliMuonQAMergeSubmitter.cxx:27 AliMuonQAMergeSubmitter.cxx:28 AliMuonQAMergeSubmitter.cxx:29 AliMuonQAMergeSubmitter.cxx:30 AliMuonQAMergeSubmitter.cxx:31 AliMuonQAMergeSubmitter.cxx:32 AliMuonQAMergeSubmitter.cxx:33 AliMuonQAMergeSubmitter.cxx:34 AliMuonQAMergeSubmitter.cxx:35 AliMuonQAMergeSubmitter.cxx:36 AliMuonQAMergeSubmitter.cxx:37 AliMuonQAMergeSubmitter.cxx:38 AliMuonQAMergeSubmitter.cxx:39 AliMuonQAMergeSubmitter.cxx:40 AliMuonQAMergeSubmitter.cxx:41 AliMuonQAMergeSubmitter.cxx:42 AliMuonQAMergeSubmitter.cxx:43 AliMuonQAMergeSubmitter.cxx:44 AliMuonQAMergeSubmitter.cxx:45 AliMuonQAMergeSubmitter.cxx:46 AliMuonQAMergeSubmitter.cxx:47 AliMuonQAMergeSubmitter.cxx:48 AliMuonQAMergeSubmitter.cxx:49 AliMuonQAMergeSubmitter.cxx:50 AliMuonQAMergeSubmitter.cxx:51 AliMuonQAMergeSubmitter.cxx:52 AliMuonQAMergeSubmitter.cxx:53 AliMuonQAMergeSubmitter.cxx:54 AliMuonQAMergeSubmitter.cxx:55 AliMuonQAMergeSubmitter.cxx:56 AliMuonQAMergeSubmitter.cxx:57 AliMuonQAMergeSubmitter.cxx:58 AliMuonQAMergeSubmitter.cxx:59 AliMuonQAMergeSubmitter.cxx:60 AliMuonQAMergeSubmitter.cxx:61 AliMuonQAMergeSubmitter.cxx:62 AliMuonQAMergeSubmitter.cxx:63 AliMuonQAMergeSubmitter.cxx:64 AliMuonQAMergeSubmitter.cxx:65 AliMuonQAMergeSubmitter.cxx:66 AliMuonQAMergeSubmitter.cxx:67 AliMuonQAMergeSubmitter.cxx:68 AliMuonQAMergeSubmitter.cxx:69 AliMuonQAMergeSubmitter.cxx:70 AliMuonQAMergeSubmitter.cxx:71 AliMuonQAMergeSubmitter.cxx:72 AliMuonQAMergeSubmitter.cxx:73 AliMuonQAMergeSubmitter.cxx:74 AliMuonQAMergeSubmitter.cxx:75 AliMuonQAMergeSubmitter.cxx:76 AliMuonQAMergeSubmitter.cxx:77 AliMuonQAMergeSubmitter.cxx:78 AliMuonQAMergeSubmitter.cxx:79 AliMuonQAMergeSubmitter.cxx:80 AliMuonQAMergeSubmitter.cxx:81 AliMuonQAMergeSubmitter.cxx:82 AliMuonQAMergeSubmitter.cxx:83 AliMuonQAMergeSubmitter.cxx:84 AliMuonQAMergeSubmitter.cxx:85 AliMuonQAMergeSubmitter.cxx:86 AliMuonQAMergeSubmitter.cxx:87 AliMuonQAMergeSubmitter.cxx:88 AliMuonQAMergeSubmitter.cxx:89 AliMuonQAMergeSubmitter.cxx:90 AliMuonQAMergeSubmitter.cxx:91 AliMuonQAMergeSubmitter.cxx:92 AliMuonQAMergeSubmitter.cxx:93 AliMuonQAMergeSubmitter.cxx:94 AliMuonQAMergeSubmitter.cxx:95 AliMuonQAMergeSubmitter.cxx:96 AliMuonQAMergeSubmitter.cxx:97 AliMuonQAMergeSubmitter.cxx:98 AliMuonQAMergeSubmitter.cxx:99 AliMuonQAMergeSubmitter.cxx:100 AliMuonQAMergeSubmitter.cxx:101 AliMuonQAMergeSubmitter.cxx:102 AliMuonQAMergeSubmitter.cxx:103 AliMuonQAMergeSubmitter.cxx:104 AliMuonQAMergeSubmitter.cxx:105 AliMuonQAMergeSubmitter.cxx:106 AliMuonQAMergeSubmitter.cxx:107 AliMuonQAMergeSubmitter.cxx:108 AliMuonQAMergeSubmitter.cxx:109 AliMuonQAMergeSubmitter.cxx:110 AliMuonQAMergeSubmitter.cxx:111 AliMuonQAMergeSubmitter.cxx:112 AliMuonQAMergeSubmitter.cxx:113 AliMuonQAMergeSubmitter.cxx:114 AliMuonQAMergeSubmitter.cxx:115 AliMuonQAMergeSubmitter.cxx:116 AliMuonQAMergeSubmitter.cxx:117 AliMuonQAMergeSubmitter.cxx:118 AliMuonQAMergeSubmitter.cxx:119 AliMuonQAMergeSubmitter.cxx:120 AliMuonQAMergeSubmitter.cxx:121 AliMuonQAMergeSubmitter.cxx:122 AliMuonQAMergeSubmitter.cxx:123 AliMuonQAMergeSubmitter.cxx:124 AliMuonQAMergeSubmitter.cxx:125 AliMuonQAMergeSubmitter.cxx:126 AliMuonQAMergeSubmitter.cxx:127 AliMuonQAMergeSubmitter.cxx:128 AliMuonQAMergeSubmitter.cxx:129 AliMuonQAMergeSubmitter.cxx:130 AliMuonQAMergeSubmitter.cxx:131 AliMuonQAMergeSubmitter.cxx:132 AliMuonQAMergeSubmitter.cxx:133 AliMuonQAMergeSubmitter.cxx:134 AliMuonQAMergeSubmitter.cxx:135 AliMuonQAMergeSubmitter.cxx:136 AliMuonQAMergeSubmitter.cxx:137 AliMuonQAMergeSubmitter.cxx:138 AliMuonQAMergeSubmitter.cxx:139 AliMuonQAMergeSubmitter.cxx:140 AliMuonQAMergeSubmitter.cxx:141 AliMuonQAMergeSubmitter.cxx:142 AliMuonQAMergeSubmitter.cxx:143 AliMuonQAMergeSubmitter.cxx:144 AliMuonQAMergeSubmitter.cxx:145 AliMuonQAMergeSubmitter.cxx:146 AliMuonQAMergeSubmitter.cxx:147 AliMuonQAMergeSubmitter.cxx:148 AliMuonQAMergeSubmitter.cxx:149 AliMuonQAMergeSubmitter.cxx:150 AliMuonQAMergeSubmitter.cxx:151 AliMuonQAMergeSubmitter.cxx:152 AliMuonQAMergeSubmitter.cxx:153 AliMuonQAMergeSubmitter.cxx:154 AliMuonQAMergeSubmitter.cxx:155 AliMuonQAMergeSubmitter.cxx:156 AliMuonQAMergeSubmitter.cxx:157 AliMuonQAMergeSubmitter.cxx:158 AliMuonQAMergeSubmitter.cxx:159 AliMuonQAMergeSubmitter.cxx:160 AliMuonQAMergeSubmitter.cxx:161 AliMuonQAMergeSubmitter.cxx:162 AliMuonQAMergeSubmitter.cxx:163 AliMuonQAMergeSubmitter.cxx:164 AliMuonQAMergeSubmitter.cxx:165 AliMuonQAMergeSubmitter.cxx:166 AliMuonQAMergeSubmitter.cxx:167 AliMuonQAMergeSubmitter.cxx:168 AliMuonQAMergeSubmitter.cxx:169 AliMuonQAMergeSubmitter.cxx:170 AliMuonQAMergeSubmitter.cxx:171 AliMuonQAMergeSubmitter.cxx:172 AliMuonQAMergeSubmitter.cxx:173 AliMuonQAMergeSubmitter.cxx:174 AliMuonQAMergeSubmitter.cxx:175 AliMuonQAMergeSubmitter.cxx:176 AliMuonQAMergeSubmitter.cxx:177 AliMuonQAMergeSubmitter.cxx:178 AliMuonQAMergeSubmitter.cxx:179 AliMuonQAMergeSubmitter.cxx:180 AliMuonQAMergeSubmitter.cxx:181 AliMuonQAMergeSubmitter.cxx:182 AliMuonQAMergeSubmitter.cxx:183 AliMuonQAMergeSubmitter.cxx:184 AliMuonQAMergeSubmitter.cxx:185 AliMuonQAMergeSubmitter.cxx:186 AliMuonQAMergeSubmitter.cxx:187 AliMuonQAMergeSubmitter.cxx:188 AliMuonQAMergeSubmitter.cxx:189 AliMuonQAMergeSubmitter.cxx:190 AliMuonQAMergeSubmitter.cxx:191 AliMuonQAMergeSubmitter.cxx:192 AliMuonQAMergeSubmitter.cxx:193 AliMuonQAMergeSubmitter.cxx:194 AliMuonQAMergeSubmitter.cxx:195 AliMuonQAMergeSubmitter.cxx:196 AliMuonQAMergeSubmitter.cxx:197 AliMuonQAMergeSubmitter.cxx:198 AliMuonQAMergeSubmitter.cxx:199 AliMuonQAMergeSubmitter.cxx:200 AliMuonQAMergeSubmitter.cxx:201 AliMuonQAMergeSubmitter.cxx:202 AliMuonQAMergeSubmitter.cxx:203 AliMuonQAMergeSubmitter.cxx:204 AliMuonQAMergeSubmitter.cxx:205 AliMuonQAMergeSubmitter.cxx:206 AliMuonQAMergeSubmitter.cxx:207 AliMuonQAMergeSubmitter.cxx:208 AliMuonQAMergeSubmitter.cxx:209 AliMuonQAMergeSubmitter.cxx:210 AliMuonQAMergeSubmitter.cxx:211 AliMuonQAMergeSubmitter.cxx:212 AliMuonQAMergeSubmitter.cxx:213 AliMuonQAMergeSubmitter.cxx:214 AliMuonQAMergeSubmitter.cxx:215 AliMuonQAMergeSubmitter.cxx:216 AliMuonQAMergeSubmitter.cxx:217 AliMuonQAMergeSubmitter.cxx:218 AliMuonQAMergeSubmitter.cxx:219 AliMuonQAMergeSubmitter.cxx:220 AliMuonQAMergeSubmitter.cxx:221 AliMuonQAMergeSubmitter.cxx:222 AliMuonQAMergeSubmitter.cxx:223 AliMuonQAMergeSubmitter.cxx:224 AliMuonQAMergeSubmitter.cxx:225 AliMuonQAMergeSubmitter.cxx:226 AliMuonQAMergeSubmitter.cxx:227 AliMuonQAMergeSubmitter.cxx:228 AliMuonQAMergeSubmitter.cxx:229 AliMuonQAMergeSubmitter.cxx:230 AliMuonQAMergeSubmitter.cxx:231 AliMuonQAMergeSubmitter.cxx:232 AliMuonQAMergeSubmitter.cxx:233 AliMuonQAMergeSubmitter.cxx:234 AliMuonQAMergeSubmitter.cxx:235 AliMuonQAMergeSubmitter.cxx:236 AliMuonQAMergeSubmitter.cxx:237 AliMuonQAMergeSubmitter.cxx:238 AliMuonQAMergeSubmitter.cxx:239 AliMuonQAMergeSubmitter.cxx:240 AliMuonQAMergeSubmitter.cxx:241 AliMuonQAMergeSubmitter.cxx:242 AliMuonQAMergeSubmitter.cxx:243 AliMuonQAMergeSubmitter.cxx:244 AliMuonQAMergeSubmitter.cxx:245 AliMuonQAMergeSubmitter.cxx:246 AliMuonQAMergeSubmitter.cxx:247 AliMuonQAMergeSubmitter.cxx:248 AliMuonQAMergeSubmitter.cxx:249 AliMuonQAMergeSubmitter.cxx:250 AliMuonQAMergeSubmitter.cxx:251 AliMuonQAMergeSubmitter.cxx:252 AliMuonQAMergeSubmitter.cxx:253 AliMuonQAMergeSubmitter.cxx:254 AliMuonQAMergeSubmitter.cxx:255 AliMuonQAMergeSubmitter.cxx:256 AliMuonQAMergeSubmitter.cxx:257 AliMuonQAMergeSubmitter.cxx:258 AliMuonQAMergeSubmitter.cxx:259 AliMuonQAMergeSubmitter.cxx:260 AliMuonQAMergeSubmitter.cxx:261 AliMuonQAMergeSubmitter.cxx:262 AliMuonQAMergeSubmitter.cxx:263 AliMuonQAMergeSubmitter.cxx:264 AliMuonQAMergeSubmitter.cxx:265 AliMuonQAMergeSubmitter.cxx:266 AliMuonQAMergeSubmitter.cxx:267 AliMuonQAMergeSubmitter.cxx:268 AliMuonQAMergeSubmitter.cxx:269 AliMuonQAMergeSubmitter.cxx:270 AliMuonQAMergeSubmitter.cxx:271 AliMuonQAMergeSubmitter.cxx:272 AliMuonQAMergeSubmitter.cxx:273 AliMuonQAMergeSubmitter.cxx:274 AliMuonQAMergeSubmitter.cxx:275 AliMuonQAMergeSubmitter.cxx:276 AliMuonQAMergeSubmitter.cxx:277 AliMuonQAMergeSubmitter.cxx:278 AliMuonQAMergeSubmitter.cxx:279 AliMuonQAMergeSubmitter.cxx:280 AliMuonQAMergeSubmitter.cxx:281 AliMuonQAMergeSubmitter.cxx:282 AliMuonQAMergeSubmitter.cxx:283 AliMuonQAMergeSubmitter.cxx:284 AliMuonQAMergeSubmitter.cxx:285 AliMuonQAMergeSubmitter.cxx:286 AliMuonQAMergeSubmitter.cxx:287 AliMuonQAMergeSubmitter.cxx:288 AliMuonQAMergeSubmitter.cxx:289 AliMuonQAMergeSubmitter.cxx:290 AliMuonQAMergeSubmitter.cxx:291 AliMuonQAMergeSubmitter.cxx:292 AliMuonQAMergeSubmitter.cxx:293 AliMuonQAMergeSubmitter.cxx:294 AliMuonQAMergeSubmitter.cxx:295 AliMuonQAMergeSubmitter.cxx:296 AliMuonQAMergeSubmitter.cxx:297 AliMuonQAMergeSubmitter.cxx:298 AliMuonQAMergeSubmitter.cxx:299 AliMuonQAMergeSubmitter.cxx:300 AliMuonQAMergeSubmitter.cxx:301 AliMuonQAMergeSubmitter.cxx:302 AliMuonQAMergeSubmitter.cxx:303 AliMuonQAMergeSubmitter.cxx:304 AliMuonQAMergeSubmitter.cxx:305 AliMuonQAMergeSubmitter.cxx:306 AliMuonQAMergeSubmitter.cxx:307 AliMuonQAMergeSubmitter.cxx:308 AliMuonQAMergeSubmitter.cxx:309 AliMuonQAMergeSubmitter.cxx:310 AliMuonQAMergeSubmitter.cxx:311 AliMuonQAMergeSubmitter.cxx:312 AliMuonQAMergeSubmitter.cxx:313 AliMuonQAMergeSubmitter.cxx:314 AliMuonQAMergeSubmitter.cxx:315 AliMuonQAMergeSubmitter.cxx:316 AliMuonQAMergeSubmitter.cxx:317 AliMuonQAMergeSubmitter.cxx:318 AliMuonQAMergeSubmitter.cxx:319 AliMuonQAMergeSubmitter.cxx:320 AliMuonQAMergeSubmitter.cxx:321 AliMuonQAMergeSubmitter.cxx:322 AliMuonQAMergeSubmitter.cxx:323 AliMuonQAMergeSubmitter.cxx:324 AliMuonQAMergeSubmitter.cxx:325 AliMuonQAMergeSubmitter.cxx:326 AliMuonQAMergeSubmitter.cxx:327 AliMuonQAMergeSubmitter.cxx:328 AliMuonQAMergeSubmitter.cxx:329 AliMuonQAMergeSubmitter.cxx:330 AliMuonQAMergeSubmitter.cxx:331 AliMuonQAMergeSubmitter.cxx:332 AliMuonQAMergeSubmitter.cxx:333 AliMuonQAMergeSubmitter.cxx:334 AliMuonQAMergeSubmitter.cxx:335 AliMuonQAMergeSubmitter.cxx:336 AliMuonQAMergeSubmitter.cxx:337 AliMuonQAMergeSubmitter.cxx:338 AliMuonQAMergeSubmitter.cxx:339 AliMuonQAMergeSubmitter.cxx:340 AliMuonQAMergeSubmitter.cxx:341 AliMuonQAMergeSubmitter.cxx:342 AliMuonQAMergeSubmitter.cxx:343 AliMuonQAMergeSubmitter.cxx:344 AliMuonQAMergeSubmitter.cxx:345 AliMuonQAMergeSubmitter.cxx:346 AliMuonQAMergeSubmitter.cxx:347 AliMuonQAMergeSubmitter.cxx:348 AliMuonQAMergeSubmitter.cxx:349 AliMuonQAMergeSubmitter.cxx:350 AliMuonQAMergeSubmitter.cxx:351 AliMuonQAMergeSubmitter.cxx:352 AliMuonQAMergeSubmitter.cxx:353 AliMuonQAMergeSubmitter.cxx:354 AliMuonQAMergeSubmitter.cxx:355 AliMuonQAMergeSubmitter.cxx:356 AliMuonQAMergeSubmitter.cxx:357 AliMuonQAMergeSubmitter.cxx:358 AliMuonQAMergeSubmitter.cxx:359 AliMuonQAMergeSubmitter.cxx:360 AliMuonQAMergeSubmitter.cxx:361 AliMuonQAMergeSubmitter.cxx:362 AliMuonQAMergeSubmitter.cxx:363 AliMuonQAMergeSubmitter.cxx:364 AliMuonQAMergeSubmitter.cxx:365 AliMuonQAMergeSubmitter.cxx:366 AliMuonQAMergeSubmitter.cxx:367 AliMuonQAMergeSubmitter.cxx:368 AliMuonQAMergeSubmitter.cxx:369 AliMuonQAMergeSubmitter.cxx:370 AliMuonQAMergeSubmitter.cxx:371 AliMuonQAMergeSubmitter.cxx:372 AliMuonQAMergeSubmitter.cxx:373 AliMuonQAMergeSubmitter.cxx:374 AliMuonQAMergeSubmitter.cxx:375 AliMuonQAMergeSubmitter.cxx:376 AliMuonQAMergeSubmitter.cxx:377 AliMuonQAMergeSubmitter.cxx:378 AliMuonQAMergeSubmitter.cxx:379 AliMuonQAMergeSubmitter.cxx:380 AliMuonQAMergeSubmitter.cxx:381 AliMuonQAMergeSubmitter.cxx:382 AliMuonQAMergeSubmitter.cxx:383 AliMuonQAMergeSubmitter.cxx:384 AliMuonQAMergeSubmitter.cxx:385 AliMuonQAMergeSubmitter.cxx:386 AliMuonQAMergeSubmitter.cxx:387 AliMuonQAMergeSubmitter.cxx:388 AliMuonQAMergeSubmitter.cxx:389 AliMuonQAMergeSubmitter.cxx:390 AliMuonQAMergeSubmitter.cxx:391 AliMuonQAMergeSubmitter.cxx:392 AliMuonQAMergeSubmitter.cxx:393 AliMuonQAMergeSubmitter.cxx:394 AliMuonQAMergeSubmitter.cxx:395 AliMuonQAMergeSubmitter.cxx:396 AliMuonQAMergeSubmitter.cxx:397 AliMuonQAMergeSubmitter.cxx:398 AliMuonQAMergeSubmitter.cxx:399 AliMuonQAMergeSubmitter.cxx:400 AliMuonQAMergeSubmitter.cxx:401 AliMuonQAMergeSubmitter.cxx:402 AliMuonQAMergeSubmitter.cxx:403 AliMuonQAMergeSubmitter.cxx:404 AliMuonQAMergeSubmitter.cxx:405 AliMuonQAMergeSubmitter.cxx:406 AliMuonQAMergeSubmitter.cxx:407 AliMuonQAMergeSubmitter.cxx:408 AliMuonQAMergeSubmitter.cxx:409 AliMuonQAMergeSubmitter.cxx:410 AliMuonQAMergeSubmitter.cxx:411 AliMuonQAMergeSubmitter.cxx:412 AliMuonQAMergeSubmitter.cxx:413 AliMuonQAMergeSubmitter.cxx:414 AliMuonQAMergeSubmitter.cxx:415 AliMuonQAMergeSubmitter.cxx:416 AliMuonQAMergeSubmitter.cxx:417 AliMuonQAMergeSubmitter.cxx:418 AliMuonQAMergeSubmitter.cxx:419 AliMuonQAMergeSubmitter.cxx:420 AliMuonQAMergeSubmitter.cxx:421 AliMuonQAMergeSubmitter.cxx:422 AliMuonQAMergeSubmitter.cxx:423 AliMuonQAMergeSubmitter.cxx:424 AliMuonQAMergeSubmitter.cxx:425 AliMuonQAMergeSubmitter.cxx:426 AliMuonQAMergeSubmitter.cxx:427 AliMuonQAMergeSubmitter.cxx:428 AliMuonQAMergeSubmitter.cxx:429 AliMuonQAMergeSubmitter.cxx:430 AliMuonQAMergeSubmitter.cxx:431 AliMuonQAMergeSubmitter.cxx:432 AliMuonQAMergeSubmitter.cxx:433 AliMuonQAMergeSubmitter.cxx:434 AliMuonQAMergeSubmitter.cxx:435 AliMuonQAMergeSubmitter.cxx:436 AliMuonQAMergeSubmitter.cxx:437 AliMuonQAMergeSubmitter.cxx:438 AliMuonQAMergeSubmitter.cxx:439 AliMuonQAMergeSubmitter.cxx:440 AliMuonQAMergeSubmitter.cxx:441 AliMuonQAMergeSubmitter.cxx:442 AliMuonQAMergeSubmitter.cxx:443 AliMuonQAMergeSubmitter.cxx:444 AliMuonQAMergeSubmitter.cxx:445 AliMuonQAMergeSubmitter.cxx:446 AliMuonQAMergeSubmitter.cxx:447 AliMuonQAMergeSubmitter.cxx:448 AliMuonQAMergeSubmitter.cxx:449 AliMuonQAMergeSubmitter.cxx:450 AliMuonQAMergeSubmitter.cxx:451 AliMuonQAMergeSubmitter.cxx:452 AliMuonQAMergeSubmitter.cxx:453 AliMuonQAMergeSubmitter.cxx:454 AliMuonQAMergeSubmitter.cxx:455 AliMuonQAMergeSubmitter.cxx:456 AliMuonQAMergeSubmitter.cxx:457 AliMuonQAMergeSubmitter.cxx:458 AliMuonQAMergeSubmitter.cxx:459 AliMuonQAMergeSubmitter.cxx:460 AliMuonQAMergeSubmitter.cxx:461 AliMuonQAMergeSubmitter.cxx:462 AliMuonQAMergeSubmitter.cxx:463 AliMuonQAMergeSubmitter.cxx:464 AliMuonQAMergeSubmitter.cxx:465 AliMuonQAMergeSubmitter.cxx:466 AliMuonQAMergeSubmitter.cxx:467 AliMuonQAMergeSubmitter.cxx:468 AliMuonQAMergeSubmitter.cxx:469 AliMuonQAMergeSubmitter.cxx:470 AliMuonQAMergeSubmitter.cxx:471 AliMuonQAMergeSubmitter.cxx:472 AliMuonQAMergeSubmitter.cxx:473 AliMuonQAMergeSubmitter.cxx:474 AliMuonQAMergeSubmitter.cxx:475 AliMuonQAMergeSubmitter.cxx:476 AliMuonQAMergeSubmitter.cxx:477 AliMuonQAMergeSubmitter.cxx:478 AliMuonQAMergeSubmitter.cxx:479 AliMuonQAMergeSubmitter.cxx:480 AliMuonQAMergeSubmitter.cxx:481 AliMuonQAMergeSubmitter.cxx:482 AliMuonQAMergeSubmitter.cxx:483 AliMuonQAMergeSubmitter.cxx:484