1 /* created by fbellini@cern.ch on 29/04/2013 */
2 /* last modified by fbellini on 29/04/2013 */
4 UInt_t kTriggerInt = AliVEvent::kAnyINT;
5 // UInt_t kTriggerMuonAll = AliVEvent::kMUL7 | AliVEvent::kMUSH7 | AliVEvent::kMUU7 | AliVEvent::kMUS7;
6 // UInt_t kTriggerMuonBarell = AliVEvent::kMUU7;
7 // UInt_t kTriggerEMC = AliVEvent::kEMC7;
8 // UInt_t kTriggerHM = AliVEvent::kHighMult;
9 UInt_t kTriggerMask = kTriggerInt;
11 AliAnalysisTaskSE * AddTaskTOFqaID(UInt_t triggerMask = kTriggerMask, Bool_t flagEnableAdvancedCheck=kFALSE, Bool_t isMC = kFALSE, Short_t absPdgCode = 0)
13 // Task for checking TOF QA
15 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
17 ::Error("AddTask", "No analysis manager to connect to.");
21 // Check the analysis type using the event handlers connected to the analysis manager.
22 if (!mgr->GetInputEventHandler()) {
23 ::Error("AddTask", "This task requires an input event handler");
26 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
28 if (isMC && (absPdgCode<0)) {
29 ::Error("AddTask","Invalid selected PDG code for MC. Set absPdgCode=0 for no specie selection.");
33 AliAnalysisTaskTOFqaID *task = new AliAnalysisTaskTOFqaID(Form("taskTOFqaID_%i",absPdgCode));
34 task->EnableAdvancedCheck(flagEnableAdvancedCheck);
35 task->SetSelectMCspecies(isMC, absPdgCode);
36 task->SelectCollisionCandidates(triggerMask);
38 //AliLog::SetClassDebugLevel("AliAnalysisTaskTOFqa",1);
41 /* cuts used for QA in 2010 p-p */
43 AliESDtrackCuts* esdTrackCutsLoose2010 = new AliESDtrackCuts("AliESDtrackCuts", "esdTrackCutsLoose2010");
44 esdTrackCutsLoose2010->SetMinNClustersTPC(70);
45 esdTrackCutsLoose2010->SetMaxChi2PerClusterTPC(3.5);
46 esdTrackCutsLoose2010->SetMaxCovDiagonalElements(2, 2, 0.5, 0.5, 2);
47 esdTrackCutsLoose2010->SetRequireTPCRefit(kTRUE);
48 esdTrackCutsLoose2010->SetMaxDCAToVertexXY(3.0);
49 esdTrackCutsLoose2010->SetMaxDCAToVertexZ(3.0);
50 esdTrackCutsLoose2010->SetRequireSigmaToVertex(kTRUE);
51 esdTrackCutsLoose2010->SetAcceptKinkDaughters(kFALSE);
52 esdTrackCutsLoose2010->SetMaxNsigmaToVertex(4.0);
54 /* standard cuts ITS-TPC 2010 */
55 AliESDtrackCuts* esdTrackCutsStd2010 = new AliESDtrackCuts("AliESDtrackCuts", "Standard2010");
57 esdTrackCutsStd2010->SetMinNClustersTPC(70);
58 esdTrackCutsStd2010->SetMaxChi2PerClusterTPC(4);
59 esdTrackCutsStd2010->SetAcceptKinkDaughters(kFALSE);
60 esdTrackCutsStd2010->SetRequireTPCRefit(kTRUE);
62 esdTrackCutsStd2010->SetRequireITSRefit(kTRUE);
63 esdTrackCutsStd2010->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
64 AliESDtrackCuts::kAny);
65 esdTrackCutsStd2010->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");//selects primaries
66 esdTrackCutsStd2010->SetMaxDCAToVertexZ(2);
67 esdTrackCutsStd2010->SetDCAToVertex2D(kFALSE);
68 esdTrackCutsStd2010->SetRequireSigmaToVertex(kFALSE);
70 AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
71 trackFilter->AddCuts(esdTrackCutsStd2010);
72 task->SetTrackFilter(trackFilter);
74 TString partName(task->GetSpeciesName(absPdgCode));
76 // Create containers for input/output
77 AliAnalysisDataContainer *cInputTOFqa = mgr->CreateContainer("cInputTOFqa",TChain::Class(),AliAnalysisManager::kInputContainer);
78 AliAnalysisDataContainer *cGeneralTOFqa = mgr->CreateContainer(Form("base_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(), partName.Data()));
79 AliAnalysisDataContainer *cTimeZeroTOFqa = mgr->CreateContainer(Form("timeZero_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(),partName.Data()));
80 AliAnalysisDataContainer *cPIDTOFqa = mgr->CreateContainer(Form("pid_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(),partName.Data()));
81 AliAnalysisDataContainer *cTRDcheckTOFqa = mgr->CreateContainer(Form("trd_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(),partName.Data()));
82 AliAnalysisDataContainer *cTriggerTOFqa = mgr->CreateContainer(Form("trigger_%s",partName.Data()),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:TOF_Performance",mgr->GetCommonFileName(),partName.Data()));
85 mgr->ConnectInput(task, 0,mgr->GetCommonInputContainer());
86 mgr->ConnectOutput(task, 1, cGeneralTOFqa);
87 mgr->ConnectOutput(task, 2, cTimeZeroTOFqa);
88 mgr->ConnectOutput(task, 3, cPIDTOFqa);
89 mgr->ConnectOutput(task, 4, cTRDcheckTOFqa);
90 mgr->ConnectOutput(task, 5, cTriggerTOFqa);