1 // Macro to run TPC performance task (locally, proof).
3 // By default 7 performance components are added to
5 // 1. AliPerformanceRes (TPC track resolution w.r.t MC at DCA)
6 // 2. AliPerformanceResTPCInner (TPC track resolution w.r.t MC at inner TPC wall)
7 // 3. AliPerformanceResTPCOuter (TPC track resolution w.r.t MC at outer TPC wall)
8 // 4. AliPerformanceEff (TPC track reconstruction efficiency, MC primaries)
9 // 5. AliPerformanceDEdxTPCInner (TPC dEdx response - track parameters at TPC inner wall)
10 // 6. AliPerformanceDCA (TPC impact parameters resolution at DCA)
11 // 7. AliPerformanceTPC (TPC cluster and track information)
17 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/LoadMyLibs.C");
19 gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
20 TChain* chain = CreateESDChain("list_flatP_JB.txt",10, 0);
23 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/RunPerformanceTask.C");
24 RunPerformanceTask(chain, kTRUE, kTRUE, kFALSE);
26 //2. Run on PROOF Lite e.g.
30 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/ProofEnableAliRoot.C");
31 ProofEnableAliRoot("/d/alice11/jacek/alice/x86_64/AliRoot/trunkJB/");
33 gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
34 TChain* chain = CreateESDChain("list_flatP_JB.txt",20, 0);
37 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/RunPerformanceTask.C");
38 RunPerformanceTask(chain, kTRUE, kTRUE, kTRUE);
41 //3. Run only on static PROOF at GSI e.g.
43 TProof::Reset("jacek@lxgrid5.gsi.de");
44 TProofMgr * proofmgr = TProof::Mgr("jacek@lxgrid5.gsi.de");
45 //proofmgr->SetROOTVersion("523-04");
46 TProof * proof = proofmgr->CreateSession();
47 proof->SetParameter("PROOF_MaxSlavesPerNode", (Long_t)10000);
49 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/ProofEnableAliRoot.C");
50 ProofEnableAliRoot("/u/jacek/alice/AliRoot/HEAD/");
52 gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
53 TChain* chain = CreateESDChain("esd_v4-16-Rev-08-grid.txt", 200, 0);
56 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/RunPerformanceTask.C");
57 RunPerformanceTask(chain, kTRUE, kTRUE, kTRUE);
59 //4. Make final spectra and store them in the
60 // output folder and generate control pictures e.g.
62 TFile f("TPC.Performance.root");
63 AliPerformanceRes * compObjRes = (AliPerformanceRes*)coutput->FindObject("AliPerformanceResTPCOuter");
64 compObjRes->Analyse();
65 compObjRes->GetAnalysisFolder()->ls("*");
67 compObjRes->PrintHisto(kTRUE,"PerformanceResTPCOuterQA.ps");
68 // store output QA histograms in file
69 TFile fout("PerformanceResTPCOuterQAHisto.root","recreate");
70 compObjRes->GetAnalysisFolder()->Write();
76 //_____________________________________________________________________________
77 void RunPerformanceTask(TChain *chain, Bool_t bUseMCInfo=kTRUE, Bool_t bUseESDfriend=kTRUE, Bool_t bProof=kTRUE)
81 AliDebug(AliLog::kError, "ERROR: No input chain available");
85 // Swtich off all AliInfo (too much output!)
87 AliLog::SetGlobalLogLevel(AliLog::kError);
90 // Create analysis manager
92 AliAnalysisManager *mgr = new AliAnalysisManager;
94 Error("runTPCQA","AliAnalysisManager not set!");
99 // Set ESD input handler
101 AliESDInputHandler* esdH = new AliESDInputHandler;
103 Error("runTPCQA","AliESDInputHandler not created!");
106 if(bUseESDfriend) esdH->SetActiveBranches("ESDfriend");
107 mgr->SetInputEventHandler(esdH);
110 // Set MC input handler
113 AliMCEventHandler* mcH = new AliMCEventHandler;
115 Error("runTPCQA","AliMCEventHandler not created!");
118 mcH->SetReadTR(kTRUE);
119 mgr->SetMCtruthEventHandler(mcH);
122 // Add task to AliAnalysisManager
124 gROOT->LoadMacro("$ALICE_ROOT/PWG1/macros/AddTaskPerformanceTPC.C");
125 AliPerformanceTask *tpcQA = AddTaskPerformanceTPC(bUseMCInfo,bUseESDfriend);
127 Error("runTPCQA","TaskPerformanceTPC not created!");
131 // Enable debug printouts
132 mgr->SetDebugLevel(0);
134 if (!mgr->InitAnalysis())
139 if(bProof) mgr->StartAnalysis("proof",chain);
140 else mgr->StartAnalysis("local",chain);