1 void RunAliComparisonTask(TChain *chain = 0, Bool_t aProof = kTRUE, Bool_t aDebug = kFALSE)
4 // Set mag field map (needed to propagate track to the DCA)
6 TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG));
9 // Create global cuts objects
12 // Create ESD track reconstruction cuts
13 AliRecInfoCuts *pRecInfoCuts = new AliRecInfoCuts();
15 pRecInfoCuts->SetPtRange(0.15,200.0);
16 pRecInfoCuts->SetMaxAbsTanTheta(1.0);
17 pRecInfoCuts->SetMinNClustersTPC(10);
18 pRecInfoCuts->SetMinTPCsignalN(50);
20 pRecInfoCuts->SetHistogramsOn(kFALSE);
22 AliDebug(AliLog::kError, "ERROR: Cannot create AliRecInfoCuts object");
25 // Create MC track reconstruction cuts
26 AliMCInfoCuts *pMCInfoCuts = new AliMCInfoCuts();
28 pMCInfoCuts->SetMinRowsWithDigits(50);
29 pMCInfoCuts->SetMaxR(0.001);
30 pMCInfoCuts->SetMaxVz(0.001);
31 pMCInfoCuts->SetRangeTPCSignal(0.5,1.4);
33 AliDebug(AliLog::kError, "ERROR: Cannot AliMCInfoCuts object");
37 // Create comparison objects and set cuts
41 AliComparisonRes *pCompRes = new AliComparisonRes();
43 AliDebug(AliLog::kError, "ERROR: Cannot create AliComparisonRes object");
45 pCompRes->SetAliRecInfoCuts(pRecInfoCuts);
46 pCompRes->SetAliMCInfoCuts(pMCInfoCuts);
49 AliComparisonEff *pCompEff = new AliComparisonEff();
51 AliDebug(AliLog::kError, "ERROR: Cannot create AliComparisonEff object");
53 pCompEff->SetAliRecInfoCuts(pRecInfoCuts);
54 pCompEff->SetAliMCInfoCuts(pMCInfoCuts);
57 AliComparisonDEdx *pCompDEdx = new AliComparisonDEdx();
59 AliDebug(AliLog::kError, "ERROR: Cannot create AliComparisonDEdx object");
61 pCompDEdx->SetAliRecInfoCuts(pRecInfoCuts);
62 pCompDEdx->SetAliMCInfoCuts(pMCInfoCuts);
63 pCompDEdx->SetMCPtMin(0.5);
64 pCompDEdx->SetMCAbsTanThetaMax(0.5);
65 pCompDEdx->SetMCPdgCode(pMCInfoCuts->GetPiP()); // only pi+ particles
68 AliComparisonDCA *pCompDCA = new AliComparisonDCA();
70 AliDebug(AliLog::kError, "ERROR: Cannot create AliComparisonDCA object");
72 pCompDCA->SetAliRecInfoCuts(pRecInfoCuts);
73 pCompDCA->SetAliMCInfoCuts(pMCInfoCuts);
75 // Create the analysis manager
76 mgr = new AliAnalysisManager("testAnalysis");
79 task = new AliComparisonTask;
81 task->AddComparisonObject( pCompRes );
82 task->AddComparisonObject( pCompEff );
83 task->AddComparisonObject( pCompDEdx );
84 task->AddComparisonObject( pCompDCA );
89 cInput = mgr->CreateContainer("cInput", TChain::Class(), AliAnalysisManager::kInputContainer);
90 mgr->ConnectInput(task, 0, cInput);
93 cOutput = mgr->CreateContainer("cOutput", TList::Class(), AliAnalysisManager::kOutputContainer,"Output.root");
94 mgr->ConnectOutput(task, 0, cOutput);
96 // Enable debug printouts
98 mgr->SetDebugLevel(2);
105 mgr->StartAnalysis((aProof) ? "proof" : "local", chain);
107 AliDebug(AliLog::kError, "ERROR: No chain available");