]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/GammaConv/AliAnalysisTaskEtaToPiPlPiMiGamma.cxx
flat friends update
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskEtaToPiPlPiMiGamma.cxx
index 4344e790712b815b5097f55d53788efff4a2deb3..05595937e7676def3993b8145258ea14c51a0f0d 100644 (file)
@@ -1,9 +1,8 @@
 /**************************************************************************
  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  *                                                                        *
- * Author: Pedro Gonz??lez, Pedro Ladr??n de Guevara, Ernesto L??pez Torres, *
- *         Eulogio Serradilla, Ana Marin, Friederike Bock                 *
- * Version 2                                                              *
+ * Author: Friederike Bock                                                *
+ * Version 1                                                              *
  *                                                                        *
  * Permission to use, copy, modify and distribute this software and its   *
  * documentation strictly for non-commercial purposes is hereby granted   *
@@ -14,8 +13,7 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-// Analysis task for pi0->e+e-gamma (Dalitz decay)
-// Analysis task for chic->JPsi+gamma
+// Analysis task for eta->pi+ +pi- gamma (pion Dalitz decay)
 
 #include <vector>
 
@@ -77,9 +75,11 @@ AliAnalysisTaskEtaToPiPlPiMiGamma::AliAnalysisTaskEtaToPiPlPiMiGamma():
        fSelectorPosPionIndex(0),
        fGoodGammas(NULL),
        fGoodVirtualParticles(NULL),
+       fEventCutArray(NULL),
        fGammaCutArray(NULL),
        fPionCutArray(NULL),
        fMesonCutArray(NULL),
+       fEventCuts(NULL),
        fConversionCuts(NULL),
        fHistoConvGammaPt(NULL),
        fHistoConvGammaEta(NULL),
@@ -134,7 +134,8 @@ AliAnalysisTaskEtaToPiPlPiMiGamma::AliAnalysisTaskEtaToPiPlPiMiGamma():
        fDoMesonAnalysis(kTRUE),
        fDoMesonQA(kFALSE),
        fIsFromMBHeader(kTRUE),
-       fIsMC(kFALSE)
+       fIsMC(kFALSE),
+       fIsGammaEtaCand(kFALSE)
 {
 
 }
@@ -160,9 +161,11 @@ AliAnalysisTaskEtaToPiPlPiMiGamma::AliAnalysisTaskEtaToPiPlPiMiGamma( const char
        fSelectorPosPionIndex(0),
        fGoodGammas(NULL),
        fGoodVirtualParticles(NULL),
+       fEventCutArray(NULL),
        fGammaCutArray(NULL),
        fPionCutArray(NULL),
        fMesonCutArray(NULL),
+       fEventCuts(NULL),
        fConversionCuts(NULL),
        fHistoConvGammaPt(NULL),
        fHistoConvGammaEta(NULL),
@@ -217,7 +220,8 @@ AliAnalysisTaskEtaToPiPlPiMiGamma::AliAnalysisTaskEtaToPiPlPiMiGamma( const char
        fDoMesonAnalysis(kTRUE),
        fDoMesonQA(kFALSE),
        fIsFromMBHeader(kTRUE),
-       fIsMC(kFALSE)
+       fIsMC(kFALSE),
+       fIsGammaEtaCand(kFALSE)
 {
    DefineOutput(1, TList::Class());
 }
@@ -256,13 +260,14 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::InitBack(){
        fBGHandler = new AliGammaConversionAODBGHandler*[fnCuts];
        for(Int_t iCut = 0; iCut<fnCuts;iCut++){
                
-               TString cutstringPion     =   ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutNumber();
-               TString cutstringMeson        =   ((AliConversionMesonCuts*)fMesonCutArray->At(iCut))->GetCutNumber();
-               TString cutstringGamma        =   ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
+               TString cutstringEvent          = ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber();
+               TString cutstringPion           = ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutNumber();
+               TString cutstringMeson          = ((AliConversionMesonCuts*)fMesonCutArray->At(iCut))->GetCutNumber();
+               TString cutstringGamma          = ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
                
-               Int_t collisionSystem = atoi((TString)(((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCutNumber())(0,1));
-               Int_t centMin = atoi((TString)(((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCutNumber())(1,1));
-               Int_t centMax = atoi((TString)(((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCutNumber())(2,1));
+               Int_t collisionSystem = atoi((TString)(((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber())(0,1));
+               Int_t centMin = atoi((TString)(((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber())(1,1));
+               Int_t centMax = atoi((TString)(((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber())(2,1));
                
                if(collisionSystem == 1 || collisionSystem == 2 ||
                        collisionSystem == 5 || collisionSystem == 8 ||
@@ -281,7 +286,7 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::InitBack(){
 
 
                fBackList[iCut] = new TList();
-               fBackList[iCut]->SetName(Form("%s_%s_%s Back histograms",cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
+               fBackList[iCut]->SetName(Form("%s_%s_%s_%s Back histograms",cutstringEvent.Data(),cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
                fBackList[iCut]->SetOwner(kTRUE);
                fCutFolder[iCut]->Add(fBackList[iCut]);
 
@@ -289,7 +294,7 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::InitBack(){
                fBackList[iCut]->Add(fTHnSparseMotherBackInvMassPtZM[iCut]);
 
                fMotherList[iCut] = new TList();
-               fMotherList[iCut]->SetName(Form("%s_%s_%s Mother histograms",cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
+               fMotherList[iCut]->SetName(Form("%s_%s_%s_%s Mother histograms",cutstringEvent.Data(),cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
                fMotherList[iCut]->SetOwner(kTRUE);
                fCutFolder[iCut]->Add(fMotherList[iCut]);
 
@@ -358,17 +363,18 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserCreateOutputObjects()
        fHistoMotherBackInvMassPt       = new TH2F*[fnCuts];
 
        for(Int_t iCut = 0; iCut<fnCuts;iCut++){
-               TString cutstringPion =((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutNumber();
-               TString cutstringMeson= ((AliConversionMesonCuts*)fMesonCutArray->At(iCut))->GetCutNumber();
-               TString cutstringGamma = ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
+               TString cutstringEvent  = ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber();
+               TString cutstringPion   = ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutNumber();
+               TString cutstringMeson  = ((AliConversionMesonCuts*)fMesonCutArray->At(iCut))->GetCutNumber();
+               TString cutstringGamma  = ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
 
                fCutFolder[iCut] = new TList();
-               fCutFolder[iCut]->SetName(Form("Cut Number %s_%s_%s",cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
+               fCutFolder[iCut]->SetName(Form("Cut Number %s_%s_%s_%s",cutstringEvent.Data(),cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
                fCutFolder[iCut]->SetOwner(kTRUE);
                fOutputContainer->Add(fCutFolder[iCut]);
 
                fESDList[iCut] = new TList();
-               fESDList[iCut]->SetName(Form("%s_%s_%s ESD histograms",cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
+               fESDList[iCut]->SetName(Form("%s_%s_%s_%s ESD histograms",cutstringEvent.Data(),cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
                fESDList[iCut]->SetOwner(kTRUE);
 
                fHistoNEvents[iCut] = new TH1I("NEvents","NEvents",9,-0.5,8.5);
@@ -423,9 +429,9 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserCreateOutputObjects()
                        fESDList[iCut]->Add(fHistoPionPionInvMassPt[iCut]);
                }
 
-               fHistoMotherInvMassPt[iCut] = new TH2F("ESD_Mother_InvMass_Pt","ESD_Mother_InvMass_Pt",900,0.3,1.2,250,0,25);
+               fHistoMotherInvMassPt[iCut] = new TH2F("ESD_Mother_InvMass_Pt","ESD_Mother_InvMass_Pt",450,0.3,0.75,250,0,25);
                fESDList[iCut]->Add(fHistoMotherInvMassPt[iCut]);
-               fHistoMotherBackInvMassPt[iCut] = new TH2F("ESD_Background_InvMass_Pt","ESD_Background_InvMass_Pt",900,0.3,1.2,250,0,25);
+               fHistoMotherBackInvMassPt[iCut] = new TH2F("ESD_Background_InvMass_Pt","ESD_Background_InvMass_Pt",450,0.3,0.75,250,0,25);
                fESDList[iCut]->Add(fHistoMotherBackInvMassPt[iCut]);
 
                if ( fDoMesonQA ) {
@@ -489,12 +495,13 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserCreateOutputObjects()
                }
                
                for(Int_t iCut = 0; iCut<fnCuts;iCut++){
-                       TString cutstringPion =((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutNumber();
-                       TString cutstringMeson= ((AliConversionMesonCuts*)fMesonCutArray->At(iCut))->GetCutNumber();
-                       TString cutstringGamma = ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
+                       TString cutstringEvent  = ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber();
+                       TString cutstringPion   = ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->GetCutNumber();
+                       TString cutstringMeson  = ((AliConversionMesonCuts*)fMesonCutArray->At(iCut))->GetCutNumber();
+                       TString cutstringGamma  = ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutNumber();
 
                        fMCList[iCut] = new TList();
-                       fMCList[iCut]->SetName(Form("%s_%s_%s MC histograms",cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
+                       fMCList[iCut]->SetName(Form("%s_%s_%s_%s MC histograms",cutstringEvent.Data(),cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
                        fMCList[iCut]->SetOwner(kTRUE);
                        fCutFolder[iCut]->Add(fMCList[iCut]);
 
@@ -525,12 +532,12 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserCreateOutputObjects()
                        fHistoMCEtaGGPt[iCut]->Sumw2();
                        fMCList[iCut]->Add(fHistoMCEtaGGPt[iCut]);
                        
-                       fHistoMCEtaPiPlPiMiGammaInAccPt[iCut] = new TH1F("MC_EtaDalitzInAcc_Pt","MC_EtaDalitzInAcc_Pt",250,0,25);
+                       fHistoMCEtaPiPlPiMiGammaInAccPt[iCut] = new TH1F("MC_EtaInAcc_Pt","MC_EtaInAcc_Pt",250,0,25);
                        fHistoMCEtaPiPlPiMiGammaInAccPt[iCut]->Sumw2();
                        fMCList[iCut]->Add(fHistoMCEtaPiPlPiMiGammaInAccPt[iCut]);
 
                        fTrueList[iCut] = new TList();
-                       fTrueList[iCut]->SetName(Form("%s_%s_%s True histograms",cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
+                       fTrueList[iCut]->SetName(Form("%s_%s_%s_%s True histograms",cutstringEvent.Data(),cutstringGamma.Data(),cutstringPion.Data(),cutstringMeson.Data()));
                        fTrueList[iCut]->SetOwner(kTRUE);
                        fCutFolder[iCut]->Add(fTrueList[iCut]);
 
@@ -578,9 +585,9 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserCreateOutputObjects()
        if(!fV0Reader){printf("Error: No V0 Reader");return;} // GetV0Reader
                
        if(fV0Reader)
-               if((AliConversionCuts*)fV0Reader->GetConversionCuts())
-                       if(((AliConversionCuts*)fV0Reader->GetConversionCuts())->GetCutHistograms())
-                               fOutputContainer->Add(((AliConversionCuts*)fV0Reader->GetConversionCuts())->GetCutHistograms());
+               if((AliConversionPhotonCuts*)fV0Reader->GetConversionCuts())
+                       if(((AliConversionPhotonCuts*)fV0Reader->GetConversionCuts())->GetCutHistograms())
+                               fOutputContainer->Add(((AliConversionPhotonCuts*)fV0Reader->GetConversionCuts())->GetCutHistograms());
                
                
                
@@ -605,8 +612,8 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserCreateOutputObjects()
                        }
                }
                if( fGammaCutArray ) {
-                       if( ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCutHistograms() ) {
-                               fCutFolder[iCut]->Add( ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCutHistograms()  );
+                       if( ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutHistograms() ) {
+                               fCutFolder[iCut]->Add( ((AliConversionPhotonCuts*)fGammaCutArray->At(iCut))->GetCutHistograms()  );
                        }
                }
        }
@@ -625,7 +632,7 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserExec(Option_t *){
        fV0Reader=(AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()->GetTask("V0ReaderV1");
        if(!fV0Reader){printf("Error: No V0 Reader");return;} // GetV0Reader
 
-       Int_t eventQuality = ((AliConversionCuts*)fV0Reader->GetConversionCuts())->GetEventQuality();
+       Int_t eventQuality = ((AliConvEventCuts*)fV0Reader->GetEventCuts())->GetEventQuality();
 
        if(eventQuality == 2 || eventQuality == 3){// Event Not Accepted due to MC event missing or wrong trigger for V0ReaderV1
                for(Int_t iCut = 0; iCut<fnCuts; iCut++){
@@ -648,9 +655,7 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserExec(Option_t *){
 
        for(Int_t iCut = 0; iCut<fnCuts; iCut++){
                fiCut = iCut;
-               Int_t eventNotAccepted =
-                       ((AliConversionCuts*)fGammaCutArray->At(iCut))
-                       ->IsEventAcceptedByConversionCut(fV0Reader->GetConversionCuts(),fInputEvent,fMCEvent,fIsHeavyIon);
+               Int_t eventNotAccepted = ((AliConvEventCuts*)fEventCutArray->At(iCut))->IsEventAcceptedByCut(fV0Reader->GetEventCuts(),fInputEvent,fMCEvent,fIsHeavyIon);
                
                if(eventNotAccepted){
                        //                      cout << "event rejected due to wrong trigger: " <<eventNotAccepted << endl;
@@ -669,13 +674,15 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserExec(Option_t *){
 
                if(fMCEvent){ // Process MC Particle
                        fMCStack = fMCEvent->Stack();                   
-                       if(((AliConversionCuts*)fGammaCutArray->At(iCut))->GetSignalRejection() != 0){
-                               ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetNotRejectedParticles(((AliConversionCuts*)fGammaCutArray->At(iCut))->GetSignalRejection(), ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetAcceptedHeader(),
-                                                                                                       fMCEvent);
+                       if(((AliConvEventCuts*)fEventCutArray->At(iCut))->GetSignalRejection() != 0){
+                               ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetNotRejectedParticles(((AliConvEventCuts*)fEventCutArray->At(iCut))->GetSignalRejection(), 
+                                                                                                                                                                               ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetAcceptedHeader(),
+                                                                                                                                                                               fMCEvent);
                        } 
                        ProcessMCParticles();
                }
 
+               fIsGammaEtaCand =kFALSE;
 //             cout << "new event" << endl;
                ProcessPhotonCandidates(); // Process this cuts gammas
                ProcessPionCandidates(); // Process this cuts gammas
@@ -697,22 +704,22 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::UserExec(Option_t *){
 
 Bool_t AliAnalysisTaskEtaToPiPlPiMiGamma::Notify(){
        for(Int_t iCut = 0; iCut<fnCuts;iCut++){
-               if( !((AliConversionCuts*)fGammaCutArray->At(iCut))->GetDoEtaShift() ){
+               if( !((AliConvEventCuts*)fEventCutArray->At(iCut))->GetDoEtaShift() ){
                        fProfileEtaShift[iCut]->Fill(0.,0.);
                        continue; // No Eta Shift requested, continue
                }
-               if( ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetEtaShift() == 0.0){ // Eta Shift requested but not set, get shift automatically
-                       ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCorrectEtaShiftFromPeriod(fV0Reader->GetPeriodName());
-                       ((AliConversionCuts*)fGammaCutArray->At(iCut))->DoEtaShift(kFALSE); // Eta Shift Set, make sure that it is called only once   
-                       ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->SetEtaShift( ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetEtaShift() );
-                       fProfileEtaShift[iCut]->Fill(0.,(((AliConversionCuts*)fGammaCutArray->At(iCut))->GetEtaShift()));
+               if( ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetEtaShift() == 0.0){ // Eta Shift requested but not set, get shift automatically
+                       ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCorrectEtaShiftFromPeriod(fV0Reader->GetPeriodName());
+                       ((AliConvEventCuts*)fEventCutArray->At(iCut))->DoEtaShift(kFALSE); // Eta Shift Set, make sure that it is called only once   
+                       ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->SetEtaShift( ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetEtaShift() );
+                       fProfileEtaShift[iCut]->Fill(0.,(((AliConvEventCuts*)fEventCutArray->At(iCut))->GetEtaShift()));
                        continue;
                } else {
                        printf(" Eta t PiPlusPiMinus Gamma Task %s :: Eta Shift Manually Set to %f \n\n",
-                       (((AliConversionCuts*)fGammaCutArray->At(iCut))->GetCutNumber()).Data(),((AliConversionCuts*)fGammaCutArray->At(iCut))->GetEtaShift());
-                       ((AliConversionCuts*)fGammaCutArray->At(iCut))->DoEtaShift(kFALSE); // Eta Shift Set, make sure that it is called only once   
-                       ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->SetEtaShift( ((AliConversionCuts*)fGammaCutArray->At(iCut))->GetEtaShift() );
-                       fProfileEtaShift[iCut]->Fill(0.,(((AliConversionCuts*)fGammaCutArray->At(iCut))->GetEtaShift()));
+                       (((AliConvEventCuts*)fEventCutArray->At(iCut))->GetCutNumber()).Data(),((AliConvEventCuts*)fEventCutArray->At(iCut))->GetEtaShift());
+                       ((AliConvEventCuts*)fEventCutArray->At(iCut))->DoEtaShift(kFALSE); // Eta Shift Set, make sure that it is called only once   
+                       ((AliPrimaryPionCuts*)fPionCutArray->At(iCut))->SetEtaShift( ((AliConvEventCuts*)fEventCutArray->At(iCut))->GetEtaShift() );
+                       fProfileEtaShift[iCut]->Fill(0.,(((AliConvEventCuts*)fEventCutArray->At(iCut))->GetEtaShift()));
                }
        }
        return kTRUE;
@@ -736,20 +743,20 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessPhotonCandidates(){
                
                fIsFromMBHeader = kTRUE;
                
-               if( fMCEvent && ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetSignalRejection() != 0 ){           
+               if( fMCEvent && ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetSignalRejection() != 0 ){            
                        Int_t isPosFromMBHeader
-                               = ((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelPositive(), fMCStack, fInputEvent);
-                       if(isPosFromMBHeader == 0 && ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetSignalRejection() != 3) continue;
+                               = ((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelPositive(), fMCStack, fInputEvent);
+                       if(isPosFromMBHeader == 0 && ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetSignalRejection() != 3) continue;
                        Int_t isNegFromMBHeader
-                               = ((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelNegative(), fMCStack,fInputEvent);
-                       if(isNegFromMBHeader == 0 && ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetSignalRejection() != 3) continue;
+                               = ((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelNegative(), fMCStack,fInputEvent);
+                       if(isNegFromMBHeader == 0 && ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetSignalRejection() != 3) continue;
                        if( (isNegFromMBHeader+isPosFromMBHeader) != 4) fIsFromMBHeader = kFALSE;
                }
                
-               if(!((AliConversionCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelected(PhotonCandidate,fESDEvent)) continue;
+               if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelected(PhotonCandidate,fESDEvent)) continue;
 
-               if(!((AliConversionCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut() &&
-                       !((AliConversionCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){ // if no post reader loop is required add to events good gammas
+               if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut() &&
+                       !((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){ // if no post reader loop is required add to events good gammas
                        
                        fGoodGammas->Add(PhotonCandidate);
                
@@ -761,31 +768,31 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessPhotonCandidates(){
                        if(fMCEvent){
                                ProcessTruePhotonCandidates(PhotonCandidate);
                        }
-               } else if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut()){ // if Shared Electron cut is enabled, Fill array, add to step one
-                       ((AliConversionCuts*)fGammaCutArray->At(fiCut))->FillElectonLabelArray(PhotonCandidate,nV0);
+               } else if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut()){ // if Shared Electron cut is enabled, Fill array, add to step one
+                       ((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->FillElectonLabelArray(PhotonCandidate,nV0);
                        nV0++;
                        GoodGammasStepOne->Add(PhotonCandidate);
-               } else if(!((AliConversionCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut() &&
-                               ((AliConversionCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){ // shared electron is disabled, step one not needed -> step two
+               } else if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut() &&
+                               ((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){ // shared electron is disabled, step one not needed -> step two
                        GoodGammasStepTwo->Add(PhotonCandidate);
                }
        }
        
        
-       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut()){
+       if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseElecSharingCut()){
                for(Int_t i = 0;i<GoodGammasStepOne->GetEntries();i++){
                        AliAODConversionPhoton *PhotonCandidate= (AliAODConversionPhoton*) GoodGammasStepOne->At(i);
                        if(!PhotonCandidate) continue;
                        fIsFromMBHeader = kTRUE;
-                       if(fMCEvent && ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetSignalRejection() != 0){
+                       if(fMCEvent && ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetSignalRejection() != 0){
                                Int_t isPosFromMBHeader
-                               = ((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelPositive(), fMCStack,fInputEvent);
+                               = ((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelPositive(), fMCStack,fInputEvent);
                                Int_t isNegFromMBHeader
-                               = ((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelNegative(), fMCStack,fInputEvent);
+                               = ((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelNegative(), fMCStack,fInputEvent);
                                if( (isNegFromMBHeader+isPosFromMBHeader) != 4) fIsFromMBHeader = kFALSE;
                        }
-                       if(!((AliConversionCuts*)fGammaCutArray->At(fiCut))->RejectSharedElectronV0s(PhotonCandidate,i,GoodGammasStepOne->GetEntries())) continue;
-                       if(!((AliConversionCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){ // To Colse v0s cut diabled, step two not needed
+                       if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->RejectSharedElectronV0s(PhotonCandidate,i,GoodGammasStepOne->GetEntries())) continue;
+                       if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){ // To Colse v0s cut diabled, step two not needed
                                fGoodGammas->Add(PhotonCandidate);
                                if(fIsFromMBHeader){
                                        fHistoConvGammaPt[fiCut]->Fill(PhotonCandidate->Pt());
@@ -798,20 +805,20 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessPhotonCandidates(){
                        else GoodGammasStepTwo->Add(PhotonCandidate); // Close v0s cut enabled -> add to list two
                }
        }
-       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){
+       if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->UseToCloseV0sCut()){
                for(Int_t i = 0;i<GoodGammasStepTwo->GetEntries();i++){
                        AliAODConversionPhoton* PhotonCandidate = (AliAODConversionPhoton*) GoodGammasStepTwo->At(i);
                        if(!PhotonCandidate) continue;
                        
-                       if(fMCEvent && ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetSignalRejection() != 0){
+                       if(fMCEvent && ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetSignalRejection() != 0){
                                Int_t isPosFromMBHeader
-                               = ((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelPositive(), fMCStack,fInputEvent);
+                               = ((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelPositive(), fMCStack,fInputEvent);
                                Int_t isNegFromMBHeader
-                               = ((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelNegative(), fMCStack,fInputEvent);
+                               = ((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(PhotonCandidate->GetMCLabelNegative(), fMCStack,fInputEvent);
                                if( (isNegFromMBHeader+isPosFromMBHeader) != 4) fIsFromMBHeader = kFALSE;
                        }
                        
-                       if(!((AliConversionCuts*)fGammaCutArray->At(fiCut))->RejectToCloseV0s(PhotonCandidate,GoodGammasStepTwo,i)) continue;
+                       if(!((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->RejectToCloseV0s(PhotonCandidate,GoodGammasStepTwo,i)) continue;
                        fGoodGammas->Add(PhotonCandidate); // Add gamma to current cut TList
                
                        if(fIsFromMBHeader){
@@ -869,6 +876,24 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessTruePhotonCandidates(AliAODConver
                if( labelGamma < MCStack->GetNprimary() ) {
                        if( fIsFromMBHeader ){
                                fHistoTrueConvGammaFromEtaPt[fiCut]->Fill(TruePhotonCandidate->Pt());
+                               
+//                             TParticle * gammaMC = (TParticle*)MCStack->Particle(labelGamma);
+//                             Int_t gammaMotherLabel=gammaMC->GetFirstMother();
+//                             for(Int_t index= ((TParticle*)MCStack->Particle(gammaMotherLabel))->GetFirstDaughter();index<= ((TParticle*)MCStack->Particle(gammaMotherLabel))->GetLastDaughter();index++){                           
+//                                     TParticle* temp = (TParticle*)fMCStack->Particle( index );
+//                                     switch( temp->GetPdgCode() ) {
+//                                             case 211:
+//                                                     cout << "pi- " << index << "\t" << temp->Pt() << "\t" << temp->Eta() << endl;
+//                                                     break;
+//                                             case -211:
+//                                                     cout << "pi+ " << index << "\t" << temp->Pt() << "\t" << temp->Eta() << endl;
+//                                                     break;
+//                                             case ::kGamma:
+//                                                     cout << "gamma " << index << "\t" << temp->Pt()<< "\t" << temp->Eta() << endl;
+//                                                     break;
+//                                     }
+//                             }                                               
+                               fIsGammaEtaCand = kTRUE;        
                        }
                }
        } 
@@ -904,6 +929,7 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessPionCandidates(){
                                        if( IsEtaPiPlPiMiGammaDaughter(labelNegPion) == kTRUE ) {
                                                if( labelNegPion < fMCStack->GetNprimary() ) {
                                                        fHistoTrueNegPionFromEtaPt[fiCut]->Fill(negPionCandidate->Pt());
+//                                                     if (fIsGammaEtaCand) cout << "pi- rec" << labelNegPion << "\t" << negPionCandidate->Pt()<< endl;
                                                } 
                                        }       
                                }
@@ -929,6 +955,7 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessPionCandidates(){
                                        if( IsEtaPiPlPiMiGammaDaughter(labelPosPion) == kTRUE ) {
                                                if( labelPosPion < fMCStack->GetNprimary() ){
                                                        fHistoTruePosPionFromEtaPt[fiCut]->Fill(posPionCandidate->Pt());
+//                                                     if (fIsGammaEtaCand) cout << "pi+ rec" << labelPosPion << "\t" << posPionCandidate->Pt()<< endl;
                                                } 
                                        }
                                }
@@ -967,8 +994,14 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessPionCandidates(){
                                }
                        }
                        
-                       AliAODConversionPhoton *vphoton = new AliAODConversionPhoton(virtualPhoton); //To Apply PsiPairCut
-                       fGoodVirtualParticles->Add(  vphoton );
+                       AliAODConversionPhoton *vParticle = new AliAODConversionPhoton(virtualPhoton); //To Apply PsiPairCut
+                       if (((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->DoMassCut()){
+                               if (vParticle->GetMass() < ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->GetMassCut()){
+                                       fGoodVirtualParticles->Add(  vParticle );
+                               }
+                       } else {
+                               fGoodVirtualParticles->Add(  vParticle );
+                       }       
                        delete virtualPhoton;
                        virtualPhoton=NULL;
                                        
@@ -987,22 +1020,22 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessMCParticles(){
                if (!particle) continue;
 
                Int_t isMCFromMBHeader = -1;
-               if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetSignalRejection() != 0){
+               if(((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetSignalRejection() != 0){
                        isMCFromMBHeader
-                               = ((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack, fInputEvent);
-                       if(isMCFromMBHeader == 0 && ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetSignalRejection() != 3) continue;
+                               = ((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack, fInputEvent);
+                       if(isMCFromMBHeader == 0 && ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetSignalRejection() != 3) continue;
                }
 
-               if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack,fInputEvent)){
+               if(((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack,fInputEvent)){
                        
-                       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kFALSE)){
+                       if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kFALSE)){
                                fHistoMCAllGammaPt[fiCut]->Fill(particle->Pt()); // All MC Gamma
                                if(particle->GetMother(0) >-1){
                                        if (fMCStack->Particle(particle->GetMother(0))->GetPdgCode() ==221 && fMCStack->Particle(particle->GetMother(0))->GetNDaughters()==3 ) fHistoMCGammaFromEtaPt[fiCut]->Fill(particle->Pt()); // All pos from eta
                                }       
                        }
                        
-                       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kTRUE)){
+                       if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(particle,fMCStack,kTRUE)){
                                fHistoMCConvGammaPt[fiCut]->Fill(particle->Pt());
                        } // Converted MC Gamma
                        
@@ -1023,12 +1056,12 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessMCParticles(){
                        
                        // \eta -> \gamma \gamma 
                        
-                       if(((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelectedMC( particle,fMCStack,((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetEtaShift() ) ){
+                       if(((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelectedMC( particle,fMCStack,((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetEtaShift() ) ){
                                Float_t weighted= 1;
                                if( ((AliPrimaryPionCuts*) fPionCutArray->At(fiCut))->DoWeights() ) { 
-                                       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack, fInputEvent)){
+                                       if(((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack, fInputEvent)){
                                                if (particle->Pt()>0.005){
-                                                       weighted= ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),i, fMCStack,fInputEvent);
+                                                       weighted= ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),i, fMCStack,fInputEvent);
                                                }
                                        }
                                }
@@ -1040,12 +1073,12 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessMCParticles(){
                        Int_t labelelectron = -1;
                        Int_t labelpositron = -1;
 
-                       if( ((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelectedMCDalitz(particle,fMCStack,labelelectron,labelpositron,labelgamma,((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetEtaShift())){
+                       if( ((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelectedMCDalitz(particle,fMCStack,labelelectron,labelpositron,labelgamma,((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetEtaShift())){
                                Float_t weighted= 1;
                                if( ((AliPrimaryPionCuts*) fPionCutArray->At(fiCut))->DoWeights() ) { 
-                                       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack,fInputEvent)){
+                                       if(((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack,fInputEvent)){
                                                if (particle->Pt()>0.005){
-                                                       weighted= ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),i, fMCStack,fInputEvent);
+                                                       weighted= ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),i, fMCStack,fInputEvent);
                                                }
                                        }
                                }
@@ -1058,19 +1091,19 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessMCParticles(){
                        Int_t labelNegPion = -1;
                        Int_t labelPosPion = -1;
 
-                       if( ((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelectedMCEtaPiPlPiMiGamma(particle,fMCStack,labelNegPion,labelPosPion,labelGamma3Body,((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetEtaShift())){       
+                       if( ((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelectedMCEtaPiPlPiMiGamma(particle,fMCStack,labelNegPion,labelPosPion,labelGamma3Body,((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetEtaShift())){        
                                Float_t weighted= 1;
                                if( ((AliPrimaryPionCuts*) fPionCutArray->At(fiCut))->DoWeights() ) { 
-                                       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack,fInputEvent)){
+                                       if(((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(i, fMCStack,fInputEvent)){
                                                if (particle->Pt()>0.005){
-                                                       weighted= ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),i, fMCStack,fInputEvent);
+                                                       weighted= ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),i, fMCStack,fInputEvent);
                                                }
                                        }
                                }
                                if(particle->GetPdgCode() == 221)fHistoMCEtaPiPlPiMiGammaPt[fiCut]->Fill(particle->Pt(), weighted); // All MC Eta
                
                                TParticle *gamma    = fMCStack->Particle(labelGamma3Body);
-                               if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(gamma,fMCStack,kFALSE) &&
+                               if(((AliConversionPhotonCuts*)fGammaCutArray->At(fiCut))->PhotonIsSelectedMC(gamma,fMCStack,kFALSE) &&
                                ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->PionIsSelectedMC(labelNegPion,fMCStack) &&
                                ((AliPrimaryPionCuts*)fPionCutArray->At(fiCut))->PionIsSelectedMC(labelPosPion,fMCStack) ) {
                                        if(particle->GetPdgCode() == 221)fHistoMCEtaPiPlPiMiGammaInAccPt[fiCut]->Fill(particle->Pt(), weighted ); // MC EtaDalitz with gamma and e+e- in acc
@@ -1105,11 +1138,20 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::CalculateMesonCandidates(){
 
                                AliAODConversionMother *etacand = new AliAODConversionMother(gamma,vParticle);
                                etacand->SetLabels(GammaIndex,virtualParticleIndex);
-                                               
-
-                               if( ( ((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelected(etacand,kTRUE,((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetEtaShift())) ){
+                               
+//                             if(fMCEvent){
+//                                     AliESDtrack *posPionVParticle = fESDEvent->GetTrack( vParticle->GetTrackLabelNegative() );
+//                                     AliESDtrack *negPionVParticle = fESDEvent->GetTrack( vParticle->GetTrackLabelPositive() );
+// 
+//                                     Int_t labeln=TMath::Abs(negPionVParticle->GetLabel());
+//                                     Int_t labelp=TMath::Abs(posPionVParticle->GetLabel());
+//                                     
+//                                     cout << labeln << "\t" << labelp << endl;
+//                             }       
+
+                               if( ( ((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelected(etacand,kTRUE,((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetEtaShift())) ){
                        
-                                       //cout<< "Meson Accepted "<<endl;
+//                                     cout<< "Meson Accepted "<<endl;
                                        
                                        Int_t zbin= fBGHandler[fiCut]->GetZBinIndex(fESDEvent->GetPrimaryVertex()->GetZ());
                                        Int_t mbin = 0;
@@ -1238,7 +1280,7 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::CalculateBackground(){
                                        AliAODConversionMother *backgroundCandidate = new AliAODConversionMother(&currentEventGoodV0,&previousGoodV0);
                                                                
 
-                                       if( ( ((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelected(backgroundCandidate,kFALSE, ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetEtaShift()))){
+                                       if( ( ((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelected(backgroundCandidate,kFALSE, ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetEtaShift()))){
                                                fHistoMotherBackInvMassPt[fiCut]->Fill(backgroundCandidate->M(),backgroundCandidate->Pt());
                                                Double_t sparesFill[4] = {backgroundCandidate->M(),backgroundCandidate->Pt(),(Double_t)zbin,(Double_t)mbin};
                                                fTHnSparseMotherBackInvMassPtZM[fiCut]->Fill(sparesFill,1);
@@ -1269,7 +1311,7 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::CalculateBackground(){
 
                                                AliAODConversionMother *backgroundCandidate = new AliAODConversionMother(&currentEventGoodV0,&previousGoodV0);
                                                                
-                                               if((((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelected(backgroundCandidate,kFALSE,((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetEtaShift()))){
+                                               if((((AliConversionMesonCuts*)fMesonCutArray->At(fiCut))->MesonIsSelected(backgroundCandidate,kFALSE,((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetEtaShift()))){
                                                        fHistoMotherBackInvMassPt[fiCut]->Fill(backgroundCandidate->M(),backgroundCandidate->Pt());
                                                        Double_t sparesFill[4] = {backgroundCandidate->M(),backgroundCandidate->Pt(),(Double_t)zbin,(Double_t)mbin};
                                                        fTHnSparseMotherBackInvMassPtZM[fiCut]->Fill(sparesFill,1);
@@ -1295,6 +1337,7 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessTrueMesonCandidates(AliAODConvers
                Bool_t isTrueEta = kFALSE;
                Int_t gammaMCLabel = TrueGammaCandidate->GetMCParticleLabel(MCStack);
                Int_t gammaMotherLabel = -1;
+//             Bool_t gammaEtaCand = kFALSE;
                
                if(gammaMCLabel != -1){ // Gamma is Combinatorial; MC Particles don't belong to the same Mother
                        // Daughters Gamma 0
@@ -1306,9 +1349,12 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessTrueMesonCandidates(AliAODConvers
                                if(negativeMC->GetUniqueID() == 5 && positiveMC->GetUniqueID() ==5){ // ... From Conversion ...
                                        if(gammaMC->GetPdgCode() == 22){ // ... with Gamma Mother
                                                gammaMotherLabel=gammaMC->GetFirstMother();
+//                                             if( ((TParticle*)MCStack->Particle(gammaMotherLabel))->GetNDaughters() == 3 && ((TParticle*)MCStack->Particle(gammaMotherLabel))->GetPdgCode() == 221 ) gammaEtaCand = kTRUE;
                                        }
                                }
                        }
+                       
+                       
                }
 
                Int_t virtualParticleMCLabel = TrueVirtualParticleCandidate->GetMCParticleLabel(MCStack);
@@ -1321,6 +1367,10 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessTrueMesonCandidates(AliAODConvers
                if (fDoMesonQA){
                        TParticle * negativeMC = (TParticle*)TrueVirtualParticleCandidate->GetNegativeMCDaughter(MCStack);
                        TParticle * positiveMC = (TParticle*)TrueVirtualParticleCandidate->GetPositiveMCDaughter(MCStack);
+//                     if (gammaEtaCand){
+//                             cout << "neg Part: label - " <<  TrueVirtualParticleCandidate->GetMCLabelNegative() <<" pdg-code - " << negativeMC->GetPdgCode() << endl;
+//                             cout << "pos Part: label - " <<  TrueVirtualParticleCandidate->GetMCLabelPositive() <<" pdg-code - " << positiveMC->GetPdgCode() << endl;                       
+//                     }
                        if(TMath::Abs(negativeMC->GetPdgCode())==211 && TMath::Abs(positiveMC->GetPdgCode())==211){  // Pions ...
                                fHistoTruePionPionInvMassPt[fiCut]->Fill(TrueVirtualParticleCandidate->GetMass(),TrueVirtualParticleCandidate->Pt());
                        }
@@ -1329,9 +1379,6 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessTrueMesonCandidates(AliAODConvers
                if(virtualParticleMCLabel != -1){ // if virtualParticleMCLabel==-1 particles don't have same mother 
                        TParticle * negativeMC = (TParticle*)TrueVirtualParticleCandidate->GetNegativeMCDaughter(MCStack);
                        TParticle * positiveMC = (TParticle*)TrueVirtualParticleCandidate->GetPositiveMCDaughter(MCStack);
-//                     cout << "neg Part: label - " <<  TrueVirtualParticleCandidate->GetMCLabelNegative() <<" pdg-code - " << negativeMC->GetPdgCode() << endl;
-//                     cout << "pos Part: label - " <<  TrueVirtualParticleCandidate->GetMCLabelPositive() <<" pdg-code - " << positiveMC->GetPdgCode() << endl;
-                       
                        TParticle * virtualParticleMotherMC = (TParticle*)MCStack->Particle(virtualParticleMCLabel);
 //                     cout << "pdg code same mother - " << virtualParticleMotherMC->GetPdgCode() << endl;
                        
@@ -1359,9 +1406,9 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessTrueMesonCandidates(AliAODConvers
                        if ( isPiPiDecay) { //real eta -> Pi+ Pi- Gamma
                                Float_t weighted= 1;
                                if( ((AliPrimaryPionCuts*) fPionCutArray->At(fiCut))->DoWeights() ) { 
-                                       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(gammaMotherLabel, fMCStack,fInputEvent)){
+                                       if(((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(gammaMotherLabel, fMCStack,fInputEvent)){
                                                if (((TParticle*)MCStack->Particle(gammaMotherLabel))->Pt()>0.005){
-                                                       weighted= ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),gammaMotherLabel,fMCStack,fInputEvent);
+                                                       weighted= ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),gammaMotherLabel,fMCStack,fInputEvent);
                                                }
                                        }
                                }
@@ -1370,9 +1417,9 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessTrueMesonCandidates(AliAODConvers
                        } else if ( isRealGamma ){
                                Float_t weighted= 1;
                                if( ((AliPrimaryPionCuts*) fPionCutArray->At(fiCut))->DoWeights() ) {
-                                       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(gammaMotherLabel, fMCStack,fInputEvent)){
+                                       if(((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(gammaMotherLabel, fMCStack,fInputEvent)){
                                                if (((TParticle*)MCStack->Particle(gammaMotherLabel))->Pt()>0.005){
-                                                       weighted= ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),gammaMotherLabel,fMCStack,fInputEvent);
+                                                       weighted= ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),gammaMotherLabel,fMCStack,fInputEvent);
                                                }
                                        }
                                }
@@ -1381,9 +1428,9 @@ void AliAnalysisTaskEtaToPiPlPiMiGamma::ProcessTrueMesonCandidates(AliAODConvers
                        } else if (isDalitz) {
                                Float_t weighted= 1;
                                if( ((AliPrimaryPionCuts*) fPionCutArray->At(fiCut))->DoWeights() ) {
-                                       if(((AliConversionCuts*)fGammaCutArray->At(fiCut))->IsParticleFromBGEvent(gammaMotherLabel, fMCStack,fInputEvent)){
+                                       if(((AliConvEventCuts*)fEventCutArray->At(fiCut))->IsParticleFromBGEvent(gammaMotherLabel, fMCStack,fInputEvent)){
                                                if (((TParticle*)MCStack->Particle(gammaMotherLabel))->Pt()>0.005){
-                                                       weighted= ((AliConversionCuts*)fGammaCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),gammaMotherLabel,fMCStack,fInputEvent);
+                                                       weighted= ((AliConvEventCuts*)fEventCutArray->At(fiCut))->GetWeightForMeson(fV0Reader->GetPeriodName(),gammaMotherLabel,fMCStack,fInputEvent);
                                                }
                                        }
                                }