]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/macros/minijet/AddTaskMinijet.C
add histogram for event statistics, add flag which can switch on/off three particle...
[u/mrichter/AliRoot.git] / PWGCF / Correlations / macros / minijet / AddTaskMinijet.C
1 AliAnalysisTaskMinijet* AddTaskMinijet(Int_t runNumber     =    -1, 
2                                        TString format      = "aod",
3                                        Bool_t  useMC       = false, 
4                                        Bool_t  mcOnly      = false,
5                                        Bool_t  useHighMult = false,
6                                        Float_t ptTrigMin   =   0.7,
7                                        Float_t ptAssocMin  =   0.4,
8                                        Float_t maxVtxZ     =   10.,
9                                        Int_t   filterBit   =    96,
10                                        Int_t   debugLevel  =     0,
11                                        Float_t maxEta      =   0.9,
12                                        Float_t ptMin       =   0.2,
13                                        Float_t ptMax       =  50.0,
14                                        Bool_t  checkSDD    = false,
15                                        Int_t   checkOption =     1,
16                                        Bool_t  onlyPrim    = true,
17                                        Bool_t  corrStrange = true,
18                                        Bool_t  threePart   = false)
19 {
20   
21   // Get the pointer to the existing analysis manager via the static access method
22   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
23   if (!mgr) mgr = new AliAnalysisManager("Analysis train");
24
25   // Set TPC track cuts (used for ESDs) 
26   AliESDtrackCuts* esdTrackCutsTPC=0x0;
27   if(!format.CompareTo("esd")){
28     esdTrackCutsTPC = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
29     esdTrackCutsTPC->SetMinNClustersTPC(80);
30   }
31
32   // First task for min bias events
33   AliAnalysisTaskMinijet *taskMB = 
34     new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet Min bias");
35   taskMB->SetUseMC(useMC,mcOnly);
36   taskMB->SetTriggerPtCut(ptTrigMin);
37   taskMB->SetAssociatePtCut(ptAssocMin);
38   taskMB->SetMaxEta(maxEta);
39   taskMB->SetPtRange(ptMin, ptMax);
40   taskMB->SetMaxVertexZ(maxVtxZ);
41   taskMB->SetTriggerMask(AliVEvent::kMB);
42   // taskMB->SelectCollisionCandidates(AliVEvent::kMB);//MB  //now inside task
43   taskMB->SetFilterBit(filterBit); // used only in AOD case
44   taskMB->SetCheckSDD(checkSDD, checkOption);
45   taskMB->SetCorrStrangeness(corrStrange);
46   taskMB->SetThreeParticleCorrelation(threePart);
47   taskMB->SetDebugLevel(debugLevel);
48
49   //use this only for correction map plots -> Split contmaintion and rec efficiency
50   taskMB->SetAnalyseOnlyPrimaries(onlyPrim);
51  
52   if(!format.CompareTo("esd")){
53     taskMB->SetCuts(esdTrackCutsTPC);
54     taskMB->SetModeEsdAod(0); // 0 = reading ESDs
55   }  
56   else if (!format.CompareTo("aod")){
57     // Cuts already applied through esd filter
58     taskMB->SetModeEsdAod(1); // 1 = reading AODs
59   }
60
61   // Second task for high multipliciy events
62   AliAnalysisTaskMinijet *taskHM =0x0;
63   if(useHighMult){
64     taskHM  = new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet HighMult");
65     taskHM->SetUseMC(useMC, mcOnly);
66     taskHM->SetTriggerPtCut(ptTrigMin);
67     taskHM->SetAssociatePtCut(ptAssocMin);
68     taskHM->SetMaxEta(maxEta);
69     taskHM->SetPtRange(ptMin, ptMax);
70     taskHM->SetMaxVertexZ(maxVtxZ);
71     taskHM->SetTriggerMask(AliVEvent::kHighMult);
72     //taskHM->SelectCollisionCandidates(AliVEvent::kHighMult); // now inside task
73     taskHM->SetFilterBit(filterBit); // used only in AOD case
74     taskHM->SetCheckSDD(checkSDD, checkOption);
75     taskHM->SetCorrStrangeness(corrStrange);
76     taskHM->SetThreeParticleCorrelation(threePart);
77     taskHM->SetDebugLevel(debugLevel);
78
79     if(!format.CompareTo("esd")){
80       taskHM->SetCuts(esdTrackCutsTPC);
81       taskHM->SetModeEsdAod(0); // 0 = reading ESDs
82     }
83     else if (!format.CompareTo("aod")){
84       //cuts already applied through esd filter during writing of AODs
85       taskHM->SetModeEsdAod(1); // 1 = reading AODs
86     }
87     
88   }
89
90   //create output containers 
91   AliAnalysisDataContainer *outputMB  = 0x0;
92   AliAnalysisDataContainer *outputHM = 0x0;
93
94   if(runNumber>0){ 
95     outputMB  =  mgr->CreateContainer("MiniJets",TList::Class(),
96                                       AliAnalysisManager::kOutputContainer, 
97                                       Form("run%d.root",runNumber));
98     if(useHighMult){
99       outputHM =  mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
100                                        AliAnalysisManager::kOutputContainer, 
101                                        Form("run%d.root",runNumber));
102     }
103   }
104   else{
105     outputMB  = mgr->CreateContainer("MiniJets",TList::Class(),
106                                      AliAnalysisManager::kOutputContainer, 
107                                      Form("%s:PWG4_MiniJets",
108                                           AliAnalysisManager::GetCommonFileName()));
109     if(useHighMult){
110       outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
111                                       AliAnalysisManager::kOutputContainer, 
112                                       Form("%s:PWG4_MiniJets",
113                                            AliAnalysisManager::GetCommonFileName()));
114     }
115   }
116   
117
118   // Add first task to the manager and connect container
119   mgr->AddTask(taskMB);
120   mgr->ConnectInput(taskMB, 0,  mgr->GetCommonInputContainer());
121   mgr->ConnectOutput(taskMB, 1, outputMB);
122   
123   
124   // Add second task to the manager and connect container
125   if(useHighMult){
126     mgr->AddTask(taskHM);
127     mgr->ConnectInput (taskHM, 0,  mgr->GetCommonInputContainer());
128     mgr->ConnectOutput(taskHM, 1, outputHM);
129   }
130   
131   return taskMB;
132
133 }
134