]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TestAOD/runGrid.C
running macros updated
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / runGrid.C
1 class  AliAnalysisManager;
2 class  AliAnalysisAlien;
3
4 void runGrid(TString mode="test",Bool_t mc=1,Int_t day=15,Int_t month=6, Int_t year=2012) 
5 {
6   //to be used with Aliroot > v5-03-32-AN
7   AliLog::SetGlobalDebugLevel(100);
8   // Load common libraries
9   gEnv->SetValue("XSec.GSI.DelegProxy", "2");
10   
11   // Load common libraries
12   gSystem->Load("libCore.so");
13   gSystem->Load("libTree.so");
14   gSystem->Load("libGeom.so");
15   gSystem->Load("libVMC.so");
16   gSystem->Load("libPhysics.so");
17   gSystem->Load("libMinuit.so"); 
18   gSystem->Load("libGui.so");
19   gSystem->Load("libXMLParser.so");
20   gSystem->Load("libSTEERBase.so");
21   gSystem->Load("libESD.so");
22   gSystem->Load("libCDB.so");
23   gSystem->Load("libAOD");
24   gSystem->Load("libANALYSIS");
25   gSystem->Load("libANALYSISalice");
26   gSystem->Load("libCORRFW");
27   gSystem->Load("libProof.so");
28   gSystem->Load("libRAWDatabase.so");
29   gSystem->Load("libSTEER.so");
30   //__________________________________________________________________________
31   // Use AliRoot includes to compile our task
32   gROOT->ProcessLine(".include $ALICE_ROOT/include");
33   gSystem->Load("libPWGLFspectra.so");
34   
35   // Create and configure the alien handler plugin
36   AliAnalysisGrid *alienHandler = CreateAlienHandler(mode,mc,day,month,year);  
37   if (!alienHandler) return;
38   // Create the analysis manager
39   AliAnalysisManager *mgr = new AliAnalysisManager("testAnalysis");
40   // Connect plug-in to the analysis manager
41   mgr->SetGridHandler(alienHandler);
42   AliAODInputHandler* aodH = new AliAODInputHandler();
43   mgr->SetInputEventHandler(aodH);
44   
45   // Add PID task
46   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
47   AliAnalysisTaskPIDResponse *taskPID=AddTaskPIDResponse(mc);
48   // Printf("OADB PATH:::::%s",taskPID->GetOADBPath());
49   // taskPID->SetOADBPath("alien:///alice/cern.ch/user/a/akalweit/ForLeornado/OADB");
50   // Printf("OADB PATH:::::%s",taskPID->GetOADBPath());
51   
52   gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskVZEROEPSelection.C");
53   AliVZEROEPSelectionTask *selTask = AddTaskVZEROEPSelection();
54   
55   gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/PiKaPr/TestAOD/AddTaskSpectraAOD.C");
56   //LOOP OVER SELECTION
57   //                            0    1    2    3    4    5    6    7    8    9
58   Double_t CentCutMin[4]= {     0,  30,  30,  30};
59   Double_t CentCutMax[4]= {     5,  40,  40,  40};
60   Double_t QvecCutMin[4]={      0,   0,   0, 1.5};
61   Double_t QvecCutMax[4]={    100, 100, 0.4, 100};
62   Double_t EtaMin[4]={       -0.8,-0.8,-0.8,-0.8};
63   Double_t EtaMax[4]={        0.8, 0.8, 0.8, 0.8};
64   Double_t Nsigmapid=3.;
65   Double_t pt=10.;
66   Double_t p=10.;
67   Double_t y=.5;
68   Double_t ptTofMatch=.6;
69   UInt_t trkbit=1024;
70   UInt_t trkbitQVector=1;
71   Bool_t UseCentPatchAOD049=kFALSE;
72   Double_t DCA=100000;
73   UInt_t minNclsTPC=70;
74   Int_t nrebin=0;
75   TString opt="";
76  
77   for(Int_t icut=0;icut<4;icut++){
78     //if(icut!=0)continue;
79     AliAnalysisTaskSpectraAOD *taskAOD =AddTaskSpectraAOD(mc,CentCutMin[icut],CentCutMax[icut],QvecCutMin[icut],QvecCutMax[icut],EtaMin[icut],EtaMax[icut],Nsigmapid,pt,p,y,ptTofMatch,trkbit,trkbitQVector,UseCentPatchAOD049,DCA,minNclsTPC,nrebin,opt);
80     taskAOD->GetOutputSlot(1)->GetContainer()->SetName(Form("%s_%s",taskAOD->GetOutputSlot(1)->GetContainer()->GetName(),taskAOD->GetName()));
81     taskAOD->GetOutputSlot(2)->GetContainer()->SetName(Form("%s_%s",taskAOD->GetOutputSlot(2)->GetContainer()->GetName(),taskAOD->GetName()));
82     taskAOD->GetOutputSlot(3)->GetContainer()->SetName(Form("%s_%s",taskAOD->GetOutputSlot(3)->GetContainer()->GetName(),taskAOD->GetName()));
83     taskAOD->GetOutputSlot(4)->GetContainer()->SetName(Form("%s_%s",taskAOD->GetOutputSlot(4)->GetContainer()->GetName(),taskAOD->GetName()));
84    
85     // __R_ADDTASK__->GetOutputSlot(1)->GetContainer()->SetName(Form("%s_%s",__R_ADDTASK__->GetOutputSlot(1)->GetContainer()->GetName(),__R_ADDTASK__->GetName()));
86     // __R_ADDTASK__->GetOutputSlot(2)->GetContainer()->SetName(Form("%s_%s",__R_ADDTASK__->GetOutputSlot(2)->GetContainer()->GetName(),__R_ADDTASK__->GetName()));
87     // __R_ADDTASK__->GetOutputSlot(3)->GetContainer()->SetName(Form("%s_%s",__R_ADDTASK__->GetOutputSlot(3)->GetContainer()->GetName(),__R_ADDTASK__->GetName()));
88     // __R_ADDTASK__->GetOutputSlot(4)->GetContainer()->SetName(Form("%s_%s",__R_ADDTASK__->GetOutputSlot(4)->GetContainer()->GetName(),__R_ADDTASK__->GetName()));
89     
90     // taskAOD->GetEventCuts()->SetMultiplicityCut(800,2000);
91     // taskAOD->GetEventCuts()->SetVertexCut(-8,10);
92   }
93   
94   mgr->SetDebugLevel(2);
95   
96   //mgr->Init();
97   if (!mgr->InitAnalysis())return;
98   mgr->PrintStatus();
99   // Start analysis in grid.
100   mgr->StartAnalysis("grid");
101 }
102
103
104 AliAnalysisGrid* CreateAlienHandler(TString mode="test",Bool_t mc=1,Int_t day=0,Int_t month=0, Int_t year=2012)
105 {
106   AliAnalysisAlien *plugin = new AliAnalysisAlien();
107   plugin->AddIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT/include -I$ALICE_ROOT/TOF -I$ALICE_ROOT/PWGLF");
108   plugin->SetAdditionalLibs("libPWGLFspectra.so");
109   plugin->SetOverwriteMode();
110   plugin->SetExecutableCommand("aliroot -q -b");  
111   plugin->SetRunMode(mode.Data());
112   plugin->SetNtestFiles(1);
113   //Set versions of used packages
114   plugin->SetAPIVersion("V1.1x");
115   plugin->SetROOTVersion("v5-33-02b");
116   plugin->SetAliROOTVersion("v5-03-32-AN");
117   // Declare input data to be processed.
118   if(mc)
119     {
120       plugin->SetGridDataDir("/alice/sim/LHC11a10a_bis");
121       plugin->SetDataPattern("AOD090/*AliAOD.root");
122       plugin->SetRunPrefix(""); 
123       plugin->SetAnalysisMacro("TaskAODPbPbMC.C");
124       plugin->SetExecutable("TaskAODPbPbMC.sh");
125       plugin->SetJDLName("TaskAODPbPbMC.jdl");
126       //plugin->SetSplitMaxInputFileNumber(500);
127       plugin->SetGridWorkingDir(Form("/AODPbPb%d%d%d/mc/",day,month,year));
128     }  
129   else
130     {
131       plugin->SetGridDataDir("/alice/data/2010/LHC10h");
132       plugin->SetDataPattern("ESDs/pass2/AOD086/*AliAOD.root");
133       plugin->SetRunPrefix("000"); 
134       plugin->SetAnalysisMacro("TaskAODPbPbdata.C");
135       plugin->SetExecutable("TaskAODPbPbdata.sh");
136       plugin->SetJDLName("TaskAODPbPbdata.jdl");
137       //plugin->SetSplitMaxInputFileNumber(500);
138       plugin->SetGridWorkingDir(Form("/AODPbPb%d%d%d/data/",day,month,year));
139     }   
140   FILE* listruns=fopen("RunListGrid-AOD086.txt","r");
141   Int_t irun;
142   while(!feof(listruns))
143     {
144       fscanf(listruns,"%d\n",&irun);
145       plugin->AddRunNumber(irun);
146     }
147   // Declare alien output directory. Relative to working directory.
148   plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
149   //plugin->SetNrunsPerMaster(3); // 
150   
151   // Declare the output file names separated by blancs.
152   // (can be like: file.root or file.root@ALICE::Niham::File)
153   //plugin->SetDefaultOutputs(0);
154   //plugin->SetOutputFiles("AnalysisResults.root.root");
155   plugin->SetMergeViaJDL(kTRUE);
156   plugin->SetOneStageMerging(kFALSE);
157   plugin->SetMaxMergeStages(2);
158   
159   plugin->SetTTL(100000);
160   // Optionally set input format (default xml-single)
161   plugin->SetInputFormat("xml-single");
162   // Optionally modify job price (default 1)
163   plugin->SetPrice(1);      
164   // Optionally modify split mode (default 'se')    
165   //plugin->SetSplitMaxInputFileNumber();
166   plugin->SetSplitMode("se");
167   return plugin;
168 }