]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TOF/AddTaskTOFQA.C
fine tuning of TOF tail (developing task)
[u/mrichter/AliRoot.git] / PWGPP / TOF / AddTaskTOFQA.C
1 /*  created by fbellini@cern.ch on 14/09/2010 */
2 /*  last modified by fbellini   on 11/11/2011 */
3
4 AliAnalysisTaskSE * AddTaskTOFQA(Bool_t flagEnableAdvancedCheck=kFALSE, 
5                                  UInt_t triggerMask = AliVEvent::kAnyINT,
6                                  Int_t trackCutSetTOFqa = 0,
7                                  TString cutName = "") 
8 {
9   // Task for checking TOF QA
10  
11   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
12   if (!mgr) {
13     ::Error("AddTask", "No analysis manager to connect to.");
14     return NULL;
15   }   
16
17   // Check the analysis type using the event handlers connected to the analysis manager.
18   if (!mgr->GetInputEventHandler()) {
19     ::Error("AddTask", "This task requires an input event handler");
20     return NULL;
21   }
22   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
23   
24   // Create the task
25   AliAnalysisTaskTOFqa *task = new AliAnalysisTaskTOFqa("taskTOFqa");
26   task->EnableAdvancedCheck(flagEnableAdvancedCheck);
27   task->SelectCollisionCandidates(triggerMask);
28   //AliLog::SetClassDebugLevel("AliAnalysisTaskTOFqa",1);
29   mgr->AddTask(task);
30
31   /* cuts used for QA in 2010 p-p */
32     //Define track cut set
33   AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts", "TrackCutsTOFqa"); 
34   AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
35
36   if ( (trackCutSetTOFqa<0) || (trackCutSetTOFqa>=AliAnalysisTaskTOFqaID::kNCutSetTOFqa) ) trackCutSetTOFqa = 0;
37
38   if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kRun1Cuts ) {
39     //use track cuts used for QA during run1 (before July 2014)
40     esdTrackCuts->SetMinNClustersTPC(70); 
41     esdTrackCuts->SetMaxChi2PerClusterTPC(4);
42     esdTrackCuts->SetAcceptKinkDaughters(kFALSE); 
43     esdTrackCuts->SetRequireTPCRefit(kTRUE);
44     esdTrackCuts->SetRequireITSRefit(kTRUE);
45     esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
46                                            AliESDtrackCuts::kAny);
47     esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");//selects primaries
48     esdTrackCuts->SetMaxDCAToVertexZ(2);
49     esdTrackCuts->SetDCAToVertex2D(kFALSE);
50     esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
51   } else {
52     if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kStd2010 ) esdTrackCuts->GetStandardITSTPCTrackCuts2010(kTRUE,0);
53     if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kStd2010crossedRows ) esdTrackCuts->GetStandardITSTPCTrackCuts2010(kTRUE,1);
54     if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kStd2011) esdTrackCuts->GetStandardITSTPCTrackCuts2011(kTRUE,0); 
55     if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kStd2011crossedRows ) esdTrackCuts->GetStandardITSTPCTrackCuts2011(kTRUE,1);
56   }
57   
58   trackFilter->AddCuts(esdTrackCuts);
59   task->SetTrackFilter(trackFilter); 
60   
61   // Create containers for input/output
62   AliAnalysisDataContainer *cInputTOFqa = mgr->CreateContainer("cInputTOFqa",TChain::Class(),AliAnalysisManager::kInputContainer);
63   AliAnalysisDataContainer *cGeneralTOFqa = mgr->CreateContainer(Form("cGeneralTOFqa%s",cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName()));
64   AliAnalysisDataContainer *cTimeZeroTOFqa = mgr->CreateContainer(Form("cTimeZeroTOFqa%s",cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName()));
65   AliAnalysisDataContainer *cPIDTOFqa = mgr->CreateContainer(Form("cPIDTOFqa%s",cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName()));
66   AliAnalysisDataContainer *cPosTracksTOFqa = mgr->CreateContainer(Form("cPosTracksTOFqa%s",cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName()));
67   AliAnalysisDataContainer *cNegTracksTOFqa = mgr->CreateContainer(Form("cNegTracksTOFqa%s",cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName()));
68
69   // Attach i/o
70   mgr->ConnectInput(task, 0,mgr->GetCommonInputContainer());
71   mgr->ConnectOutput(task, 1, cGeneralTOFqa);
72   mgr->ConnectOutput(task, 2, cTimeZeroTOFqa);
73   mgr->ConnectOutput(task, 3, cPIDTOFqa);
74   mgr->ConnectOutput(task, 4, cPosTracksTOFqa);
75   mgr->ConnectOutput(task, 5, cNegTracksTOFqa);
76   return task;
77 }