]>
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 | |
103b61df | 11 | AliAnalysisTaskSE * 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 | } |