CONFIG_QUENCHING=""
DC_RUN=""
DC_EVENT=""
+EVENTS_PER_JOB=""
RUNMODE=""
shift
elif [ "$option" = "--sdd" ]; then
RUNMODE="SDD"
+ elif [ "$option" = "--eventsPerJob" ]; then
+ EVENTS_PER_JOB="$1"
+ shift
fi
done
echo "SIMRUN:: Run $DC_RUN Event $DC_EVENT Generator $CONFIG_RUN_TYPE Field $CONFIG_FIELD Energy $CONFIG_ENERGY Physicslist $CONFIG_PHYSICSLIST"
-runcommand "SIMULATION" "sim.C" sim.log 5
+simCommand="sim.C"
+if [ ! -z $EVENTS_PER_JOB ]; then
+ simCommand="sim.C($EVENTS_PER_JOB)"
+fi
+
+runcommand "SIMULATION" "$simCommand" sim.log 5
mv syswatch.log simwatch.log
runcommand "RECONSTRUCTION" "rec.C" rec.log 10
SetVar("VAR_TRIGGER_CONFIGURATION","p-p");
}
+ SetVar("VAR_EVENTS_PER_JOB",Form("%i",fMaxEventsPerChunk));
+
SetGenerator(generator);
if (localOnly)
OutputToJDL(*os,"Jobtag","comment: AliMuonAccEffSubmitter RUN $1");
- OutputToJDL(*os,"split","production:1-$2");
+ OutputToJDL(*os,"split","production:$2-$3");
OutputToJDL(*os,"Price","1");
while ( ( file = static_cast<TObjString*>(next())) )
{
- if ( !file->String().Contains(".jdl",TString::kIgnoreCase) &&
+ if ( !file->String().Contains("jdl",TString::kIgnoreCase) &&
!file->String().Contains("OCDB_") )
{
files.Add(new TObjString(Form("LF:%s/%s",RemoteDir().Data(),file->String().Data())));
return kFALSE;
}
- OutputToJDL(*os,"splitarguments","--run $1 --chunk #alien_counter# --event $3");
+ OutputToJDL(*os,"splitarguments","--run $1 --event #alien_counter# --eventsPerJob $4");
OutputToJDL(*os,"Workdirectorysize","5000MB");
// out.close();
gSystem->Exec("chmod +x simrun.sh");
+ gSystem->Exec("alien_cp alien:///alice/bin/aliroot_new file:");
+ gSystem->Exec("chmod u+x aliroot_new");
std::cout << "Cleaning up left-over files from previous simulation/reconstructions" << std::endl;
-
+
gSystem->Exec("rm -rf TrackRefs.root *.SDigits*.root Kinematics.root *.Hits.root geometry.root gphysi.dat Run*.tag.root HLT*.root *.ps *.Digits.root *.RecPoints.root galice.root *QA*.root Trigger.root *.log AliESD* AliAOD* *.d *.so *.stat");
- TString command = Form("./simrun.sh --run %i --event %i", runs[0], fFixedNofEvents);
+ TString command = Form("./aliroot_new --run %i --event 1 --eventsPerJob %i", runs[0], fFixedNofEvents);
std::cout << "Executing the script : " << command.Data() << std::endl;
// cout << "number of generated events per MB event = " << ratio << endl;
// cout << endl;
- std::cout << "run\tchunks\tevents" << std::endl;
+ std::cout << "run\tfirstChunk\tlastChunk\teventsPerJob" << std::endl;
std::cout << "----------------------" << std::endl;
Int_t nJobs(0);
nEvts += nChunk*nEvtChunk;
- std::cout << runNumber << "\t" << nChunk << "\t" << nEvtChunk << std::endl;
+ std::cout << runNumber << "\t1\t" << nChunk << "\t" << nEvtChunk << std::endl;
- TString query(Form("submit %s %d %d %d", RunJDLName().Data(), runNumber, nChunk, nEvtChunk));
+ TString query(Form("submit %s %d 1 %d %d", RunJDLName().Data(), runNumber, nChunk, nEvtChunk));
std::cout << query.Data() << " ..." << std::flush;
Int_t LocalTest();
- TString RunJDLName() const { return "run.jdl"; }
+ TString RunJDLName() const { return "JDL"; }
TString MergeJDLName(Bool_t final) const { return (final ? "AOD_merge_final.jdl" : "AOD_merge.jdl"); }
Bool_t SetGenerator(const char* generator);
Int_t MaxEventsPerChunk() const { return fMaxEventsPerChunk; }
- void SetMaxEventsPerChunk(Int_t n) { fMaxEventsPerChunk = n; }
+ void SetMaxEventsPerChunk(Int_t n) { fMaxEventsPerChunk = n; SetVar("VAR_EVENTS_PER_JOB", Form("%i",n)); }
TString OCDBPath() const { return GetMapValue("OCDBPath"); }