]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/AddTask_dNdPtpPb.C
60295dcba2635bdc377f03f955828a589bc20fd7
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / ChargedHadrons / dNdPt / macros / AddTask_dNdPtpPb.C
1 void AddTask_dNdPtpPb(UInt_t uTriggerMask = AliVEvent::kINT7, Int_t iCutMode = 2014, char *contName = "dNdPtpPb", Float_t fEta = -10. )
2 {
3 /*
4 CheckLoadLibrary("libPWG0base");
5 CheckLoadLibrary("libPWG0dep");
6 CheckLoadLibrary("libPWG0selectors");
7 */
8
9   //Get current Analysis Manager
10   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11
12   if (!mgr) {
13     Error("AddTask_dNdPtAnalysis_TPCITS", "No analysis manager found.");
14     return 0;
15   }
16
17   // Switch off all AliInfo (too much output!!!)
18 //  AliLog::SetGlobalLogLevel(AliLog::kError);
19 //  mgr->SetDebugLevel(0);
20
21   //
22   // Create event cuts
23   //
24   Float_t zvWindow = 30. ;
25
26   AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
27   evtCuts->SetZvRange(-zvWindow,zvWindow);
28   evtCuts->SetMeanXYZv(0.0,0.0,0.0);
29   evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
30   evtCuts->SetTriggerRequired(kTRUE);
31   //evtCuts->SetTriggerRequired(kFALSE);
32
33   //
34   // Create geom. acceptance cuts
35   //
36   //Float_t etaWindow = 1.0;
37   Float_t eta1 = -0.765409; 
38   Float_t eta2 = -0.165409; 
39   
40   if(fEta > -10)
41   {
42         eta1 = -1.0*fEta;
43         eta2 = fEta;
44   }
45   
46   Float_t ptMin = 0.1 ;
47
48   AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
49   accCuts->SetEtaRange(eta1,eta2);
50   accCuts->SetPtRange(ptMin,1.e10);
51
52   //
53   // Create standard esd track cuts
54   //
55   Int_t cutMode = iCutMode;
56
57   gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/CreatedNdPtTrackCuts.C");
58   //gROOT->LoadMacro("./CreatedNdPtTrackCuts.C");
59   AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
60   if (!esdTrackCuts) {
61     printf("ERROR: esdTrackCuts could not be created\n")
62     return;
63   } else {
64     //esdTrackCuts->SetHistogramsOn(kTRUE);
65     esdTrackCuts->SetHistogramsOn(kTRUE);
66   }
67
68   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
69
70   //
71   // Create task
72   //
73   AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask_TPCITS");
74   task->SetUseMCInfo(hasMC);
75
76   // trigger  
77   task->SelectCollisionCandidates(uTriggerMask); 
78
79   //
80   // set analysis options from the Helper here !!!
81   //
82
83   //AliTriggerAnalysis::Trigger trigger = AliTriggerAnalysis::kMB1;
84   AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPCITS;
85   AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ;
86
87   //
88   // Create analysis object
89   //
90
91   AlidNdPtAnalysispPb *fdNdPtAnalysis = new AlidNdPtAnalysispPb("dNdPtAnalysis_TPCITS","dN/dPt Analysis with TPC-ITS tracking");//Now AnalysispPb before: Analzsiis
92   fdNdPtAnalysis->SetEventCuts(evtCuts);
93   fdNdPtAnalysis->SetAcceptanceCuts(accCuts);
94   fdNdPtAnalysis->SetTrackCuts(esdTrackCuts);
95   //fdNdPtAnalysis->SetBackgroundCuts(backCuts);
96   fdNdPtAnalysis->SetAnalysisMode(analysisMode); 
97   fdNdPtAnalysis->SetParticleMode(particleMode); 
98   
99   //j kCINT5 should work for 2012 data, kINT7 for 2013
100   
101   //fdNdPtAnalysis->SetTrigger(trigger);
102  // fdNdPtAnalysis->SetTriggerMask(AliVEvent::kCINT5);
103   fdNdPtAnalysis->SetTriggerMask(uTriggerMask);
104   //fdNdPtAnalysis->SetTriggerMask(AliVEvent::kEMC1);  
105   if(hasMC) 
106   {
107     //physTrigSel->SetAnalyzeMC();
108     //fdNdPtAnalysis->SetPhysicsTriggerSelection(physTrigSel); 
109
110     fdNdPtAnalysis->SetUseMCInfo(kTRUE);
111     fdNdPtAnalysis->SetHistogramsOn(kTRUE);
112     //fdNdPtAnalysis->SetHistogramsOn(kFALSE);
113   }
114   else { // online trigger
115 //     physTrigSel->SetUseBXNumbers();
116 //     physTrigSel->SetComputeBG();
117 //     fdNdPtAnalysis->SetPhysicsTriggerSelection(physTrigSel); 
118   }
119   
120     // change binning
121     Int_t multNbins = 152;  
122     Double_t binsMult[153];
123     for (int i=0; i<=multNbins; i++) { binsMult[i] = -0.5 + i; }
124     binsMult[152] = 1000.;
125     // change binning
126     const Int_t ptNbins = 81;
127     Double_t bins[82] = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0, 32.0, 34.0, 36.0, 40.0, 45.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 180.0, 200.0};
128     Double_t* binsPt = new Double_t[82];
129     for (int i=0; i<82; i++) {binsPt[i] = bins[i];}
130     fdNdPtAnalysis->SetBinsPt(ptNbins, binsPt);
131     fdNdPtAnalysis->SetBinsPtCorr(ptNbins, binsPt);  
132     fdNdPtAnalysis->SetBinsMult(multNbins, binsMult);
133     
134     
135        // y shift -0.465409
136     const Int_t EtaNbins = 30;
137     Double_t binse[31] = {-1.465409,-1.365409,-1.265409,-1.165409,-1.065409,-0.965409,-0.865409,-0.765409,-0.665409,-0.565409,-0.465409,-0.365409,-0.265409,-0.165409,-0.065409,0.034591,0.134591,0.234591,0.334591,0.434591,0.534591,0.634591,0.734591,0.834591,0.934591,1.034591,1.134591,1.234591,1.334591,1.434591,1.534591};
138         Double_t* binsEta = new Double_t[31];
139     for (int i=0; i<31; i++) {binsEta[i] = binse[i];}
140     fdNdPtAnalysis->SetBinsEta(EtaNbins,binsEta);     
141     
142     
143     // set centrality estimator
144    // fdNdPtAnalysis->SetCentralityEstimators("NPA");
145   
146
147   // Add analysis object
148   task->AddAnalysisObject( fdNdPtAnalysis );
149         
150   // Add task
151   mgr->AddTask(task);
152
153   // Create containers for input
154   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
155  
156   TString outputFileName = AliAnalysisManager::GetCommonFileName();
157
158 //  AliAnalysisDataContainer *coutput = mgr->CreateContainer("jgronef_dNdPtpPb_TPCITS", TList::Class(), AliAnalysisManager::kOutputContainer, "jgronef_dNdPtpPb_TPCITS.root");   //    <-- Old Way works on Batch
159  
160    AliAnalysisDataContainer *coutput = mgr->CreateContainer(Form("%s", contName), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:dNdPtHistos", mgr->GetCommonFileName())); //    <-- New Way changed to work on Grid
161   
162   
163   mgr->ConnectInput(task, 0, cinput);
164   mgr->ConnectOutput(task, 1, coutput);
165     
166   
167   /*
168    //                                                         Aus Phillips Macro kopiert:
169   
170    // Add task
171    mgr->AddTask(task);
172    
173    // Create containers for input
174    AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
175    
176    TString outputFileName = AliAnalysisManager::GetCommonFileName();
177    
178    AliAnalysisDataContainer *coutput  = mgr->CreateContainer("dNdPtPbPb", 
179                                                              TList::Class(),
180                                                              AliAnalysisManager::kOutputContainer,      
181                                                              Form("%s:dNdPtHistos", mgr->GetCommonFileName()));
182                                                              
183                                                              mgr->ConnectInput(task, 0, cinput);
184                                                              mgr->ConnectOutput(task, 1, coutput);
185                                                              
186                                                             */ 
187   
188   
189   
190
191 }
192