]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskMinijet.C
Modifications of filterbit setting, trigger settings, AOD and ESD case
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskMinijet.C
1 AliAnalysisTaskMinijet* AddTaskMinijet(Int_t runNumber     =    -1, 
2                                        TString format      = "esd",
3                                        Bool_t  useMC       = false, 
4                                        Bool_t  mcOnly      = false,
5                                        Bool_t  useHighMult = false
6                                        )
7 {
8   //Seetings
9   Float_t ptTrigMin   = 0.7;
10   Float_t ptAssocMin  = 0.4;
11   Float_t maxVtxZ     = 10.;
12   Int_t filterBit     = 128;
13   Int_t debugLevel    =   0;
14
15   // Get the pointer to the existing analysis manager via the static access method.
16   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
17   if (!mgr) mgr = new AliAnalysisManager("Analysis train");
18
19   // Set TPC track cuts (used for ESDs) 
20   AliESDtrackCuts* esdTrackCutsTPC=0x0;
21   if(!format.CompareTo("esd")){
22     esdTrackCutsTPC = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
23     esdTrackCutsTPC->SetMinNClustersTPC(80);
24   }
25
26   // First task for min bias events
27   AliAnalysisTaskMinijet *taskMB = 
28     new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet Min bias");
29   taskMB->SetUseMC(useMC,mcOnly);
30   taskMB->SetTriggerPtCut(ptTrigMin);
31   taskMB->SetAssociatePtCut(ptAssocMin);
32   taskMB->SetMaxVertexZ(maxVtxZ);
33   taskMB->SetTriggerMask(AliVEvent::kMB);
34   // taskMB->SelectCollisionCandidates(AliVEvent::kMB);//MB  //now inside task
35   taskMB->SetFilterBit(filterBit); // used only in AOD case
36   taskMB->SetDebugLevel(debugLevel);
37  
38   if(!format.CompareTo("esd")){
39     taskMB->SetCuts(esdTrackCutsTPC);
40     taskMB->SetModeEsdAod(0); // 0 = reading ESDs
41   }  
42   else if (!format.CompareTo("aod")){
43     // Cuts already applied through esd filter
44     taskMB->SetModeEsdAod(1); // 1 = reading AODs
45   }
46
47   // Second task for high multipliciy events
48   AliAnalysisTaskMinijet *taskHM =0x0;
49   if(useHighMult){
50     taskHM  = new AliAnalysisTaskMinijet("AliAnalysisTaskMinijet HighMult");
51     taskHM->SetUseMC(useMC, mcOnly);
52     taskHM->SetTriggerPtCut(ptTrigMin);
53     taskHM->SetAssociatePtCut(ptAssocMin);
54     taskHM->SetMaxVertexZ(maxVtxZ);
55     taskHM->SetTriggerMask(AliVEvent::kHighMult);
56     //taskHM->SelectCollisionCandidates(AliVEvent::kHighMult); // now inside task
57     taskMB->SetFilterBit(filterBit); // used only in AOD case
58     taskHM->SetDebugLevel(debugLevel);
59
60     if(!format.CompareTo("esd")){
61       taskHM->SetCuts(esdTrackCutsTPC);
62       taskHM->SetModeEsdAod(0); // 0 = reading ESDs
63     }
64     else if (!format.CompareTo("aod")){
65       //cuts already applied through esd filter during writing of AODs
66       taskHM->SetModeEsdAod(1); // 1 = reading AODs
67     }
68     
69   }
70
71   //create output containers 
72   AliAnalysisDataContainer *outputMB  = 0x0;
73   AliAnalysisDataContainer *outputHM = 0x0;
74
75   if(runNumber>0){ 
76     outputMB  =  mgr->CreateContainer("MiniJets",TList::Class(),
77                                       AliAnalysisManager::kOutputContainer, 
78                                       Form("run%d.root",runNumber));
79     if(useHighMult){
80       outputHM =  mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
81                                        AliAnalysisManager::kOutputContainer, 
82                                        Form("run%d.root",runNumber));
83     }
84   }
85   else{
86     outputMB  = mgr->CreateContainer("MiniJets",TList::Class(),
87                                      AliAnalysisManager::kOutputContainer, 
88                                      Form("%s:PWG4_MiniJets",
89                                           AliAnalysisManager::GetCommonFileName()));
90     if(useHighMult){
91       outputHM = mgr->CreateContainer("MiniJets_HighMult",TList::Class(),
92                                       AliAnalysisManager::kOutputContainer, 
93                                       Form("%s:PWG4_MiniJets",
94                                            AliAnalysisManager::GetCommonFileName()));
95     }
96   }
97   
98
99   // Add first task to the manager and connect container
100   mgr->AddTask(taskMB);
101   mgr->ConnectInput(taskMB, 0,  mgr->GetCommonInputContainer());
102   mgr->ConnectOutput(taskMB, 1, outputMB);
103   
104   
105   // Add second task to the manager and connect container
106   if(useHighMult){
107     mgr->AddTask(taskHM);
108     mgr->ConnectInput (taskHM, 0,  mgr->GetCommonInputContainer());
109     mgr->ConnectOutput(taskHM, 1, outputHM);
110   }
111   
112   return taskMB;
113
114 }
115