]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskPWG4HighPtQAMC.C
Fixed EINCLUDE
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4HighPtQAMC.C
1 void AddTaskPWG4HighPtQAMCAll(char *prodType = "LHC10e14") {
2
3   AliPWG4HighPtQAMC *taskQAMC00 = AddTaskPWG4HighPtQAMC(prodType,0,0);
4   AliPWG4HighPtQAMC *taskQAMC00 = AddTaskPWG4HighPtQAMC(prodType,0,1);
5   AliPWG4HighPtQAMC *taskQAMC00 = AddTaskPWG4HighPtQAMC(prodType,0,2);
6   AliPWG4HighPtQAMC *taskQAMC00 = AddTaskPWG4HighPtQAMC(prodType,0,3);
7   AliPWG4HighPtQAMC *taskQAMC10 = AddTaskPWG4HighPtQAMC(prodType,1,0);
8   AliPWG4HighPtQAMC *taskQAMC20 = AddTaskPWG4HighPtQAMC(prodType,2,0);
9
10 }
11
12 AliPWG4HighPtQAMC* AddTaskPWG4HighPtQAMC(char *prodType = "LHC10e14", Int_t trackType = 0, Int_t cuts =0)
13 {
14   // Creates HighPtQAMC analysis task and adds it to the analysis manager.
15
16   //Track types:
17   //trackType
18   //           0: global tracks
19   //           1: TPConly tracks
20   //           2: TPConly constrained tracks
21   
22   // A. Get the pointer to the existing analysis manager via the static access method.
23   //==============================================================================
24   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
25   if (!mgr) {
26     Error("AddTaskPWG4HighPtQMC", "No analysis manager to connect to.");
27     return NULL;
28   }  
29
30   // B. Check the analysis type using the event handlers connected to the analysis
31   //    manager. The availability of MC handler can also be checked here.
32   //==============================================================================
33   if (!mgr->GetInputEventHandler()) {
34     ::Error("AddPWG4TaskHighPtQAMC", "This task requires an input event handler");
35     return NULL;
36   }  
37   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
38   const char *analysisType = "ESD";
39
40   // C. Create the task, add it to manager.
41   //===========================================================================
42  
43   //CREATE THE  CUTS -----------------------------------------------
44   //Use AliESDtrackCuts
45   AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
46   //Standard Cuts
47   //Set track cuts for global tracks
48   if(trackType==0 && cuts==0) {
49     // tight global tracks
50     trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1);
51     trackCuts->SetMinNCrossedRowsTPC(120);
52     trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.1);// essentially swittches it off
53     trackCuts->SetMaxChi2PerClusterITS(36);
54     trackCuts->SetMaxFractionSharedTPCClusters(0.4);
55   }
56   if(trackType==0 && cuts==1) {
57     //Cuts global tracks with ITSrefit requirement for jet analysis
58     // TPC  
59     trackCuts->SetMinNClustersTPC(80);
60     trackCuts->SetMaxChi2PerClusterTPC(4);
61     trackCuts->SetAcceptKinkDaughters(kFALSE);
62     trackCuts->SetRequireTPCRefit(kTRUE);
63     trackCuts->SetMaxFractionSharedTPCClusters(0.4);
64     // ITS
65     trackCuts->SetRequireITSRefit(kTRUE);
66     //accept secondaries
67     trackCuts->SetMaxDCAToVertexXY(2.4);
68     trackCuts->SetMaxDCAToVertexZ(3.2);
69     trackCuts->SetDCAToVertex2D(kTRUE);
70     //reject fakes
71     trackCuts->SetMaxChi2PerClusterITS(36);    
72
73     trackCuts->SetRequireSigmaToVertex(kFALSE);
74     
75   }
76   if(trackType==0 && cuts==2) {
77     //Cuts global tracks with ITSrefit requirement but without SPD
78     // TPC  
79     trackCuts->SetMinNClustersTPC(80);
80     trackCuts->SetMaxChi2PerClusterTPC(4);
81     trackCuts->SetAcceptKinkDaughters(kFALSE);
82     trackCuts->SetRequireTPCRefit(kTRUE);
83     trackCuts->SetMaxFractionSharedTPCClusters(0.4);
84     // ITS
85     trackCuts->SetRequireITSRefit(kTRUE);
86     //accept secondaries
87     trackCuts->SetMaxDCAToVertexXY(2.4);
88     trackCuts->SetMaxDCAToVertexZ(3.2);
89     trackCuts->SetDCAToVertex2D(kTRUE);
90     //reject fakes
91     trackCuts->SetMaxChi2PerClusterITS(36);    
92     trackCuts->SetRequireSigmaToVertex(kFALSE);
93     //no SPD points
94     trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
95   }
96   if(trackType==0 && cuts==3) {
97     // tight global tracks
98     trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kFALSE,1);
99     trackCuts->SetMinNCrossedRowsTPC(120);
100     trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.1);// essentially switches it off
101     trackCuts->SetMaxDCAToVertexXY(2.4);
102     trackCuts->SetMaxDCAToVertexZ(3.2);
103     trackCuts->SetDCAToVertex2D(kTRUE);
104     trackCuts->SetMaxChi2PerClusterITS(36);
105     trackCuts->SetMaxFractionSharedTPCClusters(0.4);
106   }
107  
108   //Set track cuts for TPConly tracks
109   if(trackType==1 || trackType==2) { 
110     trackCuts = trackCuts->GetStandardTPCOnlyTrackCuts(); 
111     trackCuts->SetMinNClustersTPC(70);
112   }
113   trackCuts->SetEtaRange(-0.9,0.9);
114   trackCuts->SetPtRange(0.15, 1e10);
115   
116   //Create the task
117   AliPWG4HighPtQAMC *taskPWG4QAMC = new AliPWG4HighPtQAMC(Form("AliPWG4HighPtQAMC%d",trackType));
118   taskPWG4QAMC->SetCuts(trackCuts);
119   taskPWG4QAMC->SetTrackType(trackType);
120   
121   if(!strcmp(prodType, "LHC10e14")) taskPWG4QAMC->SetPtMax(500.);
122   else taskPWG4QAMC->SetPtMax(100.);
123
124   //taskPWG4QAMC->SetSigmaConstrainedMax(5.);
125
126   // E. Create ONLY the output containers for the data produced by the task.
127   // Get and connect other common input/output containers via the manager as below
128   //==============================================================================
129
130   //------ input data ------
131   //  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
132   printf("Create output containers \n");
133   TString outputfile = AliAnalysisManager::GetCommonFileName();
134   outputfile += Form(":PWG4_HighPtQAMC%d%d",trackType,cuts);
135   
136   AliAnalysisDataContainer *cout_hist1 = mgr->CreateContainer(Form("qa_histsMC%d%d",trackType,cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
137
138   mgr->AddTask(taskPWG4QAMC);
139   mgr->ConnectInput(taskPWG4QAMC,0,mgr->GetCommonInputContainer());
140   mgr->ConnectOutput(taskPWG4QAMC,0,cout_hist1);
141
142   // Return task pointer at the end
143   return taskPWG4QAMC;
144 }