-AliPhysicsSelectionTask* AddTaskPhysicsSelection(Bool_t mCAnalysisFlag = kFALSE, Bool_t withBckgndRejection = kTRUE)
+AliPhysicsSelectionTask* AddTaskPhysicsSelection(Bool_t mCAnalysisFlag = kFALSE, Bool_t deprecatedFlag = kTRUE, UInt_t computeBG = 0, Bool_t useSpecialOutput=kFALSE)
{
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AddTaskPhysicsSelection", "This task requires an input event handler");
return NULL;
}
- TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
+
+ AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
+ TString inputDataType = inputHandler->GetDataType(); // can be "ESD" or "AOD"
+
// Configure analysis
//===========================================================================
-
-
-
- AliPhysicsSelectionTask *task = new AliPhysicsSelectionTask("");
+ AliPhysicsSelectionTask *task = new AliPhysicsSelectionTask();
+ task->SetUseSpecialOutput(useSpecialOutput); // RS: optionally use special output
+ // this makes physics selection to work using AliMultiInputEventHandler
+ if (inputHandler && (inputHandler->IsA() == AliMultiInputEventHandler::Class())) {
+ AliMultiInputEventHandler *multiInputHandler=(AliMultiInputEventHandler*)inputHandler;
+ AliInputEventHandler *ih = multiInputHandler->GetFirstInputEventHandler();
+ if (!ih) {
+ ::Error("AddTaskPhysicsSelection","ESD or AOD input handler is missing");
+ return NULL;
+ }
+ ih->SetEventSelection(multiInputHandler->GetEventSelection());
+ inputDataType = ih->GetDataType(); // can be "ESD" or "AOD"
+ }
+
mgr->AddTask(task);
AliPhysicsSelection* physSel = task->GetPhysicsSelection();
- if (withBckgndRejection)
- physSel->AddBackgroundIdentification(new AliBackgroundSelection());
if (mCAnalysisFlag)
physSel->SetAnalyzeMC();
+ if (computeBG)
+ physSel->SetComputeBG(computeBG);
+
+ if(!deprecatedFlag)
+ AliFatal("The BG ID flag is deprecated. Please use the OADB to configure the cuts");
AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("cstatsout",
TList::Class(),
AliAnalysisManager::kOutputContainer,
"EventStat_temp.root");
-
+ //
+ if (useSpecialOutput) coutput1->SetSpecialOutput(); // RS: optionally use special output
+ //
mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(task,1,coutput1);