]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TOF/AddTaskTOFqaID.C
Fix typo
[u/mrichter/AliRoot.git] / PWGPP / TOF / AddTaskTOFqaID.C
1 /*  created by fbellini@cern.ch on 29/04/2013 */
2 /*  last modified by fbellini   on 29/04/2013 */
3
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;
8 UInt_t kTriggerInt = AliVEvent::kAnyINT;
9 UInt_t kTriggerMask = kTriggerInt;
10
11 AliAnalysisTaskSE * 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) 
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);
41   //AliLog::SetClassDebugLevel("AliAnalysisTaskTOFqaID",4);
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   */
57
58   /* standard cuts ITS-TPC 2010 */
59   AliESDtrackCuts* esdTrackCutsStd2010 = new AliESDtrackCuts("AliESDtrackCuts", "Standard2010");
60   esdTrackCutsStd2010->GetStandardITSTPCTrackCuts2010(kTRUE,0);
61   // TPC  
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);
74
75  
76   /* standard cuts ITS-TPC 2011 */
77   AliESDtrackCuts* esdTrackCutsStd2011 = new AliESDtrackCuts("AliESDtrackCuts", "Standard2011");
78   esdTrackCutsStd2011->GetStandardITSTPCTrackCuts2011(kTRUE,0);
79   
80   AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
81   if (useStdCuts2011) 
82     trackFilter->AddCuts(esdTrackCutsStd2011);
83   else
84     trackFilter->AddCuts(esdTrackCutsStd2010);
85   task->SetTrackFilter(trackFilter);
86   
87   TString partName(task->GetSpeciesName(absPdgCode));
88   
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 }