2 void AddTask_mkoehler_dNdPtPbPb()
5 CheckLoadLibrary("libPWG0base");
6 CheckLoadLibrary("libPWG0dep");
7 CheckLoadLibrary("libPWG0selectors");
9 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
12 Error("AddTask_mkoehler_dNdPtPbPb", "No analysis manager found.");
17 Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
18 // Bool_t hasMC= kFALSE;
21 // Switch off all AliInfo (too much output!!!)
22 AliLog::SetGlobalLogLevel(AliLog::kError);
23 mgr->SetDebugLevel(0);
26 // Create physics trigger selection class
30 AliPhysicsSelection *physTrigSel = new AliPhysicsSelection();
35 Float_t zvWindow = 20. ;
37 AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
38 evtCuts->SetZvRange(-zvWindow,zvWindow);
39 evtCuts->SetMeanXYZv(0.0,0.0,0.0);
40 evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
41 evtCuts->SetTriggerRequired(kTRUE);
44 // Create geom. acceptance cuts
46 Float_t etaWindow = 1. ;
47 Float_t ptMin = 0.15 ;
49 AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
50 accCuts->SetEtaRange(-etaWindow,etaWindow);
51 accCuts->SetPtRange(ptMin,1.e10);
52 accCuts->SetMaxDCAr(3.0);
53 accCuts->SetMaxDCAz(30.0);
56 // Create standard esd track cuts
60 gROOT->LoadMacro("$ALICE_ROOT/PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C");
61 AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
63 printf("ERROR: esdTrackCuts could not be created\n");
66 esdTrackCuts->SetHistogramsOn(kTRUE);
72 AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
73 task->SetUseMCInfo(hasMC);
75 //TString datatype=gSystem->Getenv("CONFIG_FILE");
76 //if ( datatype == "PbPb" ){
77 // task->SelectCollisionCandidates(AliVEvent::kUserDefined);
80 task->SelectCollisionCandidates(AliVEvent::kMB);
85 // task->SelectCollisionCandidates();
88 // set analysis options from the Helper here
90 AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kAnalysisPbPb;
91 AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPC ;
92 AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ;
96 // Create cut analysis object
98 if(outputObject==AlidNdPtHelper::kAnalysisPbPb){
100 AlidNdPtAnalysisPbPb *fdNdPtAnalysisPbPb = new AlidNdPtAnalysisPbPb("dNdPtAnalysisPbPb","dN/dPt Analysis");
101 fdNdPtAnalysisPbPb->SetEventCuts(evtCuts);
102 fdNdPtAnalysisPbPb->SetAcceptanceCuts(accCuts);
103 fdNdPtAnalysisPbPb->SetTrackCuts(esdTrackCuts);
104 fdNdPtAnalysisPbPb->SetAnalysisMode(analysisMode);
105 fdNdPtAnalysisPbPb->SetParticleMode(particleMode);
110 physTrigSel->SetAnalyzeMC();
111 fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel);
113 fdNdPtAnalysisPbPb->SetUseMCInfo(kTRUE);
114 fdNdPtAnalysisPbPb->SetHistogramsOn(kTRUE);
115 //fdNdPtAnalysisPbPb->SetHistogramsOn(kFALSE);
116 }else { // online trigger
117 fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel);
120 task->AddAnalysisObject( fdNdPtAnalysisPbPb );
124 task->SetUseCentrality(1); // 0=off, 1=VZERO, 2=SPD
125 task->SetUseCentralityBin(0); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
126 // 0 = most centrality
130 task->SetUseCentrality(1); // 0=off, 1=VZERO, 2=SPD
131 task->SetUseCentralityBin(0); // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
132 // 0 = most centrality
137 // Create containers for input
138 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
139 mgr->ConnectInput(task, 0, cinput);
141 AliAnalysisDataContainer *coutput = mgr->CreateContainer("mkoehler_dNdPtPbPb", TList::Class(), AliAnalysisManager::kOutputContainer, "mkoehler_dNdPtPbPb.root");
142 mgr->ConnectOutput(task, 1, coutput);