]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/QATasks/macros/AddTaskQAHighPtDeDx.C
First preliminary tasks for PWGLF production QA
[u/mrichter/AliRoot.git] / PWGLF / QATasks / macros / AddTaskQAHighPtDeDx.C
1
2
3 AliAnalysisTask* AddTask(Bool_t AnalysisMC, const Char_t* taskname, Int_t typerun, Float_t minc[], Float_t maxc[] )
4 {
5   // Creates a pid task and adds it to the analysis manager
6   
7   // Get the pointer to the existing analysis manager via the static
8   //access method
9   //=========================================================================
10   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11   if (!mgr) {
12     Error("AddTaskHighPtDeDx", "No analysis manager to connect to.");
13     return NULL;
14   }  
15   
16   // Check the analysis type using the event handlers connected to the
17   // analysis manager The availability of MC handler can also be
18   // checked here.
19   // =========================================================================
20   if (!mgr->GetInputEventHandler()) {
21     Error("AddTaskHighPtDeDx", "This task requires an input event handler");
22     return NULL;
23   }  
24   
25
26
27
28   AliAnalysisFilter* trackFilterGolden = new AliAnalysisFilter("trackFilter");
29   AliESDtrackCuts* esdTrackCutsGolden = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE,1);
30   trackFilterGolden->AddCuts(esdTrackCutsGolden);
31   
32   AliAnalysisFilter* trackFilterTPC = new AliAnalysisFilter("trackFilterTPC");
33   AliESDtrackCuts* esdTrackCutsTPC = 
34     AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
35   trackFilterTPC->AddCuts(esdTrackCutsTPC);
36   
37
38
39   // Create the task and configure it 
40   //========================================================================
41   if(typerun==2){//heavy ion analysis
42     
43     
44     AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx[6];
45     for( Int_t i=0; i<6; ++i ){
46       taskHighPtDeDx[i]=0;
47       Char_t TaskName[256]={0};
48       sprintf(TaskName,"%s_%1.0f_%1.0f",taskname,minc[i],maxc[i]);
49       
50       taskHighPtDeDx[i] = new AliAnalysisTaskQAHighPtDeDx(TaskName);
51       TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
52       taskHighPtDeDx[i]->SetAnalysisType(type);
53       taskHighPtDeDx[i]->SetAnalysisMC(AnalysisMC);
54       taskHighPtDeDx[i]->SetAnalysisPbPb(kTRUE);
55       taskHighPtDeDx[i]->SetDebugLevel(0);
56       taskHighPtDeDx[i]->SetEtaCut(0.8);
57       taskHighPtDeDx[i]->SetVtxCut(10.0);
58       taskHighPtDeDx[i]->SetCentralityEstimator(centralityEstimator);
59       taskHighPtDeDx[i]->SetTrigger(kTriggerInt);
60       taskHighPtDeDx[i]->SetMinCent(minc[i]);
61       taskHighPtDeDx[i]->SetMaxCent(maxc[i]);
62       taskHighPtDeDx[i]->SetPileUpRej(ispileuprej);
63   
64       taskHighPtDeDx[i]->SetTrackFilterGolden(trackFilterGolden);
65       taskHighPtDeDx[i]->SetTrackFilterTPC(trackFilterTPC);
66       taskHighPtDeDx[i]->SetStoreMcIn(analysisMC);
67
68       mgr->AddTask(taskHighPtDeDx[i]);
69       
70     }
71     
72     // Create ONLY the output containers for the data produced by the
73     // task.  Get and connect other common input/output containers via
74     // the manager as below
75     //=======================================================================
76     AliAnalysisDataContainer *cout_hist[6];
77     for( Int_t i=0; i<6; ++i ){
78       
79       cout_hist[i]=0;
80       Char_t outFileName[256]={0};
81       sprintf(outFileName,"%s_%1.0f_%1.0f.root",taskname,minc[i],maxc[i]);
82       //AliAnalysisDataContainer *cout_hist    = 0;
83       
84       cout_hist[i] = mgr->CreateContainer(Form("output_%1.0f_%1.0f",minc[i],maxc[i]), TList::Class(), AliAnalysisManager::kOutputContainer, outFileName);
85       mgr->ConnectInput (taskHighPtDeDx[i], 0, mgr->GetCommonInputContainer());
86       mgr->ConnectOutput(taskHighPtDeDx[i], 1, cout_hist[i]);
87       
88     }  
89     
90     // Return task pointer at the end
91     return taskHighPtDeDx[0];
92   }
93   if(typerun==3){//pp analysis
94   
95     
96     AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx = new AliAnalysisTaskQAHighPtDeDx("taskHighPtDeDxpp");
97     TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
98     taskHighPtDeDx->SetAnalysisType(type);
99     taskHighPtDeDx->SetAnalysisMC(AnalysisMC);
100     taskHighPtDeDx->SetAnalysisPbPb(kFALSE);
101     taskHighPtDeDx->SetDebugLevel(0);
102     taskHighPtDeDx->SetEtaCut(0.8);
103     taskHighPtDeDx->SetVtxCut(10.0);
104     taskHighPtDeDx->SetTrigger(kTriggerInt);
105     taskHighPtDeDx->SetPileUpRej(ispileuprej);
106     //Set Filtesr
107     taskHighPtDeDx->SetTrackFilterGolden(trackFilterGolden);
108     taskHighPtDeDx->SetTrackFilterTPC(trackFilterTPC);
109     taskHighPtDeDx->SetStoreMcIn(analysisMC);     // def: kFALSE
110
111     mgr->AddTask(taskHighPtDeDx);
112       
113     // Create ONLY the output containers for the data produced by the
114     // task.  Get and connect other common input/output containers via
115     // the manager as below
116     //=======================================================================
117   
118     AliAnalysisDataContainer *cout_histdedx;
119
120     cout_histdedx=0;
121     Char_t outFileName[256]={0};
122     sprintf(outFileName,"%s.root",taskname);
123     //AliAnalysisDataContainer *cout_hist    = 0;
124  
125     cout_histdedx = mgr->CreateContainer("outputdedx", TList::Class(), AliAnalysisManager::kOutputContainer, outFileName);
126     mgr->ConnectInput (taskHighPtDeDx, 0, mgr->GetCommonInputContainer());
127     mgr->ConnectOutput(taskHighPtDeDx, 1, cout_histdedx);
128  
129     // Return task pointer at the end
130     return taskHighPtDeDx;
131     
132
133     
134     
135     
136   }
137
138
139
140  if(typerun==4){//pPb analysis
141    cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<                 Runing pPb    <<<<<<<<<<<<<<"<<endl;
142     
143     AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx = new AliAnalysisTaskQAHighPtDeDx("taskHighPtDeDxpp");
144     TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
145     taskHighPtDeDx->SetAnalysisType(type);
146     taskHighPtDeDx->SetAnalysisMC(AnalysisMC);
147     taskHighPtDeDx->SetAnalysisPbPb(kTRUE);
148     taskHighPtDeDx->SetMinCent(-2000);
149     taskHighPtDeDx->SetMaxCent(2000);
150     taskHighPtDeDx->SetDebugLevel(0);
151     taskHighPtDeDx->SetEtaCut(0.8);
152     taskHighPtDeDx->SetVtxCut(10.0);
153     taskHighPtDeDx->SetTrigger(kTriggerInt);
154     taskHighPtDeDx->SetPileUpRej(ispileuprej);
155     taskHighPtDeDx->SetCentralityEstimator(centralityEstimator);
156     taskHighPtDeDx->SetStoreMcIn(analysisMC);     // def: kFALSE
157     //Set Filtesr
158     taskHighPtDeDx->SetTrackFilterGolden(trackFilterGolden);
159     taskHighPtDeDx->SetTrackFilterTPC(trackFilterTPC);
160  
161     mgr->AddTask(taskHighPtDeDx);
162       
163     // Create ONLY the output containers for the data produced by the
164     // task.  Get and connect other common input/output containers via
165     // the manager as below
166     //=======================================================================
167   
168     AliAnalysisDataContainer *cout_histdedx;
169
170     cout_histdedx=0;
171     Char_t outFileName[256]={0};
172     sprintf(outFileName,"%s.root",taskname);
173     //AliAnalysisDataContainer *cout_hist    = 0;
174  
175     cout_histdedx = mgr->CreateContainer("outputdedx", TList::Class(), AliAnalysisManager::kOutputContainer, outFileName);
176     mgr->ConnectInput (taskHighPtDeDx, 0, mgr->GetCommonInputContainer());
177     mgr->ConnectOutput(taskHighPtDeDx, 1, cout_histdedx);
178  
179     // Return task pointer at the end
180     return taskHighPtDeDx;
181     
182
183     
184     
185     
186   }
187
188
189
190   
191   
192 }