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