]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/TOF/AddTaskTOFqaID.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGPP / TOF / AddTaskTOFqaID.C
CommitLineData
9310e980 1/* created by fbellini@cern.ch on 29/04/2013 */
2/* last modified by fbellini on 29/04/2013 */
3
9310e980 4// UInt_t kTriggerMuonAll = AliVEvent::kMUL7 | AliVEvent::kMUSH7 | AliVEvent::kMUU7 | AliVEvent::kMUS7;
5// UInt_t kTriggerMuonBarell = AliVEvent::kMUU7;
6// UInt_t kTriggerEMC = AliVEvent::kEMC7;
7// UInt_t kTriggerHM = AliVEvent::kHighMult;
e207c9de 8UInt_t kTriggerInt = AliVEvent::kAnyINT;
9310e980 9UInt_t kTriggerMask = kTriggerInt;
10
e207c9de
FB
11AliAnalysisTaskSE * AddTaskTOFqaID(UInt_t triggerMask = kTriggerMask,
12 Bool_t flagEnableAdvancedCheck=kFALSE,
13 Bool_t useStdCuts2011 = kTRUE,
14 Bool_t isMC = kFALSE,
15 Short_t absPdgCode = 0)
9310e980 16{
17 // Task for checking TOF QA
18
19 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
20 if (!mgr) {
21 ::Error("AddTask", "No analysis manager to connect to.");
22 return NULL;
23 }
24
25 // Check the analysis type using the event handlers connected to the analysis manager.
26 if (!mgr->GetInputEventHandler()) {
27 ::Error("AddTask", "This task requires an input event handler");
28 return NULL;
29 }
30 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
31
32 if (isMC && (absPdgCode<0)) {
33 ::Error("AddTask","Invalid selected PDG code for MC. Set absPdgCode=0 for no specie selection.");
34 }
35
36 // Create the task
37 AliAnalysisTaskTOFqaID *task = new AliAnalysisTaskTOFqaID(Form("taskTOFqaID_%i",absPdgCode));
38 task->EnableAdvancedCheck(flagEnableAdvancedCheck);
39 task->SetSelectMCspecies(isMC, absPdgCode);
40 task->SelectCollisionCandidates(triggerMask);
b0471367 41 //AliLog::SetClassDebugLevel("AliAnalysisTaskTOFqaID",4);
9310e980 42 mgr->AddTask(task);
43
44 /* cuts used for QA in 2010 p-p */
45 /*
46 AliESDtrackCuts* esdTrackCutsLoose2010 = new AliESDtrackCuts("AliESDtrackCuts", "esdTrackCutsLoose2010");
47 esdTrackCutsLoose2010->SetMinNClustersTPC(70);
48 esdTrackCutsLoose2010->SetMaxChi2PerClusterTPC(3.5);
49 esdTrackCutsLoose2010->SetMaxCovDiagonalElements(2, 2, 0.5, 0.5, 2);
50 esdTrackCutsLoose2010->SetRequireTPCRefit(kTRUE);
51 esdTrackCutsLoose2010->SetMaxDCAToVertexXY(3.0);
52 esdTrackCutsLoose2010->SetMaxDCAToVertexZ(3.0);
53 esdTrackCutsLoose2010->SetRequireSigmaToVertex(kTRUE);
54 esdTrackCutsLoose2010->SetAcceptKinkDaughters(kFALSE);
55 esdTrackCutsLoose2010->SetMaxNsigmaToVertex(4.0);
56 */
e207c9de 57
9310e980 58 /* standard cuts ITS-TPC 2010 */
59 AliESDtrackCuts* esdTrackCutsStd2010 = new AliESDtrackCuts("AliESDtrackCuts", "Standard2010");
e207c9de 60 esdTrackCutsStd2010->GetStandardITSTPCTrackCuts2010(kTRUE,0);
9310e980 61 // TPC
e207c9de
FB
62 // esdTrackCutsStd2010->SetMinNClustersTPC(70);
63 // esdTrackCutsStd2010->SetMaxChi2PerClusterTPC(4);
64 // esdTrackCutsStd2010->SetAcceptKinkDaughters(kFALSE);
65 // esdTrackCutsStd2010->SetRequireTPCRefit(kTRUE);
66 // // ITS
67 // esdTrackCutsStd2010->SetRequireITSRefit(kTRUE);
68 // esdTrackCutsStd2010->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
69 // AliESDtrackCuts::kAny);
70 // esdTrackCutsStd2010->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");//selects primaries
71 // esdTrackCutsStd2010->SetMaxDCAToVertexZ(2);
72 // esdTrackCutsStd2010->SetDCAToVertex2D(kFALSE);
73 // esdTrackCutsStd2010->SetRequireSigmaToVertex(kFALSE);
9310e980 74
e207c9de
FB
75
76 /* standard cuts ITS-TPC 2011 */
77 AliESDtrackCuts* esdTrackCutsStd2011 = new AliESDtrackCuts("AliESDtrackCuts", "Standard2011");
78 esdTrackCutsStd2011->GetStandardITSTPCTrackCuts2011(kTRUE,0);
b0471367 79
9310e980 80 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
e207c9de
FB
81 if (useStdCuts2011)
82 trackFilter->AddCuts(esdTrackCutsStd2011);
83 else
84 trackFilter->AddCuts(esdTrackCutsStd2010);
9310e980 85 task->SetTrackFilter(trackFilter);
e207c9de 86
9310e980 87 TString partName(task->GetSpeciesName(absPdgCode));
e207c9de 88
9310e980 89 // Create containers for input/output
90 AliAnalysisDataContainer *cInputTOFqa = mgr->CreateContainer("cInputTOFqa",TChain::Class(),AliAnalysisManager::kInputContainer);
91 AliAnalysisDataContainer *cGeneralTOFqa = mgr->CreateContainer(Form("base_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(), partName.Data()));
92 AliAnalysisDataContainer *cTimeZeroTOFqa = mgr->CreateContainer(Form("timeZero_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(),partName.Data()));
93 AliAnalysisDataContainer *cPIDTOFqa = mgr->CreateContainer(Form("pid_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(),partName.Data()));
94 AliAnalysisDataContainer *cTRDcheckTOFqa = mgr->CreateContainer(Form("trd_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(),partName.Data()));
95 AliAnalysisDataContainer *cTriggerTOFqa = mgr->CreateContainer(Form("trigger_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(),partName.Data()));
96
97 // Attach i/o
98 mgr->ConnectInput(task, 0,mgr->GetCommonInputContainer());
99 mgr->ConnectOutput(task, 1, cGeneralTOFqa);
100 mgr->ConnectOutput(task, 2, cTimeZeroTOFqa);
101 mgr->ConnectOutput(task, 3, cPIDTOFqa);
102 mgr->ConnectOutput(task, 4, cTRDcheckTOFqa);
103 mgr->ConnectOutput(task, 5, cTriggerTOFqa);
104 return task;
105}