]>
Commit | Line | Data |
---|---|---|
0ed78680 | 1 | AliAnalysisTaskMuonTrackingEff *AddTaskMUONTrackingEfficiency(AliMuonTrackCuts &trackCuts, TString extension = "") |
6db6876c | 2 | { |
3 | // | |
e1ec553d | 4 | // Task for the determination of the MUON tracking chamber efficiency |
6db6876c | 5 | // |
6 | // lenhardt@subatech.in2p3.fr | |
e1ec553d | 7 | // lardeux@subatech.in2p3.fr |
6db6876c | 8 | // |
e1ec553d | 9 | |
10 | // Get the pointer to the existing analysis manager via the static access method | |
6db6876c | 11 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
12 | if (!mgr) { | |
e1ec553d | 13 | ::Error("AddTaskMUONTrackingEfficiency", "No analysis manager to connect to."); |
6db6876c | 14 | return NULL; |
15 | } | |
e1ec553d | 16 | |
17 | // This task run on ESDs | |
18 | TString type = mgr->GetInputEventHandler()->GetDataType(); | |
19 | if (!type.Contains("ESD")) { | |
20 | ::Error("AddTaskMUONTrackingEfficiency", "ESD input handler needed!"); | |
21 | return NULL; | |
22 | } | |
23 | ||
24 | // Define output file directory | |
25 | TString fileName = AliAnalysisManager::GetCommonFileName(); | |
26 | if (fileName.IsNull()) { | |
27 | ::Error("AddTaskMUONTrackingEfficiency", "Common output file is not defined!"); | |
28 | return NULL; | |
29 | } | |
30 | fileName += ":MUON_Efficiency"; | |
0ed78680 | 31 | TString suffix = (!extension.IsNull()) ? Form("_%s",extension.Data()) : ""; |
32 | fileName += suffix; | |
e1ec553d | 33 | |
34 | ||
35 | // Create and configure task | |
0ed78680 | 36 | TString name = Form("MuonTrackingEfficiency%s",extension.Data()); |
37 | AliAnalysisTaskMuonTrackingEff* taskMuonTrackingEff = new AliAnalysisTaskMuonTrackingEff(name.Data()); | |
38 | taskMuonTrackingEff->SetMuonTrackCuts(trackCuts); | |
e1ec553d | 39 | |
6db6876c | 40 | // Add to the manager |
41 | mgr->AddTask(taskMuonTrackingEff); | |
e1ec553d | 42 | |
43 | // Connect input container | |
44 | mgr->ConnectInput (taskMuonTrackingEff, 0, mgr->GetCommonInputContainer()); | |
45 | ||
46 | // Create and connect output containers | |
0ed78680 | 47 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("ClustersCounters%s",suffix.Data()), AliCounterCollection::Class(), AliAnalysisManager::kOutputContainer, fileName); |
48 | AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("TracksDetectedPerChamber%s",suffix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, fileName); | |
49 | AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("TotalTracksPerChamber%s",suffix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, fileName); | |
50 | AliAnalysisDataContainer *coutput4 = mgr->CreateContainer(Form("SingleDetectedPerChamber%s",suffix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, fileName); | |
51 | AliAnalysisDataContainer *coutput5 = mgr->CreateContainer(Form("ExtraHistos%s",suffix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, fileName); | |
e1ec553d | 52 | mgr->ConnectOutput(taskMuonTrackingEff, 1, coutput1); |
53 | mgr->ConnectOutput(taskMuonTrackingEff, 2, coutput2); | |
54 | mgr->ConnectOutput(taskMuonTrackingEff, 3, coutput3); | |
55 | mgr->ConnectOutput(taskMuonTrackingEff, 4, coutput4); | |
8bd6d05b | 56 | mgr->ConnectOutput(taskMuonTrackingEff, 5, coutput5); |
e1ec553d | 57 | |
58 | return taskMuonTrackingEff; | |
6db6876c | 59 | } |
8bd6d05b | 60 |