TString command;
TGridResult *res = 0;
- //cout<<irun<<" "<<run<<endl;
-
if(isAlienFile){
command = Form("find %s/ %s/%s", alienBaseDir.Data(), run.Data(), QAFileName);
res = gGrid->Command(command);
command = Form("find %s/*%s/ -name %s | xargs", alienBaseDir.Data(), run.Data(), QAFileName);
TString foundFiles = gSystem->GetFromPipe(command.Data());
TObjArray* arr = foundFiles.Tokenize(" ");
+
for ( Int_t iarr=0; iarr<arr->GetEntries(); iarr++ ) {
res->Add(new TObjString(arr->At(iarr)->GetName()));
}
// Loop over 'find' results and get next LFN
TIter nextmap(res);
TObjString *objs = 0;
-
TObject* currObj = 0x0;
-
+ Bool_t searchRunNr = kFALSE;
+ if ( !isAlienFile && run.Contains("*") ) searchRunNr = kTRUE;
+
//some checks
- while ( ( currObj=nextmap() ) ){
+ while ( ( currObj = nextmap() ) ){
// get the current file url
if(isAlienFile){
Error("PlotMuonQA","turl/obj not found for the run %s... SKIPPING", run.Data());
continue;
}
-
+
+ if ( searchRunNr ) {
+ TString sobjs = objs->GetString();
+ Int_t index = sobjs.Index("terminateRuns");
+ sobjs.Remove(0,index);
+ sobjs.ReplaceAll("terminateRuns/","");
+ sobjs.ReplaceAll(Form("//%s",QAFileName),"");
+ if ( sobjs.IsDigit() ) run = sobjs;
+ }
+
if ( run.IsDigit() && ! selectRuns.Contains(Form("%i",run.Atoi())) ) continue;
-
+
// open the outfile for this run
TFile *runFile = TFile::Open(objs->GetString());
if (!runFile || ! runFile->IsOpen()) {
Error("PlotMuonQA","failed to open file: %s", objs->GetName());
- continue;//return;
+ continue;
}
runFile->Cd("MUON_QA");
for ( Int_t iTrig = 0; iTrig < triggersInContainer->GetEntriesFast(); iTrig++ ) {
currTrigName = triggersInContainer->At(iTrig)->GetName();
Bool_t keep = kFALSE;
- if ( currTrigName.Contains("-B-") && ( ! ((TString) currTrigName(0)).CompareTo("C") ) && !currTrigName.Contains("WU") && !currTrigName.Contains("UP") && !currTrigName.Contains("SPI") && !currTrigName.Contains("PHI") && !currTrigName.Contains("EMC") && !currTrigName.Contains("ZED") && !currTrigName.Contains("TRUE") && !currTrigName.Contains("SHM") ) keep = kTRUE;//cyn: to be removed once the trigger filtering is carried out in the analysis task
+ if ( ( currTrigName.Contains("-B-") || currTrigName.Contains("-ABCE-") ) && ( ! ((TString) currTrigName(0)).CompareTo("C") ) && !currTrigName.Contains("WU") && !currTrigName.Contains("UP") && !currTrigName.Contains("SPI") && !currTrigName.Contains("PHI") && !currTrigName.Contains("EMC") && !currTrigName.Contains("ZED") && !currTrigName.Contains("TRUE") && !currTrigName.Contains("SHM") && !currTrigName.Contains("TPC") && !currTrigName.Contains("BEAM") && !currTrigName.Contains("1A") && !currTrigName.Contains("1C")) keep = kTRUE;//cyn: to be removed once the trigger filtering is carried out in the analysis task
if (!keep) continue;
for (Int_t ibeam = 0; ibeam < nColumn; ibeam++) {
fullTriggerList[ibeam]->AddLast( new TObjString(currTrigName) );