]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/TOF/AddTaskTOFqaID.C
Merge branch 'feature-movesplit'
[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;
cf7778cf 8// UInt_t kTriggerInt = AliVEvent::kAnyINT;
9// UInt_t kTriggerMask = kTriggerInt;
9310e980 10
103b61df 11AliAnalysisTaskSE * AddTaskTOFqaID(Bool_t flagEnableAdvancedCheck = kFALSE,
cf7778cf 12 UInt_t triggerMask = AliVEvent::kAnyINT,
13 Int_t trackCutSetTOFqa = 0,
103b61df 14 Bool_t flagEnableChargeSplit = kFALSE,
cf7778cf 15 TString cutName = "",
e207c9de
FB
16 Bool_t isMC = kFALSE,
17 Short_t absPdgCode = 0)
9310e980 18{
19 // Task for checking TOF QA
20
21 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
22 if (!mgr) {
23 ::Error("AddTask", "No analysis manager to connect to.");
24 return NULL;
25 }
26
27 // Check the analysis type using the event handlers connected to the analysis manager.
28 if (!mgr->GetInputEventHandler()) {
29 ::Error("AddTask", "This task requires an input event handler");
30 return NULL;
31 }
32 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
33
34 if (isMC && (absPdgCode<0)) {
35 ::Error("AddTask","Invalid selected PDG code for MC. Set absPdgCode=0 for no specie selection.");
36 }
37
38 // Create the task
39 AliAnalysisTaskTOFqaID *task = new AliAnalysisTaskTOFqaID(Form("taskTOFqaID_%i",absPdgCode));
40 task->EnableAdvancedCheck(flagEnableAdvancedCheck);
103b61df 41 task->EnableChargeSplit(flagEnableChargeSplit);
9310e980 42 task->SetSelectMCspecies(isMC, absPdgCode);
43 task->SelectCollisionCandidates(triggerMask);
b0471367 44 //AliLog::SetClassDebugLevel("AliAnalysisTaskTOFqaID",4);
9310e980 45 mgr->AddTask(task);
46
cf7778cf 47 //Define track cut set
48 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts", "TrackCutsTOFqa");
49 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
50
51 if ( (trackCutSetTOFqa<0) || (trackCutSetTOFqa>=AliAnalysisTaskTOFqaID::kNCutSetTOFqa) ) trackCutSetTOFqa = 0;
e207c9de 52
cf7778cf 53 if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kRun1Cuts ) {
54 //use track cuts used for QA during run1 (before July 2014)
55 esdTrackCuts->SetMinNClustersTPC(70);
56 esdTrackCuts->SetMaxChi2PerClusterTPC(4);
57 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
58 esdTrackCuts->SetRequireTPCRefit(kTRUE);
59 esdTrackCuts->SetRequireITSRefit(kTRUE);
60 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
61 AliESDtrackCuts::kAny);
62 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");//selects primaries
63 esdTrackCuts->SetMaxDCAToVertexZ(2);
64 esdTrackCuts->SetDCAToVertex2D(kFALSE);
65 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
66 } else {
67 if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kStd2010 ) esdTrackCuts->GetStandardITSTPCTrackCuts2010(kTRUE,0);
68 if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kStd2010crossedRows ) esdTrackCuts->GetStandardITSTPCTrackCuts2010(kTRUE,1);
69 if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kStd2011) esdTrackCuts->GetStandardITSTPCTrackCuts2011(kTRUE,0);
70 if ( trackCutSetTOFqa == AliAnalysisTaskTOFqaID::kStd2011crossedRows ) esdTrackCuts->GetStandardITSTPCTrackCuts2011(kTRUE,1);
71 }
9310e980 72
cf7778cf 73 trackFilter->AddCuts(esdTrackCuts);
74 task->SetTrackFilter(trackFilter);
e207c9de 75
9310e980 76 TString partName(task->GetSpeciesName(absPdgCode));
cf7778cf 77
9310e980 78 // Create containers for input/output
cf7778cf 79 AliAnalysisDataContainer *cInputTOFqa = mgr->CreateContainer("cInputTOFqa", TChain::Class(),AliAnalysisManager::kInputContainer);
80 AliAnalysisDataContainer *cGeneralTOFqa = mgr->CreateContainer(Form("base_%s%s",partName.Data(),cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF",mgr->GetCommonFileName(), partName.Data()));
81 AliAnalysisDataContainer *cTimeZeroTOFqa = mgr->CreateContainer(Form("timeZero_%s%s",partName.Data(),cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF",mgr->GetCommonFileName(),partName.Data()));
82 AliAnalysisDataContainer *cPIDTOFqa = mgr->CreateContainer(Form("pid_%s%s",partName.Data(),cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF",mgr->GetCommonFileName(),partName.Data()));
83 AliAnalysisDataContainer *cTRDcheckTOFqa = mgr->CreateContainer(Form("trd_%s%s",partName.Data(),cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF",mgr->GetCommonFileName(),partName.Data()));
84 AliAnalysisDataContainer *cTriggerTOFqa = mgr->CreateContainer(Form("trigger_%s%s",partName.Data(),cutName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF",mgr->GetCommonFileName(),partName.Data()));
9310e980 85
86 // Attach i/o
cf7778cf 87 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
9310e980 88 mgr->ConnectOutput(task, 1, cGeneralTOFqa);
89 mgr->ConnectOutput(task, 2, cTimeZeroTOFqa);
90 mgr->ConnectOutput(task, 3, cPIDTOFqa);
91 mgr->ConnectOutput(task, 4, cTRDcheckTOFqa);
92 mgr->ConnectOutput(task, 5, cTriggerTOFqa);
93 return task;
94}