1 void AddTask_dNdPtCutAnalysisPbPb()
4 CheckLoadLibrary("libPWG0base");
5 CheckLoadLibrary("libPWG0dep");
6 CheckLoadLibrary("libPWG0selectors");
9 gSystem->Load("libPWG0base");
10 gSystem->Load("libPWG0dep");
11 gSystem->Load("libPWG0selectors");
13 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
16 Error("AddTask_dNdPtCutAnalysisPbPb", "No analysis manager found.");
20 // Switch off all AliInfo (too much output!!!)
21 AliLog::SetGlobalLogLevel(AliLog::kError);
22 mgr->SetDebugLevel(0);
25 // Create physics trigger selection class
27 AliPhysicsSelection *physTrigSel = new AliPhysicsSelection();
32 Float_t zvWindow = 20. ;
34 AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
35 evtCuts->SetZvRange(-zvWindow,zvWindow);
36 evtCuts->SetMeanXYZv(0.0,0.0,0.0);
37 evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
38 evtCuts->SetTriggerRequired(kTRUE);
41 // Create geom. acceptance cuts
43 Float_t etaWindow = 1. ;
44 Float_t ptMin = 0.15 ;
46 AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
47 accCuts->SetEtaRange(-etaWindow,etaWindow);
48 accCuts->SetPtRange(ptMin,1.e10);
49 accCuts->SetMaxDCAr(3.0);
50 accCuts->SetMaxDCAz(30.0);
53 // Create standard esd track cuts
57 gROOT->LoadMacro("$ALICE_ROOT/PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C");
58 AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
60 printf("ERROR: esdTrackCuts could not be created\n");
63 esdTrackCuts->SetHistogramsOn(kTRUE);
67 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
72 AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
73 task->SetUseMCInfo(hasMC);
76 task->SelectCollisionCandidates(AliVEvent::kMB);
79 // set analysis options from the Helper here !!!
81 AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kCutAnalysisPbPb;
82 AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPC ;
83 AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ;
87 // Create cut analysis object
89 if(outputObject==AlidNdPtHelper::kCutAnalysisPbPb) {
91 AlidNdPtCutAnalysisPbPb *fdNdPtAnalysisPbPb = new AlidNdPtCutAnalysisPbPb("dNdPtCutAnalysisPbPb","dN/dPt Analysis");
92 fdNdPtAnalysisPbPb->SetEventCuts(evtCuts);
93 fdNdPtAnalysisPbPb->SetAcceptanceCuts(accCuts);
94 fdNdPtAnalysisPbPb->SetTrackCuts(esdTrackCuts);
95 fdNdPtAnalysisPbPb->SetAnalysisMode(analysisMode);
96 fdNdPtAnalysisPbPb->SetParticleMode(particleMode);
101 physTrigSel->SetAnalyzeMC();
102 fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel);
104 fdNdPtAnalysisPbPb->SetUseMCInfo(kTRUE);
105 }else { // online trigger
106 fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel);
109 task->AddAnalysisObject( fdNdPtAnalysisPbPb );
114 task->SetUseCentrality(1); // 0=off, 1=VZERO, 2=SPD
115 task->SetUseCentralityBin(0); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
116 // 0 = most centrality
121 // Create containers for input
122 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
123 mgr->ConnectInput(task, 0, cinput);
125 AliAnalysisDataContainer *coutput = mgr->CreateContainer("jotwinow_dNdPtCutAnalysisPbPb", TList::Class(), AliAnalysisManager::kOutputContainer, "jotwinow_dNdPtCutAnalysisPbPb.root");
126 mgr->ConnectOutput(task, 1, coutput);