1 AliAnalysisTaskSpectraAOD* AddTaskSpectraAOD(Bool_t mc=kTRUE,
\r
2 Double_t CentCutMin=0,
\r
3 Double_t CentCutMax=100,
\r
4 Double_t QvecCutMin=0,
\r
5 Double_t QvecCutMax=100,
\r
6 Double_t EtaMin=-0.8,
\r
8 Double_t Nsigmapid=3.,
\r
12 Double_t ptTofMatch=.6,
\r
14 UInt_t trkbitQVector=1,
\r
15 Bool_t UseCentPatchAOD049=kFALSE,
\r
16 Double_t DCA=100000,
\r
17 UInt_t minNclsTPC=70
\r
20 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
\r
23 ::Error("AddAliAnalysisTaskSpectraAOD", "No analysis manager to connect to.");
\r
27 // Check the analysis type using the event handlers connected to the analysis manager.
\r
28 //==============================================================================
\r
29 if (!mgr->GetInputEventHandler())
\r
31 ::Error("AddTaskITSsaTracks", "This task requires an input event handler");
\r
35 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
\r
36 if(type.Contains("ESD"))
\r
38 ::Error("AddTaskITSsaTracks", "This task requires to run on AOD");
\r
42 using namespace AliSpectraNameSpace;
\r
44 AliSpectraAODPID *pid = new AliSpectraAODPID();
\r
45 pid->SetNSigmaCut(Nsigmapid);
\r
47 AliSpectraAODTrackCuts * trcuts = new AliSpectraAODTrackCuts("Track Cuts");
\r
48 trcuts->SetDCA(DCA);
\r
49 trcuts->SetTrackBits(trkbit);
\r
53 trcuts->SetPtTOFMatching(ptTofMatch);
\r
54 trcuts->SetEta(EtaMin,EtaMax);
\r
55 trcuts->SetMinTPCcls(minNclsTPC);
\r
56 trcuts->PrintCuts();
\r
58 AliSpectraAODEventCuts * evcuts = new AliSpectraAODEventCuts("Event Cuts");
\r
59 evcuts->SetQVectorCut(QvecCutMin,QvecCutMax);
\r
60 evcuts->SetCentralityCutMax(CentCutMax);
\r
61 evcuts->SetCentralityCutMin(CentCutMin);
\r
62 evcuts->SetTrackBits(trkbitQVector);
\r
63 if(mc==1)evcuts->SetIsMC(kTRUE);
\r
64 evcuts->PrintCuts();
\r
66 AliAnalysisTaskSpectraAOD *task = new AliAnalysisTaskSpectraAOD(Form("TaskAODSpectraCent%.0fto%.0f_QVec%.1fto%.1f_Eta%.1fto%.1f_%.1fSigmaPID_TrBit%d",
\r
76 task->SetEventCuts(evcuts);
\r
77 task->SetTrackCuts(trcuts);
\r
78 if(mc==1)task->SetIsMC(kTRUE);
\r
80 TString outputFileName = AliAnalysisManager::GetCommonFileName();
\r
82 TString typeofdata=mc?"MC":"Data";
\r
84 outputFileName += Form(":OutputAODSpectraTask_%s_Cent%.0fto%.0f_QVec%.1fto%.1f_Eta%.1fto%.1f_%.1fSigmaPID_TrBit%d.root",typeofdata.Data(),evcuts->GetCentralityMin(),evcuts->GetCentralityMax(),evcuts->GetQVectorCutMin(), evcuts->GetQVectorCutMax(),trcuts->GetEtaMin(),trcuts->GetEtaMax(),pid->GetNSigmaCut(),trcuts->GetTrackType());
\r
86 cout<<outputFileName<<endl;
\r
87 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
\r
88 AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer("chistpt", AliSpectraAODHistoManager::Class(), AliAnalysisManager::kOutputContainer,outputFileName);
\r
89 AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer("cvcutpt", AliSpectraAODEventCuts::Class(), AliAnalysisManager::kOutputContainer,outputFileName);
\r
90 AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer("ctcutpt%d", AliSpectraAODTrackCuts::Class(), AliAnalysisManager::kOutputContainer, outputFileName);
\r
91 AliAnalysisDataContainer *coutputpt4 = mgr->CreateContainer("cpidpt%d", AliSpectraAODPID::Class(), AliAnalysisManager::kOutputContainer,outputFileName);
\r
93 mgr->ConnectInput(task, 0, cinput);
\r
94 mgr->ConnectOutput(task, 1, coutputpt1);
\r
95 mgr->ConnectOutput(task, 2, coutputpt2);
\r
96 mgr->ConnectOutput(task, 3, coutputpt3);
\r
97 mgr->ConnectOutput(task, 4, coutputpt4);
\r
100 mgr->AddTask(task);
\r