-
-
-AliAnalysisTask* AddTask(Bool_t AnalysisMC, const Char_t* taskname, Int_t typerun, Float_t minc[], Float_t maxc[] )
-{
- // Creates a pid task and adds it to the analysis manager
-
- // Get the pointer to the existing analysis manager via the static
- //access method
- //=========================================================================
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTaskHighPtDeDx", "No analysis manager to connect to.");
- return NULL;
- }
-
- // Check the analysis type using the event handlers connected to the
- // analysis manager The availability of MC handler can also be
- // checked here.
- // =========================================================================
- if (!mgr->GetInputEventHandler()) {
- Error("AddTaskHighPtDeDx", "This task requires an input event handler");
- return NULL;
- }
-
-
-
-
- AliAnalysisFilter* trackFilterGolden = new AliAnalysisFilter("trackFilter");
- AliESDtrackCuts* esdTrackCutsGolden = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE,1);
- trackFilterGolden->AddCuts(esdTrackCutsGolden);
-
- AliAnalysisFilter* trackFilterTPC = new AliAnalysisFilter("trackFilterTPC");
- AliESDtrackCuts* esdTrackCutsTPC =
- AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
- trackFilterTPC->AddCuts(esdTrackCutsTPC);
-
-
-
- // Create the task and configure it
- //========================================================================
- if(typerun==2){//heavy ion analysis
-
-
- AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx[6];
- for( Int_t i=0; i<6; ++i ){
- taskHighPtDeDx[i]=0;
- Char_t TaskName[256]={0};
- sprintf(TaskName,"%s_%1.0f_%1.0f",taskname,minc[i],maxc[i]);
-
- taskHighPtDeDx[i] = new AliAnalysisTaskQAHighPtDeDx(TaskName);
- TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
- taskHighPtDeDx[i]->SetAnalysisType(type);
- taskHighPtDeDx[i]->SetAnalysisMC(AnalysisMC);
- taskHighPtDeDx[i]->SetAnalysisPbPb(kTRUE);
- taskHighPtDeDx[i]->SetDebugLevel(0);
- taskHighPtDeDx[i]->SetEtaCut(0.8);
- taskHighPtDeDx[i]->SetVtxCut(10.0);
- taskHighPtDeDx[i]->SetCentralityEstimator(centralityEstimator);
- taskHighPtDeDx[i]->SetTrigger(kTriggerInt);
- taskHighPtDeDx[i]->SetMinCent(minc[i]);
- taskHighPtDeDx[i]->SetMaxCent(maxc[i]);
- taskHighPtDeDx[i]->SetPileUpRej(ispileuprej);
-
- taskHighPtDeDx[i]->SetTrackFilterGolden(trackFilterGolden);
- taskHighPtDeDx[i]->SetTrackFilterTPC(trackFilterTPC);
- taskHighPtDeDx[i]->SetStoreMcIn(analysisMC);
-
- mgr->AddTask(taskHighPtDeDx[i]);
-
- }
-
- // 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
- //=======================================================================
- AliAnalysisDataContainer *cout_hist[6];
- for( Int_t i=0; i<6; ++i ){
-
- cout_hist[i]=0;
- Char_t outFileName[256]={0};
- sprintf(outFileName,"%s_%1.0f_%1.0f.root",taskname,minc[i],maxc[i]);
- //AliAnalysisDataContainer *cout_hist = 0;
-
- cout_hist[i] = mgr->CreateContainer(Form("output_%1.0f_%1.0f",minc[i],maxc[i]), TList::Class(), AliAnalysisManager::kOutputContainer, outFileName);
- mgr->ConnectInput (taskHighPtDeDx[i], 0, mgr->GetCommonInputContainer());
- mgr->ConnectOutput(taskHighPtDeDx[i], 1, cout_hist[i]);
-
- }
-
- // Return task pointer at the end
- return taskHighPtDeDx[0];
- }
- if(typerun==3){//pp analysis
-
-
- AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx = new AliAnalysisTaskQAHighPtDeDx("taskHighPtDeDxpp");
- TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
- taskHighPtDeDx->SetAnalysisType(type);
- taskHighPtDeDx->SetAnalysisMC(AnalysisMC);
- taskHighPtDeDx->SetAnalysisPbPb(kFALSE);
- taskHighPtDeDx->SetDebugLevel(0);
- taskHighPtDeDx->SetEtaCut(0.8);
- taskHighPtDeDx->SetVtxCut(10.0);
- taskHighPtDeDx->SetTrigger(kTriggerInt);
- taskHighPtDeDx->SetPileUpRej(ispileuprej);
- //Set Filtesr
- taskHighPtDeDx->SetTrackFilterGolden(trackFilterGolden);
- taskHighPtDeDx->SetTrackFilterTPC(trackFilterTPC);
- taskHighPtDeDx->SetStoreMcIn(analysisMC); // def: kFALSE
-
- mgr->AddTask(taskHighPtDeDx);
-
- // 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
- //=======================================================================
-
- AliAnalysisDataContainer *cout_histdedx;
-
- cout_histdedx=0;
- Char_t outFileName[256]={0};
- sprintf(outFileName,"%s.root",taskname);
- //AliAnalysisDataContainer *cout_hist = 0;
-
- cout_histdedx = mgr->CreateContainer("outputdedx", TList::Class(), AliAnalysisManager::kOutputContainer, outFileName);
- mgr->ConnectInput (taskHighPtDeDx, 0, mgr->GetCommonInputContainer());
- mgr->ConnectOutput(taskHighPtDeDx, 1, cout_histdedx);
-
- // Return task pointer at the end
- return taskHighPtDeDx;
-
-
-
-
-
- }
-
-
-
- if(typerun==4){//pPb analysis
- cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<< Runing pPb <<<<<<<<<<<<<<"<<endl;
-
- AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx = new AliAnalysisTaskQAHighPtDeDx("taskHighPtDeDxpp");
- TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
- taskHighPtDeDx->SetAnalysisType(type);
- taskHighPtDeDx->SetAnalysisMC(AnalysisMC);
- taskHighPtDeDx->SetAnalysisPbPb(kTRUE);
- taskHighPtDeDx->SetMinCent(-2000);
- taskHighPtDeDx->SetMaxCent(2000);
- taskHighPtDeDx->SetDebugLevel(0);
- taskHighPtDeDx->SetEtaCut(0.8);
- taskHighPtDeDx->SetVtxCut(10.0);
- taskHighPtDeDx->SetTrigger(kTriggerInt);
- taskHighPtDeDx->SetPileUpRej(ispileuprej);
- taskHighPtDeDx->SetCentralityEstimator(centralityEstimator);
- taskHighPtDeDx->SetStoreMcIn(analysisMC); // def: kFALSE
- //Set Filtesr
- taskHighPtDeDx->SetTrackFilterGolden(trackFilterGolden);
- taskHighPtDeDx->SetTrackFilterTPC(trackFilterTPC);
-
- mgr->AddTask(taskHighPtDeDx);
-
- // 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
- //=======================================================================
-
- AliAnalysisDataContainer *cout_histdedx;
-
- cout_histdedx=0;
- Char_t outFileName[256]={0};
- sprintf(outFileName,"%s.root",taskname);
- //AliAnalysisDataContainer *cout_hist = 0;
-
- cout_histdedx = mgr->CreateContainer("outputdedx", TList::Class(), AliAnalysisManager::kOutputContainer, outFileName);
- mgr->ConnectInput (taskHighPtDeDx, 0, mgr->GetCommonInputContainer());
- mgr->ConnectOutput(taskHighPtDeDx, 1, cout_histdedx);
-
- // Return task pointer at the end
- return taskHighPtDeDx;
-
-
-
-
-
- }
-
-
-
-
-
-}
+AliAnalysisTask* AddTask(Bool_t AnalysisMC = kFALSE, \r
+ Int_t typerun =1, // 0 for pp and 1 for Pb-Pb or pPb\r
+ TString type ="ESD",\r
+ UInt_t kTriggerInt = AliVEvent::kINT7, //for pPb kINT7, for pp or PbPb kMB\r
+ Float_t minCent = 0,\r
+ Float_t maxCent = 80,\r
+ char *centralityEstimator = "V0A",//for pPb V0A for PbPb V0M\r
+ Bool_t ispileuprej = kFALSE\r
+ )\r
+{\r
+ // Creates a pid task and adds it to the analysis manager\r
+ \r
+ // Get the pointer to the existing analysis manager via the static\r
+ //access method\r
+ //=========================================================================\r
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r
+ if (!mgr) {\r
+ Error("AddTaskHighPtDeDx", "No analysis manager to connect to.");\r
+ return NULL;\r
+ } \r
+ \r
+ // Check the analysis type using the event handlers connected to the\r
+ // analysis manager The availability of MC handler can also be\r
+ // checked here.\r
+ // =========================================================================\r
+ if (!mgr->GetInputEventHandler()) {\r
+ Error("AddTaskHighPtDeDx", "This task requires an input event handler");\r
+ return NULL;\r
+ } \r
+ \r
+\r
+\r
+\r
+ AliAnalysisFilter* trackFilterGolden = new AliAnalysisFilter("trackFilter");\r
+ AliESDtrackCuts* esdTrackCutsGolden = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE,1);\r
+ trackFilterGolden->AddCuts(esdTrackCutsGolden);\r
+ \r
+ AliAnalysisFilter* trackFilterTPC = new AliAnalysisFilter("trackFilterTPC");\r
+ AliESDtrackCuts* esdTrackCutsTPC = \r
+ AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();\r
+ trackFilterTPC->AddCuts(esdTrackCutsTPC);\r
+ \r
+\r
+\r
+ \r
+ AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx = new AliAnalysisTaskQAHighPtDeDx("taskHighPtDeDxpp");\r
+ TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"\r
+ taskHighPtDeDx->SetAnalysisType(type);\r
+ taskHighPtDeDx->SetAnalysisMC(AnalysisMC);\r
+ if(typerun==1){\r
+ taskHighPtDeDx->SetAnalysisPbPb(kTRUE);\r
+ taskHighPtDeDx->SetMinCent(minCent);\r
+ taskHighPtDeDx->SetMaxCent(maxCent);\r
+ taskHighPtDeDx->SetCentralityEstimator(centralityEstimator);\r
+ }\r
+ else\r
+ taskHighPtDeDx->SetAnalysisPbPb(kFALSE);\r
+ taskHighPtDeDx->SetDebugLevel(0);\r
+ taskHighPtDeDx->SetEtaCut(0.8);\r
+ taskHighPtDeDx->SetVtxCut(10.0);\r
+ taskHighPtDeDx->SetTrigger(kTriggerInt);\r
+ taskHighPtDeDx->SetPileUpRej(ispileuprej);\r
+ //Set Filtesr\r
+ taskHighPtDeDx->SetTrackFilterGolden(trackFilterGolden);\r
+ taskHighPtDeDx->SetTrackFilterTPC(trackFilterTPC);\r
+ taskHighPtDeDx->SetStoreMcIn(analysisMC); // def: kFALSE\r
+ \r
+ mgr->AddTask(taskHighPtDeDx);\r
+ \r
+ // Create ONLY the output containers for the data produced by the\r
+ // task. Get and connect other common input/output containers via\r
+ // the manager as below\r
+ //=======================================================================\r
+ \r
+ AliAnalysisDataContainer *cout_histdedx;\r
+ \r
+ cout_histdedx=0;\r
+ cout_histdedx = mgr->CreateContainer("outputdedx", TList::Class(), AliAnalysisManager::kOutputContainer, "QAHighPtDeDx.root");\r
+ mgr->ConnectInput (taskHighPtDeDx, 0, mgr->GetCommonInputContainer());\r
+ mgr->ConnectOutput(taskHighPtDeDx, 1, cout_histdedx);\r
+ \r
+ // Return task pointer at the end\r
+ return taskHighPtDeDx;\r
+ \r
+ \r
+ \r
+}\r