]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
conv gamma dphi task:
authorslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Nov 2013 14:10:12 +0000 (14:10 +0000)
committerslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Nov 2013 14:10:12 +0000 (14:10 +0000)
-Update the eta axes with setters and separate me axes
-update addtask

PWGGA/GammaConv/AliAnaConvCorrBase.cxx
PWGGA/GammaConv/AliAnaConvCorrBase.h
PWGGA/GammaConv/AliAnalysisTaskdPhi.cxx
PWGGA/GammaConv/AliAnalysisTaskdPhi.h
PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_PbPb.C

index a9aaa73a6b320678c63392711180671ba47fc77b..e558236af1e485c8a9958176a1c0c0d5322bbea8 100644 (file)
@@ -49,7 +49,8 @@ AliAnaConvCorrBase::AliAnaConvCorrBase(TString name, TString title = "title") :
   fAxisIso(), 
   fAxisCent(), 
   fAxisZ(),
-  fAxisMEEta(), 
+  fAxisTrigEta(), 
+  fAxisAssEta(), 
   fAxisMEPhi(),
   fCorrSparse(NULL),
   fTrigSparse(NULL),
@@ -59,7 +60,6 @@ AliAnaConvCorrBase::AliAnaConvCorrBase(TString name, TString title = "title") :
   fAxesList.SetOwner(kFALSE);
   fTrackAxisList.SetOwner(kFALSE);
   fTrigAxisList.SetOwner(kFALSE);
-
   SetUpDefaultBins();
  
 }
