Bool_t Shuttle(const char* param = "listen", const char* dets=0) {
// WARNING: if ldap is built with ssl support it may cause confilcts with the
// AliEn interface. If this happens, grid storage activation must be done BEFORE
// loading LDAP libraries!!!
gSystem->Load("libRAliEn.so");
gSystem->Load("libRLDAP.so");
gSystem->Load("libMonaLisa");
gSystem->Load("libSHUTTLE");
gSystem->Load("libThread");
// gSystem->Load("$ALICE_ROOT/SHUTTLE/test/libTest.so");
AliLog::SetGlobalDebugLevel(2);
const char* pwd = gSystem->pwd();
if( !gSystem->Getenv("SHUTTLE_DIR"))
{
printf("Setting base SHUTTLE folder to %s\n", pwd);
gSystem->Setenv("SHUTTLE_DIR", pwd);
} else {
printf("Shuttle base folder is %s\n", gSystem->Getenv("SHUTTLE_DIR"));
}
// Setting local CDB and reference storage locations
AliShuttle::SetMainCDB("alien://user=aliprod?folder=testShuttle/OCDB");
AliShuttle::SetMainRefStorage("alien://user=aliprod?folder=testShuttle/Reference");
// AliShuttle::SetMainCDB("local://$SHUTTLE_DIR/LocalShuttleCDB");
// AliShuttle::SetMainRefStorage("local://$SHUTTLE_DIR/LocalShuttleRefStorage");
AliShuttle::SetLocalCDB("local://$SHUTTLE_DIR/LocalShuttleCDB");
AliShuttle::SetLocalRefStorage("local://$SHUTTLE_DIR/LocalShuttleRefStorage");
// Setting Shuttle log and temp folders
AliShuttle::SetShuttleLogDir("$SHUTTLE_DIR/log");
AliShuttle::SetShuttleTempDir("$SHUTTLE_DIR/temp");
AliShuttle::SetProcessDCS(kTRUE);
// AliShuttleConfig config("pcalice290.cern.ch", 389, "o=alice,dc=cern,dc=ch");
AliShuttleConfig config("pcalishuttle01.cern.ch", 389, "", "", "o=alice,dc=cern,dc=ch");
config.SetProcessAll(kTRUE);
config.Print();
AliShuttleTrigger trigger(&config, 100000);
AliShuttle* shuttle = trigger.GetShuttle();
// Add here detectors preprocessor ...
TString detector = dets;
printf ("Processing detectors: %s \n", detector.Data());
if (detector.Contains("SPD"))
new AliITSPreprocessorSPD(shuttle);
if (detector.Contains("SDD"))
new AliITSPreprocessorSDD(shuttle);
if (detector.Contains("SSD"))
new AliITSPreprocessorSSD(shuttle);
if (detector.Contains("TPC"))
new AliTPCPreprocessor(shuttle);
if (detector.Contains("TRD"))
new AliTRDPreprocessor(shuttle);
if (detector.Contains("TOF"))
new AliTOFPreprocessor(shuttle);
if (detector.Contains("PHS"))
{
gSystem->Load("libPHOSshuttle");
new AliPHOSPreprocessor(shuttle);
}
if (detector.Contains("CPV"))
new AliCPVPreprocessor(shuttle);
if (detector.Contains("HMP"))
new AliHMPIDPreprocessor(shuttle);
if (detector.Contains("EMC"))
new AliEMCALPreprocessor(shuttle);
if (detector.Contains("MCH"))
new AliMUONPreprocessor(shuttle);
if (detector.Contains("MTR"))
new AliMTRPreprocessor(shuttle);
if (detector.Contains("FMD"))
new AliFMDPreprocessor(shuttle);
if (detector.Contains("ZDC"))
new AliZDCPreprocessor(shuttle);
if (detector.Contains("PMD"))
new AliPMDPreprocessor("PMD", shuttle);
if (detector.Contains("T00"))
{
gSystem->Load("libT0shuttle");
new AliT0Preprocessor("T00", shuttle);
}
if (detector.Contains("V00"))
new AliVZEROPreprocessor(shuttle);
if (detector.Contains("GRP"))
new AliGRPPreprocessor(shuttle);
// AliTOFPreprocessor *tofPrep = new AliTOFPreprocessor(shuttle);
// AliTRDPreprocessor *trdPrep = new AliTRDPreprocessor(shuttle);
// AliGRPPreprocessor *grpPrep = new AliGRPPreprocessor(shuttle);
TString paramStr(param);
TStopwatch stopwatch;
stopwatch.Start();
if (paramStr.IsDigit() || paramStr == "-1") {
Int_t run = paramStr.Atoi();
trigger.Collect(run);
} else if (paramStr == "new") {
Bool_t result = trigger.Collect();
} else if (paramStr == "listen") {
trigger.Run();
} else {
cout<<"Bad parameter: "< - collect data for the given run"< - the same as 'listen'"<