]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetSpectraMECpA.C
Updates from Redmer
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalJetSpectraMECpA.C
1 // $Id$
2
3 AliAnalysisTaskEmcalJetSpectraMECpA* AddTaskEmcalJetSpectraMECpA(
4    const char *outfilename    = "AnalysisOutput.root",
5    UInt_t type                = AliAnalysisTaskEmcal::kTPC,
6    const char *nRhosCh        = "rhoCh",
7    const char *nRhosChEm      = "rhoChEm",
8    const char *nRhosEm      = "rhoEm",
9    TF1 *sfunc                 = 0,
10    const Double_t radius      = 0.2,
11    const Double_t minPhi      = 1.8,
12    const Double_t maxPhi      = 2.74,
13    const Double_t minEta      = -0.3,
14    const Double_t maxEta      = 0.3,
15    const char* usedTracks     = "PicoTracks",
16    const char* outClusName    = "CaloClustersCorr",
17    const Double_t minTrackPt  = 0.15,
18    const Double_t minClusterPt = 0.30,
19    const char *CentEst         = "V0A"
20    )
21 {  
22   // Get the pointer to the existing analysis manager via the static access method.
23   //==============================================================================
24   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
25   if (!mgr)
26   {
27     ::Error("AddTasEmcalJetSpectraMECpA", "No analysis manager to connect to.");
28     return NULL;
29   }  
30   
31   // Check the analysis type using the event handlers connected to the analysis manager.
32   //==============================================================================
33   if (!mgr->GetInputEventHandler())
34   {
35     ::Error("AddTaskEmcalJetSpectraMECpA", "This task requires an input event handler");
36     return NULL;
37   }
38   
39   //Run the jet finder and rho tasks first
40
41   // Some constants for the jet finders
42   const Int_t cKT                 = 0;
43   const Int_t cANTIKT             = 1;
44   const Int_t cFULLJETS           = 0;
45   const Int_t cCHARGEDJETS        = 1;
46   const Int_t cNEUTRALJETS        = 2;
47     
48   float AreaCut = 0.6*radius*radius*TMath::Pi();
49
50   sfunc=new TF1("sfunc","[0]*x*x+[1]*x+[2]",-1,100);
51   sfunc->SetParameter(0,0.0);
52   sfunc->SetParameter(1,0.0);
53   sfunc->SetParameter(2,1.5);
54
55
56   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJet.C");
57   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskRhoSparse.C");
58
59   //const char *nJets;
60   TString nJets("");
61   TString nJetsCh("");
62
63   TString scaledname(Form("%s_Scaled", nRhosCh));
64   TString newrhoname(Form("%s_All", nRhosCh));
65
66   
67   if(!(usedTracks=="")){
68     cout << "USEDTRACKS EXISTS" << usedTracks <<endl;
69     AliEmcalJetTask* jetFinderTaskChBack = AddTaskEmcalJet(usedTracks,"",cKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt);
70
71     AliEmcalJetTask* jetFinderTaskChBackall = AddTaskEmcalJet(usedTracks,"",cKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt,0.01,"Jets_allpt");
72     jetFinderTaskChBackall->SetMinJetPt(0);
73
74     AliEmcalJetTask* jetFinderTaskChSig = AddTaskEmcalJet(usedTracks,"",cANTIKT,radius,cCHARGEDJETS,minTrackPt, minClusterPt);
75
76     AliEmcalJetTask* jetFinderTaskChEmBack = AddTaskEmcalJet(usedTracks,outClusName,cKT,radius,cFULLJETS,minTrackPt, minClusterPt);
77     jetFinderTaskChEmBack->SetMinJetPt(0);
78
79   AliEmcalJetTask* jetFinderTask = AddTaskEmcalJet(usedTracks,outClusName,cANTIKT,radius, cFULLJETS,minTrackPt,minClusterPt);
80
81   AliAnalysisTaskRhoSparse *rhochtask = AddTaskRhoSparse(jetFinderTaskChBack->GetName(),jetFinderTaskChSig->GetName(),usedTracks,outClusName,nRhosCh,radius,0,0.01,0,0,sfunc,0,kTRUE,nRhosCh);
82   rhochtask->SetCentralityEstimator(CentEst);
83
84   AliAnalysisTaskRhoSparse *rhochalltask = AddTaskRhoSparse(jetFinderTaskChBackall->GetName(),jetFinderTaskChSig->GetName(),usedTracks,outClusName,newrhoname,radius,0,0.0,0,0,sfunc,0,kTRUE,newrhoname);
85   rhochtask->SetCentralityEstimator(CentEst);
86
87
88   AliAnalysisTaskRhoSparse *rhochemtask = AddTaskRhoSparse(jetFinderTaskChEmBack->GetName(),jetFinderTask->GetName(),usedTracks,outClusName,nRhosChEm,radius,0,0.01,0,0,0,0,kTRUE,nRhosChEm);
89   rhochemtask->SetCentralityEstimator(CentEst);
90
91   //nJets=jetFinderTask->GetName();
92   nJets+=jetFinderTask->GetName();
93   nJetsCh+=jetFinderTaskChSig->GetName();
94
95   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskDeltaPt.C");
96
97   TString deltaname(Form("DeltaPt_%s_Scaled", nRhosCh));
98   AliAnalysisTaskDeltaPt* deltapt = AddTaskDeltaPt(usedTracks,outClusName,nJets,"","","","","",scaledname,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kEMCAL,deltaname);
99   deltapt->SetCentralityEstimator(CentEst);
100
101   TString chdeltaname(Form("DeltaPt_%s", nRhosCh));
102   AliAnalysisTaskDeltaPt* deltaptch = AddTaskDeltaPt(usedTracks,"",nJetsCh,"","","","","",nRhosCh,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kTPC,chdeltaname);
103   deltaptch->SetCentralityEstimator(CentEst);
104
105   TString emcdeltaname(Form("DeltaPt_%s", nRhosChEm));
106   AliAnalysisTaskDeltaPt* deltaptEMC = AddTaskDeltaPt(usedTracks,outClusName,nJets,"","","","","",nRhosChEm,radius,1,AreaCut,minTrackPt,minClusterPt,AliAnalysisTaskEmcal::kEMCAL,emcdeltaname);
107   deltaptEMC->SetCentralityEstimator(CentEst);
108
109   gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskScale.C");
110
111
112   Int_t radlabel=(Int_t)floor(radius*100+0.5);
113   Int_t mincluslabel=(Int_t)floor(minClusterPt*1000+0.5);
114   Int_t mintracklabel=(Int_t)floor(minTrackPt*1000+0.5);
115   TString scalename(Form("Scale_R0%d", radlabel));
116
117   AliAnalysisTaskScale* scaletask = AddTaskScale(usedTracks,outClusName,minTrackPt,minClusterPt,scalename);
118   scaletask->SetCentralityEstimator(CentEst);
119   scaletask->SetScaleFunction(sfunc);
120
121   
122   }
123
124   cout << "Running non charged jet finders..." <<endl;
125   AliEmcalJetTask* jetFinderTaskEm = AddTaskEmcalJet("",outClusName,cANTIKT,radius,cNEUTRALJETS,minTrackPt,minClusterPt);
126
127   AliEmcalJetTask* jetFinderTaskEmBack = AddTaskEmcalJet("",outClusName,cKT,radius,cNEUTRALJETS,minTrackPt, minClusterPt);
128
129   cout << "Running non charged rho task..." <<endl;
130
131   AliAnalysisTaskRhoSparse *rhoemtask = AddTaskRhoSparse(jetFinderTaskEmBack->GetName(),jetFinderTaskEm->GetName(),usedTracks,outClusName,nRhosEm,radius,0,0.01,0,0,0,1,kTRUE,nRhosEm);
132   rhoemtask->SetCentralityEstimator(CentEst);
133
134   if(usedTracks=="") nJets +=jetFinderTaskEm->GetName();
135
136
137
138
139
140   //-------------------------------------------------------
141   // Init the task and do settings
142   //-------------------------------------------------------
143
144
145   cout << "Ready to run my task..." << nJets <<endl;
146
147   TString name(Form("SpectraMECpA_%s", nJets.Data()));
148   AliAnalysisTaskEmcalJetSpectraMECpA *spectratask = new AliAnalysisTaskEmcalJetSpectraMECpA(name);
149   spectratask->SetJetsName(nJets.Data());
150   spectratask->SetCentralityEstimator(CentEst);
151   spectratask->SetAnaType(type);
152   if(!(usedTracks=="")) spectratask->SetRhoName(scaledname);
153   else spectratask->SetRhoName(nRhosEm);
154   spectratask->SetJetPhiLimits(minPhi,maxPhi);
155   spectratask->SetJetEtaLimits(minEta,maxEta);
156   spectratask->SetJetAreaCut(AreaCut);
157   spectratask->SetTracksName(usedTracks);
158
159   //-------------------------------------------------------
160   // Final settings, pass to manager and set the containers
161   //-------------------------------------------------------
162
163   mgr->AddTask(spectratask);
164
165   // Create containers for input/output
166   mgr->ConnectInput (spectratask, 0, mgr->GetCommonInputContainer() );
167   AliAnalysisDataContainer *cospectra = mgr->CreateContainer(name,
168                                                            TList::Class(),
169                                                            AliAnalysisManager::kOutputContainer,
170                                                            outfilename);
171   mgr->ConnectOutput(spectratask,1,cospectra);
172
173   cout << "Ready to run my task..." << nJetsCh <<endl;
174
175   ///
176   if(!(usedTracks=="")){
177
178   TString namech(Form("SpectraMECpA_%s", nJetsCh.Data()));
179   AliAnalysisTaskEmcalJetSpectraMECpA *spectrataskch = new AliAnalysisTaskEmcalJetSpectraMECpA(namech);
180   spectrataskch->SetJetsName(nJetsCh.Data());
181   spectrataskch->SetCentralityEstimator(CentEst);
182   spectrataskch->SetAnaType(type);
183   spectrataskch->SetRhoName(nRhosCh);
184   spectrataskch->SetJetPhiLimits(minPhi,maxPhi);
185   spectrataskch->SetJetEtaLimits(minEta,maxEta);
186   spectrataskch->SetJetAreaCut(AreaCut);
187   spectrataskch->SetTracksName(usedTracks);
188
189     //-------------------------------------------------------
190   // Final settings, pass to manager and set the containers
191   //-------------------------------------------------------
192
193   mgr->AddTask(spectrataskch);
194
195   // Create containers for input/output
196   mgr->ConnectInput (spectrataskch, 0, mgr->GetCommonInputContainer() );
197   AliAnalysisDataContainer *cospectrach = mgr->CreateContainer(namech,
198                                                            TList::Class(),
199                                                            AliAnalysisManager::kOutputContainer,
200                                                            outfilename);
201   mgr->ConnectOutput(spectrataskch,1,cospectrach);
202
203   if(type<1) return spectrataskch;
204
205   }
206
207   return spectratask;
208 }