]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TestAOD/runAODProof.C
- update to runGrid and runAOD - KTOFPID added
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / runAODProof.C
1 void runAODProof(Int_t c=1, const char * proofMode = "full")
2 { //1 data AOD049
3   //2 MC AOD048
4   //3 data AOD086
5   //4 MC AOD090
6   
7   //  gEnv->SetValue("XSec.GSI.DelegProxy", "2");
8   
9   gSystem->Load("libTree.so");
10   gSystem->Load("libGeom.so");
11    gSystem->Load("libVMC.so");
12    gSystem->Load("libPhysics.so");
13    gSystem->Load("libSTEERBase.so");
14    gSystem->Load("libESD.so");
15    gSystem->Load("libAOD.so");
16    gSystem->Load("libANALYSIS.so");
17    gSystem->Load("libOADB.so");
18    gSystem->Load("libANALYSISalice.so");
19    gSystem->AddIncludePath("-I$ALICE_ROOT/include");
20
21    AliAnalysisAlien * handler = new AliAnalysisAlien("test");
22    handler->SetOverwriteMode();
23    handler->SetRunMode(proofMode);
24    handler->SetProofReset(0);
25    //handler->SetROOTVersion("v5-33-02a");
26    //handler->SetAliROOTVersion("v5-03-11-AN");
27    handler->SetAliROOTVersion("v5-04-25-AN");
28    
29    //handler->SetNproofWorkers(5);
30    handler->SetNproofWorkersPerSlave(4);
31    handler->SetProofCluster(Form("%s@alice-caf.cern.ch", gSystem->Getenv("CAFUSER")));
32    //handler->SetProofCluster(Form("%s@skaf.saske.sk",gSystem->Getenv("CAFUSER")));
33    // Set handler for Real DATA:
34    if (c == 1){
35      //handler->SetProofDataSet("/alice/data/LHC10h_000138653_p2_AOD049#aodTree");
36      handler->SetProofDataSet("/alice/data/LHC10h_000138653_p2_AOD049#aodTree|/alice/data/LHC10h_000138662_p2_AOD049#aodTree|/alice/data/LHC10h_000138666_p2_AOD049#aodTree|/alice/data/LHC10h_000138795_p2_AOD049#aodTree|/alice/data/LHC10h_000139107_p2_AOD049#aodTree|/alice/data/LHC10h_000139110_p2_AOD049#aodTree");
37    }
38    if (c == 2){
39      handler->SetProofDataSet("/alice/sim/LHC11a10a_000138653_AOD048#aodTree|/alice/sim/LHC11a10a_000138662_AOD048#aodTree|/alice/sim/LHC11a10a_000138666_AOD048#aodTree|/alice/sim/LHC11a10a_000138795_AOD048#aodTree|/alice/sim/LHC11a10a_000139107_AOD048#aodTree|/alice/sim/LHC11a10a_000139110_AOD048#aodTree");      
40    }
41    if (c == 3){
42      //handler->SetProofDataSet("/default/lmilano/LHC10h_000138653_AOD086_p2#aodTree");      
43      handler->SetProofDataSet("/default/lmilano/LHC10h_000138653_AOD086_p2#aodTree|/default/lmilano/LHC10h_000138662_AOD086_p2#aodTree|/default/lmilano/LHC10h_000138666_AOD086_p2#aodTree|/default/lmilano/LHC10h_000139107_AOD086_p2#aodTree");      
44    }
45    if (c == 4){
46      handler->SetProofDataSet("/default/lmilano/LHC11a10a_bis_138653_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_138662_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_138666_AOD090#aodTree|/default/lmilano/LHC11a10a_bis_139107_AOD090#aodTree");      
47    }
48    
49    gROOT->LoadMacro("AliSpectraAODTrackCuts.cxx+g");
50    gROOT->LoadMacro("AliSpectraAODEventCuts.cxx+g");
51    gROOT->LoadMacro("AliSpectraAODHistoManager.cxx+g");
52    gROOT->LoadMacro("AliSpectraAODPID.cxx+g");
53    gROOT->LoadMacro("AliAnalysisTaskSpectraAOD.cxx+g");
54
55    handler->SetAliRootMode("default");
56    handler->SetAdditionalLibs("AliSpectraAODHistoManager.cxx AliSpectraAODHistoManager.h AliSpectraAODPID.cxx AliSpectraAODPID.h AliSpectraAODTrackCuts.cxx AliSpectraAODTrackCuts.h AliSpectraAODEventCuts.cxx AliSpectraAODEventCuts.h AliAnalysisTaskSpectraAOD.cxx AliAnalysisTaskSpectraAOD.h");
57    handler->SetAnalysisSource("Histograms.h HistogramNames.h AliSpectraAODHistoManager.cxx+ AliSpectraAODTrackCuts.cxx+ AliSpectraAODEventCuts.cxx+ AliSpectraAODPID.cxx+ AliAnalysisTaskSpectraAOD.cxx+");
58    //   handler->SetFileForTestMode("filelist.txt"); // list of local files for testing
59    //  handler->SetAliRootMode("");
60    handler->SetClearPackages();
61    
62    AliAnalysisManager *mgr = new AliAnalysisManager("testAnalysis");
63    mgr->SetGridHandler(handler);
64    AliAODInputHandler* aodH = new AliAODInputHandler();
65    mgr->SetInputEventHandler(aodH);
66    
67    // Add PID task
68    gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
69    Bool_t isMC = kFALSE;
70    if (c == 2 || c == 4) isMC = kTRUE;   
71    AliAnalysisTask * taskPID = AddTaskPIDResponse(isMC);
72    mgr->AddTask(taskPID);
73    
74    //LOOP OVER SELECTION
75    Double_t CentCutMin[4]={0,0,20,20};
76    Double_t CentCutMax[4]={100,5,40,40};
77    Double_t QvecCutMin[4]={0,0,0,3};
78    Double_t QvecCutMax[4]={100,100,2,100};
79    // Double_t CentCutMin[4]={5,10,20,30};
80    // Double_t CentCutMax[4]={10,20,30,40};
81    // Double_t QvecCutMin[4]={0,0,0,0};
82    // Double_t QvecCutMax[4]={100,100,100,100};
83    using namespace AliSpectraNameSpace;
84    AliSpectraAODPID *pid = new AliSpectraAODPID(kNSigmaTPCTOF); 
85    pid->SetNSigmaCut(3.);
86    
87    for(Int_t iCut=1;iCut<2;iCut++){
88      AliAnalysisTaskSpectraAOD *task = new AliAnalysisTaskSpectraAOD("TaskAODExercise");
89      mgr->AddTask(task);
90      //physics selection
91      task->SelectCollisionCandidates();     
92      // set pid object
93      task->SetPID(pid);
94      // Set the cuts
95      AliSpectraAODEventCuts * vcuts = new AliSpectraAODEventCuts("Event Cuts");
96      AliSpectraAODTrackCuts  * tcuts = new AliSpectraAODTrackCuts("Track Cuts");
97      //if(c==1 || c==2)tcuts->SetTrackType(5); //AOD 046 & 047. Standard Cut with loose DCA
98      if(c==1 || c==2)tcuts->SetTrackType(6); //AOD 046 & 047. Standard Cut with tight DCA
99      if(c==3 || c==4)tcuts->SetTrackType(10); //AOD 086 & 090. Standard Raa cut
100      //if(c==3 || c==4)tcuts->SetTrackType(8); //AOD 086 & 090. TPC only
101      //if(c==3 || c==4)tcuts->SetTrackType(2); //AOD 086 & 090. ITS strong
102      tcuts->SetEta(.8);
103      //tcuts->SetDCA(.1);
104      tcuts->SetPt(5);
105      tcuts->SetY(.5);
106      tcuts->SetPtTOFMatching(.6);   
107      tcuts->SetQvecMin(QvecCutMin[iCut]);   
108      tcuts->SetQvecMax(QvecCutMax[iCut]);    
109      vcuts->SetCentralityCutMax(CentCutMax[iCut]);  
110      vcuts->SetCentralityCutMin(CentCutMin[iCut]);
111      task->SetEventCuts(vcuts);
112      task->SetTrackCuts(tcuts);
113      vcuts->PrintCuts();
114      tcuts->PrintCuts();
115      
116      // check for MC or real data
117      if (c == 2 || c == 4)
118        {
119          task->SetIsMC(kTRUE);
120          AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
121          AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chistpt%d",iCut), AliSpectraAODHistoManager::Class(),  AliAnalysisManager::kOutputContainer, 
122                                                                      Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCutMin[iCut],CentCutMax[iCut],QvecCutMin[iCut],QvecCutMax[iCut]));
123          AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer(Form("cvcutpt%d",iCut), AliSpectraAODEventCuts::Class(),    AliAnalysisManager::kOutputContainer, 
124                                                                      Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCutMin[iCut],CentCutMax[iCut],QvecCutMin[iCut],QvecCutMax[iCut]));
125          AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer(Form("ctcutpt%d",iCut), AliSpectraAODTrackCuts::Class(),     AliAnalysisManager::kOutputContainer, 
126                                                                      Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCutMin[iCut],CentCutMax[iCut],QvecCutMin[iCut],QvecCutMax[iCut]));
127          AliAnalysisDataContainer *coutputpt4 = mgr->CreateContainer(Form("cpidpt%d",iCut),  AliSpectraAODPID::Class(),     AliAnalysisManager::kOutputContainer, 
128                                                                      Form("Pt.AOD.1._MC_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCutMin[iCut],CentCutMax[iCut],QvecCutMin[iCut],QvecCutMax[iCut]));
129        }
130      if (c == 1 || c==3)
131        {
132          AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
133          AliAnalysisDataContainer *coutputpt1 = mgr->CreateContainer(Form("chistpt%d",iCut), AliSpectraAODHistoManager::Class(),  AliAnalysisManager::kOutputContainer, 
134                                                                      Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCutMin[iCut],CentCutMax[iCut],QvecCutMin[iCut],QvecCutMax[iCut]));
135          AliAnalysisDataContainer *coutputpt2 = mgr->CreateContainer(Form("cvcutpt%d",iCut), AliSpectraAODEventCuts::Class(),    AliAnalysisManager::kOutputContainer, 
136                                                                      Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCutMin[iCut],CentCutMax[iCut],QvecCutMin[iCut],QvecCutMax[iCut]));
137          AliAnalysisDataContainer *coutputpt3 = mgr->CreateContainer(Form("ctcutpt%d",iCut), AliSpectraAODTrackCuts::Class(),     AliAnalysisManager::kOutputContainer, 
138                                                                      Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCutMin[iCut],CentCutMax[iCut],QvecCutMin[iCut],QvecCutMax[iCut]));
139          AliAnalysisDataContainer *coutputpt4 = mgr->CreateContainer(Form("cpidpt%d",iCut),  AliSpectraAODPID::Class(),     AliAnalysisManager::kOutputContainer, 
140                                                                      Form("Pt.AOD.1._data_ptcut_Cent%.0fto%.0f_QVec%.1fto%.1f.root",CentCutMin[iCut],CentCutMax[iCut],QvecCutMin[iCut],QvecCutMax[iCut]));
141          
142        }
143      mgr->ConnectInput(task, 0, cinput);
144      mgr->ConnectOutput(task, 1, coutputpt1);
145      mgr->ConnectOutput(task, 2, coutputpt2);
146      mgr->ConnectOutput(task, 3, coutputpt3);
147      mgr->ConnectOutput(task, 4, coutputpt4);
148    }
149    mgr->SetDebugLevel(2);
150    
151    if (!mgr->InitAnalysis()) return;
152    mgr->PrintStatus();
153    mgr->StartAnalysis("proof");
154 }