+++ /dev/null
-AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023220000000",
- TString pionCut = "01522045009000",
- TString photoncut = "",
- Bool_t pbpb = kTRUE) {
-
- ////////////////////CURRENTLY NOT WORKING ///////////////////////////////
-
- // standard with task
- printf("========================================================================================\n");
- printf("dPhiAnalysis: Initialising AliAnalysisTaskdPhi\n");
- printf("========================================================================================\n");
-
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTask_slindal_dPhi", "No analysis manager found.");
- return 0;
- }
-
- AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
- Bool_t isAOD=man->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
-
- AliAnalysisTaskdPhi *task = new AliAnalysisTaskdPhi((TString("slindalTask_dPhi")+"_" + v0Cut));
-
- ///Axes for histrograms
- Double_t cptbins[6] = {0.5, 1.0, 1.5, 3.0, 5.0, 10};
- task->GetAxiscPt().Set(5, cptbins);
-
- Double_t tptbins[3] = {3.0, 5.0, 10.0};
- task->GetAxistPt().Set(2, tptbins);
-
- if(pbpb) {
- Double_t centBins[7] = {0, 5, 10, 30, 50, 60, 90};
- task->GetAxisCent().Set(6, centBins);
- } else {
- Double_t centBins[2] = {-9999, 9999};
- task->GetAxisCent().Set(1, centBins);
- }
-
- Double_t zbins[6] = { -10, -5, -1.5, 1.5, 5, 10};
- task->GetAxisZ().Set(5, zbins);
-
- Double_t mbins[17] = {0.07, 0.09, 0.1, 0.11, 0.12, 0.125, 0.1275, 0.13, 0.14, 0.1425, 0.145, 0.15, 0.16, 0.18, 0.2, 0.24, 0.26};
- task->GetAxisPiMass().Set(16, mbins);
-
- AliESDtrackCuts * trackCuts = new AliESDtrackCuts();
- TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x");
- trackCuts->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100);
- trackCuts->SetMaxChi2PerClusterTPC(4);
- trackCuts->SetRequireTPCStandAlone(kTRUE);
- trackCuts->SetAcceptKinkDaughters(kFALSE);
- trackCuts->SetRequireTPCRefit(kTRUE);
- trackCuts->SetMaxFractionSharedTPCClusters(0.4);
-
- trackCuts->SetMaxDCAToVertexXY(2.4);
- trackCuts->SetMaxDCAToVertexZ(3.2);
- trackCuts->SetDCAToVertex2D(kTRUE);
-
- trackCuts->SetMaxChi2PerClusterITS(36);
- trackCuts->SetMaxChi2TPCConstrainedGlobal(36);
-
- trackCuts->SetRequireSigmaToVertex(kFALSE);
-
- trackCuts->SetEtaRange(-0.9, 0.9);
- trackCuts->SetPtRange(cptbins[0], 1000000.0);
-
- trackCuts->SetRequireITSRefit(kFALSE);
- task->SetTrackFilter(trackCuts);
-
- ///open side nclusters graph
- AliESDtrackCuts * trackCuts2 = new AliESDtrackCuts();
- TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","65.+30./20.*x");
- trackCuts2->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100);
- trackCuts2->SetMaxChi2PerClusterTPC(4);
- trackCuts2->SetRequireTPCStandAlone(kTRUE);
- trackCuts2->SetAcceptKinkDaughters(kFALSE);
- trackCuts2->SetRequireTPCRefit(kTRUE);
- trackCuts2->SetMaxFractionSharedTPCClusters(0.4);
-
- trackCuts2->SetMaxDCAToVertexXY(2.4);
- trackCuts2->SetMaxDCAToVertexZ(3.2);
- trackCuts2->SetDCAToVertex2D(kTRUE);
-
- trackCuts2->SetMaxChi2PerClusterITS(36);
- trackCuts2->SetMaxChi2TPCConstrainedGlobal(36);
-
- trackCuts2->SetRequireSigmaToVertex(kFALSE);
-
- trackCuts2->SetEtaRange(-0.9, 0.9);
- trackCuts2->SetPtRange(cptbins[0], 1000000.0);
-
- trackCuts2->SetRequireITSRefit(kFALSE);
- task->AddTrackFilter(trackCuts2, kTRUE);
-
- ///Tight side nclusters graphs
- AliESDtrackCuts * trackCuts3 = new AliESDtrackCuts();
- TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","75.+30./20.*x");
- trackCuts3->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100);
- trackCuts3->SetMaxChi2PerClusterTPC(4);
- trackCuts3->SetRequireTPCStandAlone(kTRUE);
- trackCuts3->SetAcceptKinkDaughters(kFALSE);
- trackCuts3->SetRequireTPCRefit(kTRUE);
- trackCuts3->SetMaxFractionSharedTPCClusters(0.4);
-
- trackCuts3->SetMaxDCAToVertexXY(2.4);
- trackCuts3->SetMaxDCAToVertexZ(3.2);
- trackCuts3->SetDCAToVertex2D(kTRUE);
-
- trackCuts3->SetMaxChi2PerClusterITS(36);
- trackCuts3->SetMaxChi2TPCConstrainedGlobal(36);
-
- trackCuts3->SetRequireSigmaToVertex(kFALSE);
-
- trackCuts3->SetEtaRange(-0.9, 0.9);
- trackCuts3->SetPtRange(cptbins[0], 1000000.0);
-
- trackCuts3->SetRequireITSRefit(kFALSE);
- task->AddTrackFilter(trackCuts3, kFALSE);
-
-
- ////Tight xyz track cuts
- AliESDtrackCuts4 * trackCuts4 = new AliESDtrackCuts();
- TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x");
- trackCuts4->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100);
- trackCuts4->SetMaxChi2PerClusterTPC(4);
- trackCuts4->SetRequireTPCStandAlone(kTRUE);
- trackCuts4->SetAcceptKinkDaughters(kFALSE);
- trackCuts4->SetRequireTPCRefit(kTRUE);
- trackCuts4->SetMaxFractionSharedTPCClusters(0.4);
-
- trackCuts4->SetMaxDCAToVertexXY(2.2);
- trackCuts4->SetMaxDCAToVertexZ(3.0);
- trackCuts4->SetDCAToVertex2D(kTRUE);
-
- trackCuts4->SetMaxChi2PerClusterITS(36);
- trackCuts4->SetMaxChi2TPCConstrainedGlobal(36);
-
- trackCuts4->SetRequireSigmaToVertex(kFALSE);
-
- trackCuts4->SetEtaRange(-0.9, 0.9);
- trackCuts4->SetPtRange(cptbins[0], 1000000.0);
-
- trackCuts4->SetRequireITSRefit(kFALSE);
- task->AddTrackFilter(trackCuts4, kFALSE);
-
-
- ////lose xyz track cuts
- AliESDtrackCuts5 * trackCuts5 = new AliESDtrackCuts();
- TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x");
- trackCuts5->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100);
- trackCuts5->SetMaxChi2PerClusterTPC(4);
- trackCuts5->SetRequireTPCStandAlone(kTRUE);
- trackCuts5->SetAcceptKinkDaughters(kFALSE);
- trackCuts5->SetRequireTPCRefit(kTRUE);
- trackCuts5->SetMaxFractionSharedTPCClusters(0.4);
-
- trackCuts5->SetMaxDCAToVertexXY(2.6);
- trackCuts5->SetMaxDCAToVertexZ(3.6);
- trackCuts5->SetDCAToVertex2D(kTRUE);
-
- trackCuts5->SetMaxChi2PerClusterITS(36);
- trackCuts5->SetMaxChi2TPCConstrainedGlobal(36);
-
- trackCuts5->SetRequireSigmaToVertex(kFALSE);
-
- trackCuts5->SetEtaRange(-0.9, 0.9);
- trackCuts5->SetPtRange(cptbins[0], 1000000.0);
-
- trackCuts5->SetRequireITSRefit(kFALSE);
- task->AddTrackFilter(trackCuts5);
-
-
-
- ///open side shared tpt clusters
- AliESDtrackCuts * trackCuts2 = new AliESDtrackCuts();
- TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x");
- trackCuts2->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100);
- trackCuts2->SetMaxChi2PerClusterTPC(4);
- trackCuts2->SetRequireTPCStandAlone(kTRUE);
- trackCuts2->SetAcceptKinkDaughters(kFALSE);
- trackCuts2->SetRequireTPCRefit(kTRUE);
- trackCuts2->SetMaxFractionSharedTPCClusters(0.44);
-
- trackCuts2->SetMaxDCAToVertexXY(2.4);
- trackCuts2->SetMaxDCAToVertexZ(3.2);
- trackCuts2->SetDCAToVertex2D(kTRUE);
-
- trackCuts2->SetMaxChi2PerClusterITS(36);
- trackCuts2->SetMaxChi2TPCConstrainedGlobal(36);
-
- trackCuts2->SetRequireSigmaToVertex(kFALSE);
-
- trackCuts2->SetEtaRange(-0.9, 0.9);
- trackCuts2->SetPtRange(cptbins[0], 1000000.0);
-
- trackCuts2->SetRequireITSRefit(kFALSE);
- task->AddTrackFilter(trackCuts2, kTRUE);
-
-
- ///tight side shared tpt clusters
- AliESDtrackCuts * trackCuts2 = new AliESDtrackCuts();
- TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x");
- trackCuts2->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100);
- trackCuts2->SetMaxChi2PerClusterTPC(4);
- trackCuts2->SetRequireTPCStandAlone(kTRUE);
- trackCuts2->SetAcceptKinkDaughters(kFALSE);
- trackCuts2->SetRequireTPCRefit(kTRUE);
- trackCuts2->SetMaxFractionSharedTPCClusters(0.36);
-
- trackCuts2->SetMaxDCAToVertexXY(2.4);
- trackCuts2->SetMaxDCAToVertexZ(3.2);
- trackCuts2->SetDCAToVertex2D(kTRUE);
-
- trackCuts2->SetMaxChi2PerClusterITS(36);
- trackCuts2->SetMaxChi2TPCConstrainedGlobal(36);
-
- trackCuts2->SetRequireSigmaToVertex(kFALSE);
-
- trackCuts2->SetEtaRange(-0.9, 0.9);
- trackCuts2->SetPtRange(cptbins[0], 1000000.0);
-
- trackCuts2->SetRequireITSRefit(kFALSE);
- task->AddTrackFilter(trackCuts2, kTRUE);
-
-
-
- ///Pizero cuts
- pionString = "01630031009000";
- TString * picutarr[2][4];
-
- picutarr[0][
-
-
-
-
-
- AliConversionMesonCuts * picuts = new AliConversionMesonCuts();
- picuts->InitializeCutsFromCutString(pionString);
- task->SetMesonFilter(picuts);
-
-
- AliConversionMesonCuts * picuts2 = new AliConversionMesonCuts();
- picuts2->InitializeCutsFromCutString(pionString2);
- task->AddMesonFilter(picuts2, kFALSE);
-
-
- AliConversionMesonCuts * picuts3 = new AliConversionMesonCuts();
- picuts3->InitializeCutsFromCutString(pionString3);
- task->AddMesonFilter(picuts3);
-
-
-
-
- ///Pion cuts
- AliConversionMesonCuts * picuts = new AliConversionMesonCuts("dphi_pioncuts");
- picuts->InitializeCutsFromCutString(pionCut);
- task->SetMesonFilter(picuts);
-
- if(photoncut.Length() > 0) {
- ///V0 analysis cuts (applied before pion analysis)
- AliConversionCuts * gcuts = new AliConversionCuts();
- gcuts->InitializeCutsFromCutString(photoncut);
- task->SetPhotonFilter(gcuts);
- }
-
- //================================================
- // data containers
- //================================================
- // find input container
- //below the trunk version
- AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
- TString baseString("slindal_dPhi_");
- baseString += v0Cut + "_" + pionCut;
-
- //dumm output container
- AliAnalysisDataContainer *coutput0 =
- mgr->CreateContainer(baseString+"tree",
- TTree::Class(),
- AliAnalysisManager::kExchangeContainer,
- "slindal_default");
-
- //define output containers, please use 'username'_'somename'
- AliAnalysisDataContainer *coutput1 =
- mgr->CreateContainer(baseString+"me", TList::Class(),
- AliAnalysisManager::kOutputContainer,baseString+".root");
-
- //define output containers, please use 'username'_'somename'
-
-
- //========= Add PID Reponse to ANALYSIS manager ====
- Bool_t isMC = kFALSE;
- if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
- gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
- AddTaskPIDResponse(isMC);
- }
-
- //========= Set Cutnumber for V0Reader ================================
- // TString cutnumber = "100000000008400100150000000";
- //========= Add V0 Reader to ANALYSIS manager if not yet existent =====
- AliV0ReaderV1 * fV0ReaderV1 = (AliV0ReaderV1*)mgr->GetTask("V0ReaderV1");
- if( !fV0reader ){
- AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
-
- fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
- fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
- fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
-
- if (!mgr) {
- Error("AddTask_V0ReaderV1", "No analysis manager found.");
- return;
- }
-
- // Set AnalysisCut Number
- AliConversionCuts *fCuts=NULL;
- if(v0Cut!=""){
- fCuts= new AliConversionCuts(v0Cut.Data(),v0Cut.Data());
- if(pbpb) {
- fCuts->SetPreSelectionCutFlag(kFALSE);
- } else {
- fCuts->SetPreSelectionCutFlag(kTRUE);
- }
- if(fCuts->InitializeCutsFromCutString(v0Cut)){
- fV0ReaderV1->SetConversionCuts(fCuts);
- //fCuts->SetFillCutHistograms("",kTRUE);
- }
-
-
- }
-
- fV0ReaderV1->Init();
- mgr->AddTask(fV0ReaderV1);
- mgr->ConnectInput(fV0ReaderV1,0,cinput);
- task->SetV0Reader(fV0ReaderV1);
- task->SaveReaderHists();
- } else {
- ///V0 analysis cuts (applied before pion analysis)
- AliConversionCuts * v0cuts = new AliConversionCuts();
- v0cuts->InitializeCutsFromCutString(v0Cut);
- task->SetV0Reader(fV0ReaderV1);
- task->SetV0Filter(v0cuts);
- }
-
- task->SelectCollisionCandidates(AliVEvent::kMB|AliVEvent::kCentral|AliVEvent::kSemiCentral);
-
- mgr->AddTask(task);
- mgr->ConnectInput (task, 0, cinput );
- mgr->ConnectOutput (task, 0, coutput0);
- mgr->ConnectOutput (task, 1, coutput1);
-
- return task;
-}
-
-