]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskPWG4HighPtQAMC.C
updates fro MC running (Marta)
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4HighPtQAMC.C
1
2 //DEFINITION OF A FEW CONSTANTS
3
4 AliPWG4HighPtQAMC* AddTaskPWG4HighPtQAMC(char *prodType = "LHC10e14", int trackType = 0)
5 {
6   // Creates HighPtQAMC analysis task and adds it to the analysis manager.
7   
8   // A. Get the pointer to the existing analysis manager via the static access method.
9   //==============================================================================
10   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11   if (!mgr) {
12     Error("AddTaskPWG4HighPtQMC", "No analysis manager to connect to.");
13     return NULL;
14   }  
15
16   // B. Check the analysis type using the event handlers connected to the analysis
17   //    manager. The availability of MC handler can also be checked here.
18   //==============================================================================
19   if (!mgr->GetInputEventHandler()) {
20     ::Error("AddPWG4TaskHighPtQAMC", "This task requires an input event handler");
21     return NULL;
22   }  
23   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
24   const char *analysisType = "ESD";
25
26   // C. Create the task, add it to manager.
27   //===========================================================================
28  
29   //CREATE THE  CUTS -----------------------------------------------
30   //Use AliESDtrackCuts
31   AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
32   //Standard Cuts
33   //Set track cuts for global tracks
34   if(trackType==0) {
35     trackCuts = trackCuts->GetStandardITSTPCTrackCuts2010(kTRUE);//Primary Track Selection
36     trackCuts->SetRequireITSRefit(kTRUE);
37   }
38   //Set track cuts for TPConly tracks
39   if(trackType==1 || trackType==2) { 
40     trackCuts = trackCuts->GetStandardTPCOnlyTrackCuts(); 
41     trackCuts->SetMinNClustersTPC(70);
42   }
43   trackCuts->SetEtaRange(-0.9,0.9);
44   trackCuts->SetPtRange(0.15, 1e10);
45   
46   AliESDtrackCuts *trackCutsITS = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts with ITSrefit");
47   //Cuts SPD || SDD
48   // TPC  
49   trackCutsITS->SetMinNClustersTPC(70);
50   trackCutsITS->SetMaxChi2PerClusterTPC(4);
51   trackCutsITS->SetAcceptKinkDaughters(kFALSE);
52   trackCutsITS->SetRequireTPCRefit(kTRUE);
53   // ITS
54   trackCutsITS->SetRequireITSRefit(kTRUE);
55   trackCutsITS->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
56   trackCutsITS->SetClusterRequirementITS(AliESDtrackCuts::kSDD, AliESDtrackCuts::kFirst);
57
58   trackCutsITS->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
59   trackCutsITS->SetMaxDCAToVertexZ(2);
60   trackCutsITS->SetDCAToVertex2D(kFALSE);
61   trackCutsITS->SetRequireSigmaToVertex(kFALSE);
62
63   trackCutsITS->SetEtaRange(-0.9,0.9);
64   trackCutsITS->SetPtRange(0.15, 1e10);
65   trackCutsITS->SetRequireITSRefit(kTRUE);
66
67   //Create the task
68   AliPWG4HighPtQAMC *taskPWG4QAMC = new AliPWG4HighPtQAMC(Form("AliPWG4HighPtQAMC%d",trackType));
69   taskPWG4QAMC->SetCuts(trackCuts);
70   taskPWG4QAMC->SetCutsITS(trackCutsITS);
71   taskPWG4QAMC->SetTrackType(trackType);
72   
73   if(!strcmp(prodType, "LHC10e14")  || !strcmp(prodType, "PbPb")) taskPWG4QAMC->SetPtMax(500.);
74   else taskPWG4QAMC->SetPtMax(100.);
75  
76   // E. Create ONLY the output containers for the data produced by the task.
77   // Get and connect other common input/output containers via the manager as below
78   //==============================================================================
79
80   //------ input data ------
81   //  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
82   printf("Create output containers \n");
83   TString outputfile = AliAnalysisManager::GetCommonFileName();
84   outputfile += Form(":PWG4_HighPtQAMC%d",trackType);
85   
86   AliAnalysisDataContainer *cout_hist1 = mgr->CreateContainer(Form("qa_histsMC%d",trackType), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
87   AliAnalysisDataContainer *cout_hist2 = mgr->CreateContainer(Form("qa_histsMCITS%d",trackType), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);  
88
89   mgr->AddTask(taskPWG4QAMC);
90   mgr->ConnectInput(taskPWG4QAMC,0,mgr->GetCommonInputContainer());
91   mgr->ConnectOutput(taskPWG4QAMC,0,cout_hist1);
92   mgr->ConnectOutput(taskPWG4QAMC,1,cout_hist2);
93
94     // Return task pointer at the end
95   return taskPWG4QAMC;
96 }