class AliAnalysisAlien;
AliAnalysisAlien* CreateAlienHandler(const char *plugin_mode);
-Int_t runNumbers[5] = {121040};
+// Collision type: 0 = p-p 1 = Pb-Pb
+Int_t iCollisionType = 0;
+Int_t runNumbers[5] = {145384};
Bool_t doCDBconnect = 1;
+Bool_t doEventStat = 1;
+Bool_t doCentrality = 0;
Bool_t doQAsym = 1;
Bool_t doVZERO = 1; // there is a 2nd file
Bool_t doVertex = 1;
Bool_t doSPD = 1; // needs RP
Bool_t doTPC = 1;
-Bool_t doEventStat = 1;
Bool_t doSDD = 1; // needs RP
Bool_t doSSDdEdx = 1;
-// new
-Bool_t doTRD = 1;
+
+Bool_t doTRD = 0;
Bool_t doITS = 1;
+Bool_t doITSsaTracks = 1; // new
+Bool_t doITSalign = 0; // new (try to load geom)
Bool_t doCALO = 1;
Bool_t doMUONTrig = 1;
Bool_t doImpParRes = 1;
Bool_t doMUON = 1;
+Bool_t doTOF = 1;
+Bool_t doHMPID = 1;
+Bool_t doT0 = 1; // new
+Bool_t doZDC = 0;
Bool_t doMUONEff = 0; // NEEDS geometry
Bool_t doV0 = 0; // NEEDS MCtruth
TString train_name = "QA"; // QA local folder name
-TString train_tag = ""; // Train special tag appended to
+TString train_tag = (iCollisionType)?"_Pb-Pb":"_p-p"; // Train special tag appended to
// visible name. ("sim", "pp", ...)
// Name in train page (DON'T CHANGE)
TString visible_name = Form("QA$2_$3%s", train_tag.Data()); //# FIXED #
-TString job_comment = "PWG1 QA train"; // Can add observations here
+TString job_comment = "PWG1 QA train(no TRD, no ZDC)"; // Can add observations here
// Job tag (DON'T CHANGE)
TString job_tag = Form("%s: %s", visible_name.Data(), job_comment.Data());
// Package versions - Modify as needed
-TString root_version = "v5-27-05";
-TString aliroot_version = "v4-20-07-AN";
+TString root_version = "v5-28-00a";
+TString aliroot_version = "v4-21-17b-AN";
// Production directory - change as needed for test mode
-TString grid_datadir = "/alice/data/2010/LHC10c";
+TString grid_datadir = "/alice/data/2011/LHC11a";
// Work directory in GRID (DON'T CHANGE)
TString grid_workdir = "/alice/cern.ch/user/a/alidaq/QA/QA$2";
// Job splitting
Int_t grid_split = 20; // Splitting
// Debug level
Int_t debug_level = 1; // Debugging
+ // File merging
+Int_t maxMergeFiles = 10; // Max files to merge in a chunk
// Data pattern - change as needed for test mode
-TString data_pattern = "*ESDs/pass2/*ESDs.root";
+TString data_pattern = "*ESDs/Pass1/*ESDs.root";
// Output directory (DON'T CHANGE)
TString alien_outdir = "$1/QA$2";
// Input collection (production mode)
TString data_collection = "$1/qa1.xml";
TString mergeExcludes = ""; // Files to be excluded for merging
+TString mergeDirName = "QA$2";
TString terminateFiles = "trending.root"; // Files produced during Terminate
Bool_t useProductionMode = kTRUE;
Bool_t useMergeViaJDL = kTRUE;
-Bool_t useFastReadOption = kTRUE;
-Bool_t useOverwriteMode = kFALSE;
+Bool_t useFastReadOption = kFALSE;
+Bool_t useOverwriteMode = kTRUE;
Bool_t useDevelopmentVersion = kFALSE;
void PilotAnalysis(const char *plugin_mode = "full")
out << " doSSDdEdx = " << doSSDdEdx << ";" << endl;
out << " doTPC = " << doTPC << ";" << endl;
out << " doTRD = " << doTRD << ";" << endl;
+ out << " doITS = " << doITS << ";" << endl;
+ out << " doITSsaTracks = " << doITSsaTracks << ";" << endl;
+ out << " doITSalign = " << doITSalign << ";" << endl;
+ out << " doZDC = " << doZDC << ";" << endl;
out << " doImpParRes = " << doImpParRes << ";" << endl;
out << " doMUON = " << doMUON << ";" << endl;
+ out << " doTOF = " << doTOF << ";" << endl;
+ out << " doHMPID = " << doHMPID << ";" << endl;
+ out << " doZDC = " << doZDC << ";" << endl;
+ out << " doT0 = " << doT0 << ";" << endl;
out << " doEventStat = " << doEventStat << ";" << endl;
+ if (iCollisionType) out << " doCentrality = " << doCentrality << ";" << endl;
out << "}" << endl;
out.close();
// Load libraries
- gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TRD");
+ gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TRD -I$ALICE_ROOT/PWG1");
LoadLibraries();
// Create manager
AliAnalysisManager *mgr = new AliAnalysisManager("PilotAnalysis", "Production train");
esdHandler->SetActiveBranches("ESDfriend");
mgr->SetInputEventHandler(esdHandler);
mgr->SetDebugLevel(debug_level);
- mgr->SetSaveCanvases(kFALSE);
// AnalysisTasks
AddAnalysisTasks();
gSystem->Load("libPWG0dep.so");
gSystem->Load("libPWG0selectors.so");
gSystem->Load("libPWG1.so");
- gSystem->Load("libPWG2.so");
- gSystem->Load("libPWG2forward.so");
if (doCALO) {
gSystem->Load("libEMCALUtils");
+ gSystem->Load("libPHOSUtils");
gSystem->Load("libPWG4PartCorrBase");
gSystem->Load("libPWG4PartCorrDep");
}
{
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
mgr->SetCommonFileName("QAresults.root");
+ // Statistics task
+ mgr->AddStatisticsTask(AliVEvent::kMB);
//
// CDB connection
//
//
if (doEventStat) {
gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
- AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
+ AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kFALSE /*MC*/);
// mgr->RegisterExtraFile("event_stat.root");
if (!terminateFiles.IsNull()) terminateFiles += ",";
terminateFiles += "event_stat.root";
}
+
+ //
+ // Centrality (A. Toia)
+ //
+ if (doCentrality) {
+ if (!iCollisionType) {
+ printf("Disabling centrality task for p-p\n");
+ doCentrality = kFALSE;
+ } else {
+ gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
+ AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();
+ }
+ }
+
// Vertexing (A. Dainese)
//
if (doVertex) {
//
// TPC (Jacek Otwinowski & Michael Knichel)
//
+ //
+ // Optionally MC information can be used by setting the 1st argument to true
+ // Optionally friends information can be switched off by setting the 2st argument
+ // to false
+ // Optionally highMult axis can be used by setting the 3st argument to true (for PbPb)
if (doTPC) {
gROOT->LoadMacro("$ALICE_ROOT/PWG1/TPC/macros/AddTaskPerformanceTPCdEdxQA.C");
- AliPerformanceTask *tpcQA = AddTaskPerformanceTPCdEdxQA(kFALSE, kTRUE);
+ AliPerformanceTask *tpcQA = AddTaskPerformanceTPCdEdxQA(kFALSE, kTRUE, kFALSE);
tpcQA->SelectCollisionCandidates();
}
//
//
if (doITS) {
gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskPerformanceITS.C");
- AliAnalysisTaskITSTrackingCheck *itsQA = AddTaskPerformanceITS(kFALSE);
+ AliAnalysisTaskITSTrackingCheck *itsQA = 0;
+ AliAnalysisTaskITSTrackingCheck *itsQACent0010 = 0;
+ AliAnalysisTaskITSTrackingCheck *itsQACent3050 = 0;
+ AliAnalysisTaskITSTrackingCheck *itsQACent6080 = 0;
+ if(iCollisionType==0) {
+ itsQA = AddTaskPerformanceITS(kFALSE);
+ } else {
+ itsQA = AddTaskPerformanceITS(kFALSE);
+ itsQACent0010 = AddTaskPerformanceITS(kFALSE,kFALSE,kFALSE,3500,10000);
+ itsQACent3050 = AddTaskPerformanceITS(kFALSE,kFALSE,kFALSE,590,1570);
+ itsQACent6080 = AddTaskPerformanceITS(kFALSE,kFALSE,kFALSE,70,310);
+ }
}
//
+ // ITS saTracks, align (F.Prino)
+ //
+ if (doITSsaTracks) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskITSsaTracks.C");
+ AliAnalysisTaskITSsaTracks *itssaTracks = AddTaskITSsaTracks(kFALSE,kFALSE);
+ }
+ if (doITSalign) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskITSAlign.C");
+ AliAnalysisTaskITSAlignQA *itsAlign = AddTaskITSAlign(0,2011);
+ }
+ //
// TRD (Alex Bercuci, M. Fasel)
//
if(doTRD) {
AddTrainPerformanceTRD(Translate(doCheckESD, doCheckDET, doEffic, doResolution, doCheckPID, doV0Monitor));
}
+ //
+ // ZDC (Chiara Oppedisano)
+ //
+ if(doZDC) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/ZDC/AddTaskZDCQA.C");
+ AliAnalysisTaskSE *taskZDC = AddTaskZDCQA();
+ }
//
// Calorimetry (Gustavo Conesa)
//
if(doCALO) {
gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/QA/AddTaskCalorimeterQA.C");
- AliAnalysisTaskParticleCorrelation *taskCaloQA = AddTaskCalorimeterQA("ESD", kTRUE, kFALSE);
+ AliAnalysisTaskParticleCorrelation *taskCaloQA = AddTaskCalorimeterQA("ESD", 2011, kFALSE, kFALSE);
taskCaloQA->SetDebugLevel(0);
}
gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskV0QA.C");
AliAnalysisTaskV0QA *taskv0QA = AddTaskV0QA(kFALSE);
}
+ //
// Impact parameter resolution (xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it)
//
if (doImpParRes) {
gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskImpParRes.C");
- AliAnalysisTaskSE* taskimpparres= AddTaskImpParRes();
+ AliAnalysisTaskSE* taskimpparres=0;
+ if(iCollisionType==0) {
+ taskimpparres= AddTaskImpParRes();
+ } else {
+ taskimpparres= AddTaskImpParRes(kFALSE,-1,kFALSE,kFALSE);
+ }
taskimpparres->SelectCollisionCandidates();
}
+ //
// MUON QA (Philippe Pillot)
//
if (doMUON) {
gROOT->LoadMacro("$ALICE_ROOT/PWG3/muon/AddTaskMuonQA.C");
AliAnalysisTaskSE* taskmuonqa= AddTaskMuonQA();
}
+ //
+ // TOF (Francesca Bellini)
+ //
+ if (doTOF) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/TOF/AddTaskTOFQA.C");
+ AliAnalysisTaskTOFqa *tofQA = AddTaskTOFQA();
+ tofQA->SelectCollisionCandidates();
+ }
+ //
+ // HMPID QA (Giacomo Volpe)
+ //
+ if (doHMPID) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/HMPID/AddTaskHmpidQA.C");
+ AliAnalysisTaskSE* taskhmpidqa= AddTaskHmpidQA(kFALSE);
+ }
+ // T0 QA (Alla Mayevskaya
+ if (doT0) {
+ gROOT->LoadMacro("$ALICE_ROOT/PWG1/T0/AddTaskT0QA.C");
+ AliT0AnalysisTaskQA* tast0qa= AddTaskT0QA();
+ }
}
//______________________________________________________________________________
plugin->AddDataFile(data_collection);
}
plugin->SetJobTag(job_tag);
- plugin->SetNtestFiles(3);
+ plugin->SetNtestFiles(1);
plugin->SetCheckCopy(kFALSE);
- plugin->SetOneStageMerging(kTRUE);
+ plugin->SetMergeDirName(mergeDirName);
// Set versions of used packages
plugin->SetAPIVersion("V1.1x");
plugin->SetROOTVersion(root_version);
plugin->SetDataPattern(data_pattern);
// ...then add run numbers to be considered
// if (!iAODanalysis) plugin->SetRunRange(run_range[0], run_range[1]);
-// plugin->SetOutputSingleFolder("output");
+// plugin->SetOutputSingleFolder("outpu$ALICE_ROOT/PWG1/T0/Addt");
if (!useProductionMode) {
plugin->SetRunPrefix("000");
plugin->SetOutputToRunNo();
// loaded by the generated analysis macro. Add all extra files (task .cxx/.h) here.
plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TRD");
- plugin->SetAdditionalLibs("libCORRFW.so libTENDER.so libPWG0base.so libPWG0dep.so libPWG0selectors.so libPWG1.so libPWG2.so \
- libPWG2forward.so libEMCALUtils.so libPWG4PartCorrBase.so libPWG4PartCorrDep.so \
+ plugin->SetAdditionalLibs("libCORRFW.so libTENDER.so libPWG0base.so libPWG0dep.so libPWG0selectors.so libPWG1.so \
+ libEMCALUtils.so libPHOSUtils.so libPWG4PartCorrBase.so libPWG4PartCorrDep.so \
libPWG3base.so libPWG3muon.so libPWG3muondep.so");
// Declare the output file names separated by blancs.
-// (can be like: file.root or file.root@ALICE::Niham::File)
plugin->SetDefaultOutputs();
- plugin->SetMaxMergeFiles(20);
+ plugin->SetMaxMergeFiles(maxMergeFiles);
plugin->SetNrunsPerMaster(1);
// Put default output files to archive
// Optionally set number of failed jobs that will trigger killing waiting sub-jobs.
// plugin->SetMaxInitFailed(5);
// Optionally modify the number of replicas
- plugin->SetNumberOfReplicas(4);
+ plugin->SetNumberOfReplicas(5);
// Optionally resubmit threshold.
// plugin->SetMasterResubmitThreshold(90);
// Optionally set time to live (default 30000 sec)
// May need to reset proof. Supported modes: 0-no reset, 1-soft, 2-hard
plugin->SetProofReset(0);
// May limit number of workers
- plugin->SetNproofWorkers(20);
+ plugin->SetNproofWorkers(1);
// May use a specific version of root installed in proof
plugin->SetRootVersionForProof("current_dbg");
// May set the aliroot mode. Check http://aaf.cern.ch/node/83