-AliAnalysisTaskSingleMu *AddTaskSingleMuonAnalysis(Int_t fillNtupleScaleDown=0, Bool_t keepAll=kFALSE){
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include "TString.h"
+#include "TList.h"
+
+#include "AliLog.h"
+#include "AliVEventHandler.h"
+
+#include "AliAnalysisManager.h"
+#include "AliAnalysisDataContainer.h"
+
+#include "AliCFContainer.h"
+
+#include "AliAnalysisTaskSingleMu.h"
+#endif
+
+AliAnalysisTaskSingleMu* AddTaskSingleMuonAnalysis(Bool_t applyPhysicsSelection=kTRUE, Int_t fillNtupleScaleDown=0, Bool_t keepAll=kFALSE){
// Get the pointer to the existing analysis manager via the static access method.
//==============================================================================
return NULL;
}
- TString baseOutName = "singleMuonAnalysis.root";
+ TString currName = "";
TString outputfile = mgr->GetCommonFileName();
- if ( ! outputfile.IsNull() ) outputfile += ":PWG3_muon_SingleMu";
- else outputfile = baseOutName;
+ if ( ! outputfile.IsNull() ) {
+ currName = ( applyPhysicsSelection ) ? ":PWG3_muon_SingleMu" : ":PWG3_muon_SingleMu_NoPS";
+ outputfile += currName;
+ }
+ else outputfile = "singleMuonAnalysis.root";
+
+ currName = ( applyPhysicsSelection ) ? "SingleMuonContainer" : "SingleMuonContainerNoPS";
+ AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(currName.Data(),AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,outputfile);
- AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("SingleMuonContainer",AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,outputfile);
- AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("SingleMuon",TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
- AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("SingleMuonQA",TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
- AliAnalysisDataContainer *coutput4 = 0x0;
- if ( mgr->GetMCtruthEventHandler() )
- coutput4 = mgr->CreateContainer("SingleMuonMC",TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
+ currName = ( applyPhysicsSelection ) ? "SingleMuon" : "SingleMuonNoPS";
+ AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(currName.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
+ currName = ( applyPhysicsSelection ) ? "SingleMuonQA" : "SingleMuonQANoPS";
+ AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(currName.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
- AliAnalysisDataContainer *coutput5 = 0x0;
+ currName = ( applyPhysicsSelection ) ? "SingleMuonMC" : "SingleMuonMCNoPS";
+ AliAnalysisDataContainer *coutput4 = mgr->CreateContainer(currName.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
+
+ AliAnalysisDataContainer *coutput5 = 0x0;
if ( fillNtupleScaleDown > 0 ) {
- coutput5 = mgr->CreateContainer("SingleMuonNtuple",TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
+ currName = ( applyPhysicsSelection ) ? "SingleMuonNtuple" : "SingleMuonNtupleNoPS";
+ coutput5 = mgr->CreateContainer(currName.Data(),TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
+ //coutput5 = mgr->CreateContainer(currName.Data(),TTree::Class(),AliAnalysisManager::kOutputContainer,"SingleMuNtuple.root");
coutput5->SetSpecialOutput();
}
// Create the task, add it to the manager and configure it.
//===========================================================================
-
- AliAnalysisTaskSingleMu *SingleMuonAnalysisTask = new AliAnalysisTaskSingleMu("SingleMuonAnalysisTask", fillNtupleScaleDown, keepAll);
- mgr->AddTask(SingleMuonAnalysisTask);
+ AliAnalysisTaskSingleMu *singleMuonAnalysisTask = new AliAnalysisTaskSingleMu("SingleMuonAnalysisTask", fillNtupleScaleDown, keepAll);
+ mgr->AddTask(singleMuonAnalysisTask);
+ if ( applyPhysicsSelection )
+ singleMuonAnalysisTask->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kMUON);
// Create ONLY the output containers for the data produced by the task.
// Get and connect other common input/output containers via the manager as below
//==============================================================================
- mgr->ConnectInput (SingleMuonAnalysisTask, 0, mgr->GetCommonInputContainer());
- mgr->ConnectOutput (SingleMuonAnalysisTask, 1, coutput1);
- mgr->ConnectOutput (SingleMuonAnalysisTask, 2, coutput2);
- mgr->ConnectOutput (SingleMuonAnalysisTask, 3, coutput3);
- if ( coutput4 )
- mgr->ConnectOutput (SingleMuonAnalysisTask, 4, coutput4);
+ mgr->ConnectInput (singleMuonAnalysisTask, 0, mgr->GetCommonInputContainer());
+ mgr->ConnectOutput (singleMuonAnalysisTask, 1, coutput1);
+ mgr->ConnectOutput (singleMuonAnalysisTask, 2, coutput2);
+ mgr->ConnectOutput (singleMuonAnalysisTask, 3, coutput3);
+ mgr->ConnectOutput (singleMuonAnalysisTask, 4, coutput4);
if ( coutput5 )
- mgr->ConnectOutput (SingleMuonAnalysisTask, 5, coutput5);
+ mgr->ConnectOutput (singleMuonAnalysisTask, 5, coutput5);
- return SingleMuonAnalysisTask;
-}
+ return singleMuonAnalysisTask;
+}