2 class AliAnalysisManager;
3 class AliAnalysisAlien;
4 class AliSpectraBothPID;
7 TString griddatadir="";
8 TString datapattern="";
9 TString gridworkingdir="";
14 void runGridBoth(TString mode="test",TString configfile="config.txt",Int_t day=15,Int_t month=6, Int_t year=2012)
18 ifstream infile(configfile);
20 while (infile.eof()==false)
23 while (buffer[0]=='#'&&infile.eof()==false)
24 infile.getline(buffer,256);
25 TString tmpstring(buffer);
27 if(tmpstring.Contains("MC"))
29 tmpstring.Remove(0,3);
30 cout<<tmpstring<<endl;
31 if (!tmpstring.IsDigit())
33 cout<<"Wrong format of MC flag in config file "<<endl;
38 else if(tmpstring.Contains("AOD")&&tmpstring.Length()<6)
40 tmpstring.Remove(0,4);
41 if (!tmpstring.IsDigit())
43 cout<<"Wrong format of AOD flag in config file "<<endl;
48 else if(tmpstring.Contains("GridDataDir"))
50 griddatadir=tmpstring.Remove(0,12);
52 else if(tmpstring.Contains("DataPattern"))
54 datapattern=tmpstring.Remove(0,12);
56 else if (tmpstring.Contains("GridWorkingDir"))
58 gridworkingdir=tmpstring.Remove(0,15);
60 else if(tmpstring.Contains("root")&&!tmpstring.Contains("aliroot"))
62 root=tmpstring.Remove(0,5);
64 else if (tmpstring.Contains("aliroot"))
66 aliroot=tmpstring.Remove(0,8);
74 if(mc<0||aod<0||griddatadir.Length()<1||root.Length()<1||datapattern.Length()<1||gridworkingdir.Length()<1||aliroot.Length()<1)
76 cout<<"lack of config info"<<endl;
79 cout<<mc<<" "<<aod<<" "<<griddatadir.Data()<<" "<<root.Data()<<" "<<datapattern.Data()<<" "<<gridworkingdir.Data()<<" "<<aliroot.Data()<<endl;
82 TString daystring=Form("%d%d%d",year,month,day);
83 //to be used with Aliroot > v5-03-32-AN
84 AliLog::SetGlobalDebugLevel(100);
85 // Load common libraries
86 gEnv->SetValue("XSec.GSI.DelegProxy", "2");
88 // Load common libraries
89 gSystem->Load("libCore.so");
90 gSystem->Load("libTree.so");
91 gSystem->Load("libGeom.so");
92 gSystem->Load("libVMC.so");
93 gSystem->Load("libPhysics.so");
94 gSystem->Load("libMinuit.so");
95 gSystem->Load("libGui.so");
96 gSystem->Load("libXMLParser.so");
97 gSystem->Load("libSTEERBase.so");
98 gSystem->Load("libESD.so");
99 gSystem->Load("libCDB.so");
100 gSystem->Load("libAOD");
101 gSystem->Load("libANALYSIS");
102 gSystem->Load("libANALYSISalice");
103 gSystem->Load("libCORRFW");
104 gSystem->Load("libProof.so");
105 gSystem->Load("libRAWDatabase.so");
106 gSystem->Load("libSTEER.so");
107 gSystem->Load("libTENDER.so");
108 gSystem->Load("libTENDERSupplies.so");
109 gSystem->Load("libPWGLFspectra.so");
110 gROOT->ProcessLine(".include $ALICE_ROOT/include ");
111 gSystem->SetIncludePath("-I.");
112 gROOT->ProcessLine(".include $ALICE_ROOT/TOF ");
114 //gSystem->Load("libPWGLFspectra.so");
115 // gROOT->LoadMacro("AliSpectraBothTrackCuts.cxx+g");
116 // gROOT->LoadMacro("AliSpectraBothEventCuts.cxx+g");
117 // gROOT->LoadMacro("HistogramNames.cxx");
118 // gROOT->LoadMacro("AliSpectraBothHistoManager.cxx+g");
119 // gROOT->LoadMacro("AliSpectraBothPID.cxx+g");
120 // gROOT->LoadMacro("AliAnalysisTaskSpectraBoth.cxx+g");
121 //__________________________________________________________________________
122 // Use AliRoot includes to compile our task
123 gROOT->ProcessLine(".include $ALICE_ROOT/include ");
124 gSystem->SetIncludePath("-I.");
125 gROOT->ProcessLine(".include $ALICE_ROOT/TOF ");
126 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/PiKaPr/TestAOD/AddTaskSpectraBoth.C");
128 // Create and configure the alien handler plugin
129 AliAnalysisGrid *alienHandler = CreateAlienHandler(mode,daystring);
130 if (!alienHandler) return;
131 // Create the analysis manager
132 AliAnalysisManager *mgr = new AliAnalysisManager("testAnalysis");
133 // Connect plug-in to the analysis manager
134 mgr->SetGridHandler(alienHandler);
137 AliAODInputHandler* aodH = new AliAODInputHandler();
138 mgr->SetInputEventHandler(aodH);
142 AliESDInputHandler* esdH = new AliESDInputHandler();
143 mgr->SetInputEventHandler(esdH);
146 AliMCEventHandler *mch = new AliMCEventHandler();
147 mgr->SetMCtruthEventHandler(mch);
152 // Bool_t isMC=kFALSE, Bool_t autoMCesd=kTRUE,
\r
153 // Bool_t tuneOnData=kFALSE, Int_t recoPass=2, Bool_t cachePID=kFALSE, TString detResponse="",
\r
154 //Bool_t useTPCEtaCorrection = kFALSE gROOT->LoadMacro("./AddTaskSpectraBoth.C");
156 Double_t Nsigmapid=3.;
160 Double_t ptTofMatch=.6;
164 UInt_t trkbitQVector=1;
165 Bool_t UseCentPatchAOD049=kFALSE;
167 UInt_t minNclsTPC=70;
168 UInt_t minNclsTPC2=0;
174 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
175 AliAnalysisTaskPIDResponse *taskPID=AddTaskPIDResponse(mcfactor,kTRUE,kFALSE,2,kFALSE,"",kTRUE);
180 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
181 AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
184 physSelTask->GetPhysicsSelection()->SetAnalyzeMC();
189 AliAnalysisTaskSpectraBoth* task1=0x0;
190 AliAnalysisTaskSpectraBoth* task2=0x0;
191 AliAnalysisTaskSpectraBoth* task3=0x0;
192 AliAnalysisTaskSpectraBoth* task4=0x0;
193 AliAnalysisTaskSpectraBoth* task5=0x0;
194 AliAnalysisTaskSpectraBoth* task6=0x0;
198 task1=AddTaskSpectraBoth(mcfactor,-1,-1,-1,-1,-0.8,0.8,Nsigmapid,pt,p,-0.5,0.5,ptTofMatch,trkbit,trkbitQVector,UseCentPatchAOD049,DCA,minNclsTPC,rebinfactor,"V0M",2);
200 task2=AddTaskSpectraBoth(mcfactor,-1,-1,-1,-1,-0.8,0.8,Nsigmapid,pt,p,0.465,0.965,ptTofMatch,trkbit,trkbitQVector,UseCentPatchAOD049,DCA,minNclsTPC,rebinfactor,"V0M",2);
202 task3=AddTaskSpectraBoth(mcfactor,-1,-1,-1,-1,-0.8,0.8,Nsigmapid,pt,p,0.265,0.665,ptTofMatch,trkbit,trkbitQVector,UseCentPatchAOD049,DCA,minNclsTPC,rebinfactor,"V0M",2);
204 task4=AddTaskSpectraBoth(mcfactor,-1,-1,-1,-1,-0.8,0.8,Nsigmapid,pt,p,-0.5,0.5,ptTofMatch,trkbit2,trkbitQVector,UseCentPatchAOD049,DCA,minNclsTPC2,rebinfactor,"V0M",2);
206 task5=AddTaskSpectraBoth(mcfactor,-1,-1,-1,-1,-0.8,0.8,Nsigmapid,pt,p,0.465,0.965,ptTofMatch,trkbit2,trkbitQVector,UseCentPatchAOD049,DCA,minNclsTPC2,rebinfactor,"V0M",2);
208 task6=AddTaskSpectraBoth(mcfactor,-1,-1,-1,-1,-0.8,0.8,Nsigmapid,pt,p,0.265,0.665,ptTofMatch,trkbit2,trkbitQVector,UseCentPatchAOD049,DCA,minNclsTPC2,rebinfactor,"V0M",2);
213 task1->SetdotheMCLoopAfterEventCuts(kTRUE);
214 task2->SetdotheMCLoopAfterEventCuts(kTRUE);
215 task3->SetdotheMCLoopAfterEventCuts(kTRUE);
216 task4->SetdotheMCLoopAfterEventCuts(kTRUE);
217 task5->SetdotheMCLoopAfterEventCuts(kTRUE);
218 task6->SetdotheMCLoopAfterEventCuts(kTRUE);
224 task1->GetEventCuts()->SetTriggerSettings(AliVEvent::kINT7);
225 task2->GetEventCuts()->SetTriggerSettings(AliVEvent::kINT7);
226 task3->GetEventCuts()->SetTriggerSettings(AliVEvent::kINT7);
227 task4->GetEventCuts()->SetTriggerSettings(AliVEvent::kINT7);
228 task5->GetEventCuts()->SetTriggerSettings(AliVEvent::kINT7);
229 task6->GetEventCuts()->SetTriggerSettings(AliVEvent::kINT7);
235 AliESDtrackCuts* cuttpc1=AliESDtrackCuts::GetStandardITSTPCTrackCuts2011();
236 task1->SetAliESDtrackCuts(cuttpc1);
237 AliESDtrackCuts* cuttpc2=AliESDtrackCuts::GetStandardITSTPCTrackCuts2011();
239 task2->SetAliESDtrackCuts(cuttpc2);
242 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDqa.C");
244 if(mode.Contains("test"))
245 mgr->SetDebugLevel(1);
247 if (!mgr->InitAnalysis())return;
250 mgr->StartAnalysis("grid");
254 AliAnalysisGrid* CreateAlienHandler(TString mode="test",TString daystring)
256 TString filename="*AliAOD.root";
261 filename="*AliESDs.root";
267 TString jobsettings=griddatadir;
268 jobsettings+=datapattern;
280 jobsettings.ReplaceAll("/","");
282 jobsettings.ReplaceAll("*","");
286 AliAnalysisAlien *plugin = new AliAnalysisAlien();
287 //plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/TOF -I$ALICE_ROOT/PWGLF/SPECTRA/PiKaPr/TestAOD");
288 //plugin->SetAdditionalLibs("libSTEERBase.so libESD.so libAOD.so libANALYSISalice.so libPWGLFspectra.so libTENDER.so libTENDERSupplies.so");
289 //plugin->SetAnalysisSource("AliSpectraBothHistoManager.cxx AliSpectraBothTrackCuts.cxx AliSpectraBothEventCuts.cxx AliSpectraBothPID.cxx AliAnalysisTaskSpectraBoth.cxx");
290 plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/TOF ");
291 plugin->SetAdditionalLibs("libTENDER.so libTENDERSupplies.so libPWGLFspectra.so");
292 // plugin->SetAnalysisSource("AliSpectraBothHistoManager.cxx AliSpectraBothTrackCuts.cxx AliSpectraBothEventCuts.cxx AliSpectraBothPID.cxx AliAnalysisTaskSpectraBoth.cxx");
293 plugin->SetOverwriteMode();
294 plugin->SetExecutableCommand("aliroot -q -b");
295 plugin->SetRunMode(mode.Data());
296 plugin->SetNtestFiles(1);
297 //Set versions of used packages
298 plugin->SetAPIVersion("V1.1x");
299 plugin->SetROOTVersion(root.Data());
300 plugin->SetAliROOTVersion(aliroot.Data());
301 // Declare input data to be processed
302 plugin->SetGridDataDir(griddatadir.Data());
303 plugin->SetDataPattern(Form("%s/%s",datapattern.Data(),filename.Data()));
304 plugin->SetGridWorkingDir(Form("%s%s",gridworkingdir.Data(),daystring.Data()));
305 plugin->SetAnalysisMacro(Form("%s.C",jobsettings.Data()));
306 plugin->SetExecutable(Form("%s.sh",jobsettings.Data()));
307 plugin->SetJDLName(Form("Task%s.jdl",jobsettings.Data()));
311 plugin->SetRunPrefix("");
315 plugin->SetRunPrefix("000");
317 FILE* listruns=fopen("runs.txt","r");
319 while(!feof(listruns))
321 fscanf(listruns,"%d\n",&irun);
322 plugin->AddRunNumber(irun);
324 plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
325 plugin->SetMaxMergeFiles(25);
326 plugin->SetMergeExcludes("EventStat_temp.root"
328 plugin->SetMergeViaJDL(true);
329 plugin->SetTTL(15*3600);
330 // Optionally set input format (default xml-single)
331 plugin->SetInputFormat("xml-single");
332 // Optionally modify job price (default 1)
334 // Optionally modify split mode (default 'se')
335 //plugin->SetSplitMaxInputFileNumber();
336 plugin->SetSplitMode("se");