]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TOF/AddTaskTOFqaID.C
add the possibility of changing the downscaling factors via shell environment (for...
[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 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;
10
11 AliAnalysisTaskSE * AddTaskTOFqaID(UInt_t triggerMask = kTriggerMask, Bool_t flagEnableAdvancedCheck=kFALSE, Bool_t isMC = kFALSE, Short_t absPdgCode = 0) 
12 {
13   // Task for checking TOF QA
14  
15   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
16   if (!mgr) {
17     ::Error("AddTask", "No analysis manager to connect to.");
18     return NULL;
19   }   
20
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");
24     return NULL;
25   }
26   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
27  
28   if (isMC && (absPdgCode<0)) {
29     ::Error("AddTask","Invalid selected PDG code for MC. Set absPdgCode=0 for no specie selection.");
30   }
31  
32   // Create the task
33   AliAnalysisTaskTOFqaID *task = new AliAnalysisTaskTOFqaID(Form("taskTOFqaID_%i",absPdgCode));
34   task->EnableAdvancedCheck(flagEnableAdvancedCheck);
35   task->SetSelectMCspecies(isMC, absPdgCode);
36   task->SelectCollisionCandidates(triggerMask);
37
38   //AliLog::SetClassDebugLevel("AliAnalysisTaskTOFqa",1);
39   mgr->AddTask(task);
40
41   /* cuts used for QA in 2010 p-p */
42   /*
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);
53   */
54   /* standard cuts ITS-TPC 2010 */
55   AliESDtrackCuts* esdTrackCutsStd2010 = new AliESDtrackCuts("AliESDtrackCuts", "Standard2010");
56   // TPC  
57   esdTrackCutsStd2010->SetMinNClustersTPC(70); 
58   esdTrackCutsStd2010->SetMaxChi2PerClusterTPC(4);
59   esdTrackCutsStd2010->SetAcceptKinkDaughters(kFALSE); 
60   esdTrackCutsStd2010->SetRequireTPCRefit(kTRUE);
61   // ITS
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);
69
70   AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");
71   trackFilter->AddCuts(esdTrackCutsStd2010);
72   task->SetTrackFilter(trackFilter);
73    
74   TString partName(task->GetSpeciesName(absPdgCode));
75
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()));
83
84   // Attach i/o
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);
91   return task;
92 }