1 AlidNdPtAnalysisPbPbAOD *AddTask_dNdPt_PbPbAOD( UInt_t uTriggerMask = AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral ,
2 Double_t dNCrossedRowsTPC = 100,
3 Int_t iFilterBit = AliAODTrack::kTrkGlobal,
4 char *contName = "dNdPtPbPbAOD",
5 Double_t dNClustersTPC = 0,
6 Bool_t bDoCutTPCLength = kTRUE
9 // Creates, configures and attaches to the train a cascades check task.
10 // Get the pointer to the existing analysis manager via the static access method.
11 //==============================================================================
12 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
14 ::Error("AddTask_dNdPt_PbPbAOD", "No analysis manager to connect to.");
18 // Check the analysis type using the event handlers connected to the analysis manager.
19 //==============================================================================
20 if (!mgr->GetInputEventHandler()) {
21 ::Error("AddTask_dNdPt_PbPbAOD", "This task requires an input event handler");
24 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
26 // Create and configure the task
27 AlidNdPtAnalysisPbPbAOD *task = new AlidNdPtAnalysisPbPbAOD("dNdPtPbPbAOD");
28 // UInt_t triggerMask = AliVEvent::kMB;
29 // triggerMask |= AliVEvent::kCentral;
30 // triggerMask |= AliVEvent::kSemiCentral;
32 task->SelectCollisionCandidates(uTriggerMask);
34 task->SetCutMinNCrossedRowsTPC(dNCrossedRowsTPC);
35 task->SetCutMinNClustersTPC(dNClustersTPC);
36 task->SetCutLengthInTPCPtDependent(bDoCutTPCLength);
37 //task->SetCutLengthInTPCPtDependent();
38 //task->SetPrefactorLengthInTPCPtDependent(0.85);
39 // task->EnableRelativeCuts();
40 // task->SetCutPercMinNClustersTPC(1.0);
41 // task->SetCutPercMinNCrossedRowsTPC(1.0);
43 Double_t binsPtCheck[] = {0., 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 3.0, 4.0, 5.0, 10.0, 13.0, 15.0, 20.0, 25.0, 30.0, 40.0, 50.0, 70.0, 100.0, 150.0, 200.0};
44 Int_t nBinPtCheck = sizeof(binsPtCheck)/sizeof(Double_t);
45 task->SetBinsPtCheck(nBinPtCheck, binsPtCheck);
47 // Double_t binsPhi[] = {0 ,0.10472 ,0.20944 ,0.314159 ,0.418879 ,0.523599 ,0.628319 ,0.733038 ,0.837758 ,0.942478 ,1.0472 ,1.15192 ,1.25664 ,1.36136 ,1.46608 ,1.5708 ,1.67552 ,1.78024 ,1.88496 ,1.98968 ,2.0944 ,2.19911 ,2.30383 ,2.40855 ,2.51327 ,2.61799 ,2.72271 ,2.82743 ,2.93215 ,3.03687 ,3.14159 ,3.24631 ,3.35103 ,3.45575 ,3.56047 ,3.66519 ,3.76991 ,3.87463 ,3.97935 ,4.08407 ,4.18879 ,4.29351 ,4.39823 ,4.50295 ,4.60767 ,4.71239 ,4.81711 ,4.92183 ,5.02655 ,5.13127 ,5.23599 ,5.34071 ,5.44543 ,5.55015 ,5.65487 ,5.75959 ,5.86431 ,5.96903 ,6.07375 ,6.17847 ,6.28319};
49 Double_t binsPhi[] = {-1.*TMath::Pi(), -2.97625, -2.8109, -2.64555, -2.4802, -2.31486, -2.14951, -1.98416, -1.81882, -1.65347, -1.48812, -1.32278, -1.15743, -0.992082, -0.826735, -0.661388, -0.496041, -0.330694, -0.165347, 0, 0.165347, 0.330694, 0.496041, 0.661388, 0.826735, 0.992082, 1.15743, 1.32278, 1.48812, 1.65347, 1.81882, 1.98416, 2.14951, 2.31486, 2.4802, 2.64555, 2.8109, 2.97625, TMath::Pi()};
51 Int_t nBinPhi = sizeof(binsPhi)/sizeof(Double_t);
52 task->SetBinsPhi(nBinPhi, binsPhi);
54 task->SetFilterBit(iFilterBit);
56 ::Info("AddTask_dNdPt_PbPbAOD",Form("CrossedRowCut set to %.0f", task->GetCutMinNCrossedRowsTPC()));
57 ::Info("AddTask_dNdPt_PbPbAOD",Form("FilterBit set to %d", task->GetFilterBit()));
61 AliAnalysisDataContainer *coutput = mgr->CreateContainer(Form("%s", contName), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:dNdPtHistos", mgr->GetCommonFileName()));
63 mgr->ConnectInput( task, 0, mgr->GetCommonInputContainer());
64 mgr->ConnectOutput(task, 1, coutput);