@@ -81,6 +81,12 @@ void AliAnaConvCorrBase::SetUpDefaultBins() {
   fAxisdEta.Set(32, -1.6, 1.6);
   fAxisdEta.SetNameTitle("dEta", "delta eta");
 
+  fAxisTrigEta.SetNameTitle("tEta", "Eta");
+  fAxisTrigEta.Set(320, -0.8, 0.8);
+
+  fAxisAssEta.SetNameTitle("aEta", "Eta");
+  fAxisAssEta.Set(360, -0.9, 0.9);
+
   fAxisdPhi.Set(32, -TMath::PiOver2(), 3*TMath::PiOver2());
   fAxisdPhi.SetNameTitle("dPhi", "delta Phi");
 
@@ -88,12 +94,15 @@ void AliAnaConvCorrBase::SetUpDefaultBins() {
   fAxistPt.Set(13, tptbins);
   fAxistPt.SetNameTitle("tPt", "trigger Pt");
 
-  Double_t cptbins[19] = {0.7, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0, 6.0, 8.0, 10.0, 12.5, 15, 20, 25, 30, 50, 100};
+  Double_t cptbins[19] = {0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 5.0, 6.0, 8.0, 10.0, 12.5, 15, 20, 25, 30, 50, 100};
   fAxiscPt.Set(18, cptbins);
   fAxiscPt.SetNameTitle("cPt", "track Pt");
 
   fAxisCent.SetNameTitle("centrality", "centrality");
+  fAxisCent.Set(1, -999, 999);
   fAxisZ.SetNameTitle("vtxz", "vtxz");
+  Double_t zbins[6] = {-10, -5, -1.5, 1.5, 5, 10 }; 
+  fAxisZ.Set(5, zbins);
 
   fAxisIso.Set(1, -0.5, 2.5);
   fAxisIso.SetNameTitle("iso", "isolation");
@@ -105,16 +114,13 @@ void AliAnaConvCorrBase::SetUpDefaultBins() {
   fAxesList.AddAt(&fAxisCent, 4);
   fAxesList.AddAt(&fAxisZ, 5);
 
-  fAxisMEEta.Set(320, -0.8, 0.8);
-  fAxisMEEta.SetNameTitle("eta", "eta");
-
-  fTrackAxisList.AddAt(&fAxisMEEta, 0);
+  fTrackAxisList.AddAt(&fAxisAssEta, 0);
   fTrackAxisList.AddAt(&fAxistPt, 1);
   fTrackAxisList.AddAt(&fAxiscPt, 2);
   fTrackAxisList.AddAt(&fAxisCent, 3);
   fTrackAxisList.AddAt(&fAxisZ, 4);
 
-  fTrigAxisList.AddAt(&fAxisMEEta, 0);
+  fTrigAxisList.AddAt(&fAxisTrigEta, 0);
   fTrigAxisList.AddAt(&fAxistPt, 1);
   fTrigAxisList.AddAt(&fAxisCent, 2);
   fTrigAxisList.AddAt(&fAxisZ, 3);
index 30c6d9a93714f3aa8d5708bddfc4916cafcd6a6b..48f7b8775234cb50160cdf08f31b14e26078a034 100644 (file)
@@ -58,7 +58,8 @@ public:
   TAxis& GetAxisIso()       { return fAxisIso;   }\r
   TAxis& GetAxisCent()      { return fAxisCent;  }\r
   TAxis& GetAxisZ()         { return fAxisZ;     }\r
-  TAxis& GetAxisMEEta()     { return fAxisMEEta; }\r
+  TAxis& GetAxisTrigEta()   { return fAxisTrigEta; }\r
+  TAxis& GetAxisAssEta()    { return fAxisAssEta; }\r
   TAxis& GetAxisMEPhi()     { return fAxisMEPhi; }\r
 \r
   TList& GetAxisList()      { return fAxesList;  }\r
@@ -88,7 +89,8 @@ private:
   TAxis fAxisCent; //Centrality\r
   TAxis fAxisZ; //vtx\r
   \r
-  TAxis fAxisMEEta ; //Eta axis for ME\r
+  TAxis fAxisTrigEta ; //Eta axis for ME\r
+  TAxis fAxisAssEta ; //Eta axis for ME\r
   TAxis fAxisMEPhi ; //Phi axis for ME\r
 \r
   THnSparseF * fCorrSparse; // Sparse for corr\r
@@ -100,7 +102,7 @@ private:
   AliAnaConvCorrBase(const AliAnaConvCorrBase&); // not implemented\r
   AliAnaConvCorrBase& operator=(const AliAnaConvCorrBase&); // not implemented\r
 \r
-  ClassDef(AliAnaConvCorrBase, 6); // example of analysis\r
+  ClassDef(AliAnaConvCorrBase, 7); // example of analysis\r
 \r
 };\r
 \r
index 0c3f696483597f7825e9f4796f53e535598bc1b3..17c8db0f8dd9c6476cb1498d8a64bcc69c259ae2 100644 (file)
@@ -63,7 +63,9 @@ AliAnalysisTaskdPhi::AliAnalysisTaskdPhi(const char *name) : AliAnalysisTaskSE(n
   fDeltaAODBranchName("AliAODGammaConversion_gamma"), 
   fAxistPt(),
   fAxiscPt(),
-  fAxisEta(),
+  fAxisdEta(),
+  fAxisTrigEta(),
+  fAxisAssEta(),
   fAxisPhi(),
   fAxisCent(),
   fAxisZ(), 
@@ -71,14 +73,23 @@ AliAnalysisTaskdPhi::AliAnalysisTaskdPhi(const char *name) : AliAnalysisTaskSE(n
   fDoPhoton(kFALSE)
 {
   //constructor
+                                                                                                                                                                                   
+  Double_t tptbins[10] = {0.1, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15, 50, 100};                                                                                                        
   fAxistPt.SetNameTitle("tPtAxis", "tPt");
-  fAxistPt.Set(20, 0, 100);
+  fAxistPt.Set(9, tptbins);
 
+  Double_t cptbins[13] = {0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 8.0, 10.0, 25, 50, 100};                                                                                         
   fAxiscPt.SetNameTitle("cPtAxis", "cPt");
-  fAxiscPt.Set(20, 0, 100);
+  fAxiscPt.Set(12, cptbins);
 
-  fAxisEta.SetNameTitle("EtaAxis", "Eta");
-  fAxisEta.Set(180, -0.9, 0.9);
+  fAxisdEta.SetNameTitle("dEtaAxis", "Eta");
+  fAxisdEta.Set(36, -1.8, 1.8);
+
+  fAxisTrigEta.SetNameTitle("TrigEtaAxis", "Eta");
+  fAxisTrigEta.Set(320, -0.8, 0.8);
+
+  fAxisAssEta.SetNameTitle("AssEtaAxis", "Eta");
+  fAxisAssEta.Set(360, -0.9, 0.9);
 
   fAxisPhi.SetNameTitle("PhiAxis", "Phi");
   fAxisPhi.Set(128, 0, TMath::TwoPi());
@@ -130,36 +141,40 @@ AliAnalysisTaskdPhi::~AliAnalysisTaskdPhi(){
 
 ///________________________________________________________________________
 void AliAnalysisTaskdPhi::SetUpCorrObjects() {
-  ///Creat corr obj
-  //  fIsoAna = new AliAnaConvIsolation();
-  
+  //Set up corr objects
   AliDebug(AliLog::kDebug + 5, "Set Up corr objects");
 
-  
-
-
   if(fDoPhoton) {
     fPhotonCorr = new AliAnaConvCorrPhoton("PhotonCorr","photon %s");
-    fPhotonCorr->GetAxisCent().Set(fAxisCent.GetNbins(), fAxisCent.GetXbins()->GetArray());
-    fPhotonCorr->GetAxisZ().Set(fAxisZ.GetNbins(), fAxisZ.GetXbins()->GetArray());
-    fPhotonCorr->GetAxistPt().Set(fAxistPt.GetNbins(), fAxistPt.GetXbins()->GetArray());
-    fPhotonCorr->GetAxiscPt().Set(fAxiscPt.GetNbins(), fAxiscPt.GetXbins()->GetArray());
+    SetUpCorrAxes(fPhotonCorr);
     fPhotonCorr->CreateHistograms();
     fHistograms->Add(fPhotonCorr->GetHistograms());
   }
   
   fPionCorr = new AliAnaConvCorrPion("PionCorr", "pion");
-  fPionCorr->GetAxisCent().Set(fAxisCent.GetNbins(), fAxisCent.GetXbins()->GetArray());
-  fPionCorr->GetAxisZ().Set(fAxisZ.GetNbins(), fAxisZ.GetXbins()->GetArray());
-  fPionCorr->GetAxistPt().Set(fAxistPt.GetNbins(), fAxistPt.GetXbins()->GetArray());
-  fPionCorr->GetAxiscPt().Set(fAxiscPt.GetNbins(), fAxiscPt.GetXbins()->GetArray());
+  SetUpCorrAxes(fPionCorr);
   fPionCorr->GetAxisM().Set(fAxisPiM.GetNbins(), fAxisPiM.GetXbins()->GetArray());
   fPionCorr->CreateHistograms();
   fHistograms->Add(fPionCorr->GetHistograms());
 }
 
-    
-    
+///________________________________________________________________________    
+void AliAnalysisTaskdPhi::SetUpCorrAxes(AliAnaConvCorrBase * corr) {
+  ///Set up axes in corr object
+  corr->GetAxisCent().Set(fAxisCent.GetNbins(), fAxisCent.GetXbins()->GetArray());
+  const Double_t * zbins = fAxisZ.GetXbins()->GetArray();
+  if(zbins) {
+    corr->GetAxisZ().Set(fAxisZ.GetNbins(), fAxisZ.GetXbins()->GetArray());
+  } else {
+    corr->GetAxisZ().Set(fAxisZ.GetNbins(), fAxisZ.GetBinLowEdge(1), fAxisZ.GetBinUpEdge(fAxisZ.GetNbins()));
+  }
+  
+  corr->GetAxistPt().Set(fAxistPt.GetNbins(), fAxistPt.GetXbins()->GetArray());
+  corr->GetAxiscPt().Set(fAxiscPt.GetNbins(), fAxiscPt.GetXbins()->GetArray());
+  corr->GetAxisdEta().Set(fAxisdEta.GetNbins(), fAxisdEta.GetBinLowEdge(1), fAxisdEta.GetBinUpEdge(fAxisdEta.GetNbins()));
+  corr->GetAxisTrigEta().Set(fAxisTrigEta.GetNbins(), fAxisTrigEta.GetBinLowEdge(1), fAxisTrigEta.GetBinUpEdge(fAxisTrigEta.GetNbins()));
+  corr->GetAxisAssEta().Set(fAxisAssEta.GetNbins(), fAxisAssEta.GetBinLowEdge(1), fAxisAssEta.GetBinUpEdge(fAxisAssEta.GetNbins()));
+}    
        
          
 
@@ -244,7 +259,7 @@ void AliAnalysisTaskdPhi::UserCreateOutputObjects() {
   MEHistograms->Add(hMEvents);
 
   hTrackCent = new TH2I("hTrackCent", "N accepted tracks vs centrality",
-                       fAxisCent.GetNbins() > 2 ? 100 : 1, -999, 999,
+                       fAxisCent.GetNbins() > 2 ? 100 : 1, fAxisCent.GetBinLowEdge(1), fAxisCent.GetBinUpEdge(fAxisCent.GetNbins()),
                        750, 0, 1500);
   MEHistograms->Add(hTrackCent);
 
@@ -443,7 +458,7 @@ void AliAnalysisTaskdPhi::UserExec(Option_t *) {
   
   ///create track array
   TObjArray tracks;
-  const Double_t etalim[2] = { fAxisEta.GetBinLowEdge(1), fAxisEta.GetBinUpEdge(fAxisEta.GetNbins())};
+  const Double_t etalim[2] = { fAxisTrigEta.GetBinLowEdge(1), fAxisTrigEta.GetBinUpEdge(fAxisTrigEta.GetNbins())};
   for(Int_t iTrack = 0; iTrack < fInputEvent->GetNumberOfTracks(); iTrack++) {
     AliVTrack * track = static_cast<AliVTrack*>(fInputEvent->GetTrack(iTrack));
     if(track->Pt() < fAxiscPt.GetBinLowEdge(1) ) continue;
@@ -464,7 +479,7 @@ void AliAnalysisTaskdPhi::UserExec(Option_t *) {
 void AliAnalysisTaskdPhi::Process(TObjArray * gammas, TObjArray * tracks, const Float_t cent, const Float_t vtxz) {
   ///Process stuff
 
-  const Double_t etalim[2] = { fAxisEta.GetBinLowEdge(1), fAxisEta.GetBinUpEdge(fAxisEta.GetNbins())};
+  const Double_t etalim[2] = { fAxisTrigEta.GetBinLowEdge(1), fAxisTrigEta.GetBinUpEdge(fAxisTrigEta.GetNbins())};
   if(DebugLevel() > 4) printf("Number of accepted gammas, tracks %d  %d \n", gammas->GetEntriesFast(), tracks->GetEntriesFast());
  
   AliAnaConvCorrBase * gCorr = fPhotonCorr; //GetCorrObject(vertexBin, centBin, fPhotonCorr);
index 509857e65bc8ef06a59e64597ec20512502986ed..936c2f5bf2577218bc563d605afa54d5ae751665 100644 (file)
@@ -36,16 +36,19 @@ public:
 
   virtual void   UserCreateOutputObjects();
   virtual void   SetUpCorrObjects();
+  virtual void   SetUpCorrAxes(AliAnaConvCorrBase * corr);
   virtual void   UserExec(Option_t *option);
   virtual void   Terminate(Option_t *);
 
-  TAxis& GetAxistPt()   { return fAxistPt;   }
-  TAxis& GetAxiscPt()   { return fAxiscPt;   }
-  TAxis& GetAxisEta()  { return fAxisEta;  }
-  TAxis& GetAxisPhi()  { return fAxisPhi;  }
-  TAxis& GetAxisZ()    { return fAxisZ;    }
-  TAxis& GetAxisCent() { return fAxisCent; }
-  TAxis& GetAxisPiMass() { return fAxisPiM; }
+  TAxis& GetAxistPt()     { return fAxistPt;      }
+  TAxis& GetAxiscPt()     { return fAxiscPt;      }
+  TAxis& GetAxisdEta()    { return fAxisdEta;     }
+  TAxis& GetAxisTrigEta() { return fAxisTrigEta;  }
+  TAxis& GetAxisAssEta()  { return fAxisAssEta;   }
+  TAxis& GetAxisPhi()     { return fAxisPhi;      }
+  TAxis& GetAxisZ()       { return fAxisZ;        }
+  TAxis& GetAxisCent()    { return fAxisCent;     }
+  TAxis& GetAxisPiMass()  { return fAxisPiM;      }
 
   void SetV0Filter(AliConversionCuts * filter) { fV0Filter = filter; }
   
@@ -88,7 +91,9 @@ private:
 
   TAxis fAxistPt; //comment
   TAxis fAxiscPt; //comment
-  TAxis fAxisEta; //comment
+  TAxis fAxisdEta; //comment
+  TAxis fAxisTrigEta; //comment
+  TAxis fAxisAssEta; //comment
   TAxis fAxisPhi; //comment
   TAxis fAxisCent; //comment
   TAxis fAxisZ; //comment
@@ -99,7 +104,7 @@ private:
   AliAnalysisTaskdPhi(const AliAnalysisTaskdPhi&); // not implemented
   AliAnalysisTaskdPhi& operator=(const AliAnalysisTaskdPhi&); // not implemented
   
-  ClassDef(AliAnalysisTaskdPhi, 5); 
+  ClassDef(AliAnalysisTaskdPhi, 6); 
 };
 
 inline THnSparseF * AliAnalysisTaskdPhi::GetMEHistogram(Int_t binz, Int_t binc, TObjArray * array) {
index 881839f2fdd0eaf5c05c30eda604198a85718d24..27e78cd422e7419e8a9060cceef0742a4baecb08 100644 (file)
@@ -20,17 +20,18 @@ AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023
   AliAnalysisTaskdPhi *task = new AliAnalysisTaskdPhi((TString("slindalTask_dPhi")+"_" + v0Cut));
 
   ///Axes for histrograms
-  Double_t cptbins[14] = {0.7, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15, 50, 100};
-  task->GetAxiscPt().Set(13, cptbins);
+  Double_t cptbins[13] = {0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 8.0, 10.0, 25, 50, 100};
+  task->GetAxiscPt().Set(12, cptbins);
 
   Double_t tptbins[10] = {2.0, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0, 15, 50, 100};
   task->GetAxistPt().Set(9, tptbins);
 
   if(pbpb) {
-    Double_t centBins[6] = {0, 5, 10, 30, 60, 90};
-    task->GetAxisCent().Set(5, centBins);
+    Double_t centBins[7] = {0, 5, 10, 30, 50, 60, 90};
+    task->GetAxisCent().Set(6, centBins);
   } else {
-    task->GetAxisCent().Set(1, -9999, 9999);
+    Double_t centBins[2] = {-9999, 9999};
+    task->GetAxisCent().Set(1, centBins);
   }
 
   Double_t zbins[6] = { -10, -5, -1.5, 1.5, 5, 10};
@@ -39,20 +40,38 @@ AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023
   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);
 
-  //Track cuts for associated tracks
-  AliConversionTrackCuts * cuts = new AliConversionTrackCuts();
-  cuts->SetDCAZmax(2.5);
-  cuts->SetDCAXYmax(1.5);
-  cuts->SetTPCminNClusters(50);
-  cuts->SetTPCCFoundClusters(0.6);
-  cuts->SetTPCmaxChi2(10.0);
-  cuts->SetRejectKinkDaughters();
-  cuts->SetRequireTPCRefit(kFALSE);
-  cuts->Print();
-  task->SetTrackCuts(cuts);
+
+  //AliConversionTrackCuts * cuts = new AliConversionTrackCuts();
+  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);
+
+  //cuts->SetESDCuts(esdTrackCuts);
+  task->SetTrackCuts(trackCuts);
+  
  
   ///Pion cuts
-  AliConversionMesonCuts * picuts = new AliConversionMesonCuts();
+  AliConversionMesonCuts * picuts = new AliConversionMesonCuts("dphi_pioncuts");
   picuts->InitializeCutsFromCutString(pionCut);
   task->SetMesonFilter(picuts);
 
@@ -60,7 +79,7 @@ AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023
     ///V0 analysis cuts (applied before pion analysis)
     AliConversionCuts * gcuts = new AliConversionCuts();
     gcuts->InitializeCutsFromCutString(photoncut);
-    task->SetV0Filter(gcuts);
+    task->SetPhotonFilter(gcuts);
   }
 
   //================================================
@@ -70,7 +89,7 @@ AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023
   //below the trunk version
   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
   TString baseString("slindal_dPhi_");
-  baseString += v0Cut + "_";
+  baseString += v0Cut + "_" + pionCut;
 
   //dumm output container
   AliAnalysisDataContainer *coutput0 =
@@ -82,17 +101,10 @@ AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023
   //define output containers, please use 'username'_'somename'
   AliAnalysisDataContainer *coutput1 = 
        mgr->CreateContainer(baseString+"me", TList::Class(),
-                                                AliAnalysisManager::kOutputContainer,baseString+"me.root");
+                                                AliAnalysisManager::kOutputContainer,baseString+".root");
 
   //define output containers, please use 'username'_'somename'
-  AliAnalysisDataContainer *coutput2 = 
-    mgr->CreateContainer(baseString+"photon", TList::Class(),
-                        AliAnalysisManager::kOutputContainer, baseString+"photon.root");
   
-  //define output containers, please use 'username'_'somename'
-  AliAnalysisDataContainer *coutput3 = 
-    mgr->CreateContainer(baseString+"pion", TList::Class(),
-                        AliAnalysisManager::kOutputContainer,baseString+"pion.root");
   
   //========= Add PID Reponse to ANALYSIS manager ====
   Bool_t isMC = kFALSE;
@@ -104,7 +116,8 @@ AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023
   //=========  Set Cutnumber for V0Reader ================================
   //  TString cutnumber = "100000000008400100150000000"; 
   //========= Add V0 Reader to  ANALYSIS manager if not yet existent =====
-  if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
+  AliV0ReaderV1 * fV0ReaderV1 = (AliV0ReaderV1*)mgr->GetTask("V0ReaderV1");
+  if( !fV0reader ){
     AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
       
     fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
@@ -134,7 +147,6 @@ AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023
     }
       
     fV0ReaderV1->Init();
-
     mgr->AddTask(fV0ReaderV1);
     mgr->ConnectInput(fV0ReaderV1,0,cinput);
     task->SetV0Reader(fV0ReaderV1);
@@ -143,6 +155,7 @@ AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023
     ///V0 analysis cuts (applied before pion analysis)
     AliConversionCuts * v0cuts = new AliConversionCuts();
     v0cuts->InitializeCutsFromCutString(v0Cut);
+    task->SetV0Reader(fV0ReaderV1);
     task->SetV0Filter(v0cuts);
   }
 
@@ -150,8 +163,6 @@ AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023
   mgr->ConnectInput  (task,  0, cinput );
   mgr->ConnectOutput (task,  0, coutput0);
   mgr->ConnectOutput (task,  1, coutput1);
-  mgr->ConnectOutput (task,  2, coutput2);
-  mgr->ConnectOutput (task,  3, coutput3);
   
   return task;
 }