]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
weigthing for new production enabled
authorfbock <fbock@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 22 Aug 2013 13:06:45 +0000 (13:06 +0000)
committerfbock <fbock@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 22 Aug 2013 13:06:45 +0000 (13:06 +0000)
PWGGA/GammaConv/AliAnalysisTaskConversionQA.cxx
PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.cxx
PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
PWGGA/GammaConv/AliConversionCuts.cxx
PWGGA/GammaConv/AliConversionCuts.h
PWGGA/GammaConv/AliDalitzElectronCuts.cxx
PWGGA/GammaConv/macros/AddTask_GammaConvV1_PbPb.C
PWGGA/GammaConv/macros/MCSpectraInput.root

index adab435e920e24237fd67d093fc4fc6e23e379f8..3b490d7617181d1fc576dd8303a7ee284fe70ce5 100644 (file)
@@ -405,8 +405,6 @@ void AliAnalysisTaskConversionQA::ProcessQATree(AliAODConversionPhoton *gamma){
    Float_t gammaPsiPair = gamma->GetPsiPair();
    Float_t gammaCosPointing = fConversionCuts->GetCosineOfPointingAngle(gamma,event);
        Float_t gammaMass = gamma->GetMass();
-   Float_t dcaToPrim[2];
-   gamma->GetDistanceOfClossetApproachToPrimVtx(fInputEvent->GetPrimaryVertex(),dcaToPrim);
    TVectorF conversionPoint(3);
    conversionPoint(0) = gamma->GetConversionX();
    conversionPoint(1) = gamma->GetConversionY();
@@ -499,9 +497,7 @@ void AliAnalysisTaskConversionQA::ProcessQATree(AliAODConversionPhoton *gamma){
                      << "psipair=" << gammaPsiPair
                      << "cosPoint=" << gammaCosPointing
                                                        << "mass="<< gammaMass
-                                                       << "dcaR="<< dcaToPrim[0]
-                                                       << "dcaZ="<< dcaToPrim[1]
-                     << "TruePhoton=" << isTruePhoton
+                                                       << "TruePhoton=" << isTruePhoton
                      << "conversionPoint=" << &conversionPoint
                      << "daugtherProp.=" << &daughterProp
                      << "\n";
@@ -517,9 +513,7 @@ void AliAnalysisTaskConversionQA::ProcessQATree(AliAODConversionPhoton *gamma){
                      << "psipair=" << gammaPsiPair
                      << "cosPoint=" << gammaCosPointing
                                                        << "mass="<< gammaMass
-                                                       << "dcaR="<< dcaToPrim[0]
-                     << "dcaZ="<< dcaToPrim[1]
-                     << "conversionPoint=" << &conversionPoint
+                                                       << "conversionPoint=" << &conversionPoint
                      << "daugtherProp.=" << &daughterProp
                      << "\n";
       }
index 6764450181a29955d420b6f51ee7ac01f7df4552..681ae94627fb0f652ecefad529061da8f9e09b06 100644 (file)
@@ -68,6 +68,7 @@ fV0Reader(NULL),
    fCutFolder(NULL),
    fESDList(NULL),
    fBackList(NULL),
+   fMotherList(NULL),
    fTrueList(NULL),
    fMCList(NULL),
    fOutputContainer(0),
@@ -166,6 +167,8 @@ fV0Reader(NULL),
    fMoveParticleAccordingToVertex(kFALSE),
    fIsHeavyIon(kFALSE),
    fDoMesonAnalysis(kTRUE),
+   fDoChicAnalysis(kFALSE),
+   fDoMesonQA(kFALSE),
    fIsFromMBHeader(kTRUE),
    fIsMC(kFALSE)
 {
@@ -184,6 +187,7 @@ AliAnalysisTaskGammaConvDalitzV1::AliAnalysisTaskGammaConvDalitzV1( const char*
    fCutFolder(NULL),
    fESDList(NULL),
    fBackList(NULL),
+   fMotherList(NULL),
    fTrueList(NULL),
    fMCList(NULL),
    fOutputContainer(0),
@@ -282,6 +286,8 @@ AliAnalysisTaskGammaConvDalitzV1::AliAnalysisTaskGammaConvDalitzV1( const char*
    fMoveParticleAccordingToVertex(kFALSE),
    fIsHeavyIon(kFALSE),
    fDoMesonAnalysis(kTRUE),
+   fDoChicAnalysis(kFALSE),
+   fDoMesonQA(kFALSE),
    fIsFromMBHeader(kTRUE),
    fIsMC(kFALSE)
 {
@@ -321,98 +327,77 @@ AliAnalysisTaskGammaConvDalitzV1::~AliAnalysisTaskGammaConvDalitzV1()
       fGammasPool = 0x0;
    }
 }
-
 //___________________________________________________________
 void AliAnalysisTaskGammaConvDalitzV1::InitBack(){
 
-   Double_t *zBinLimitsArray= new Double_t[9];
-   zBinLimitsArray[0] = -50.00;
-   zBinLimitsArray[1] = -3.375;
-   zBinLimitsArray[2] = -1.605;
-   zBinLimitsArray[3] = -0.225;
-   zBinLimitsArray[4] = 1.065;
-   zBinLimitsArray[5] = 2.445;
-   zBinLimitsArray[6] = 4.245;
-   zBinLimitsArray[7] = 50.00;
-   zBinLimitsArray[8] = 1000.00;
-
-   Double_t *multiplicityBinLimitsArrayTracks= new Double_t[6];
-   multiplicityBinLimitsArrayTracks[0] = 0;
-   multiplicityBinLimitsArrayTracks[1] = 8.5;
-   multiplicityBinLimitsArrayTracks[2] = 16.5;
-   multiplicityBinLimitsArrayTracks[3] = 27.5;
-   multiplicityBinLimitsArrayTracks[4] = 41.5;
-   multiplicityBinLimitsArrayTracks[5] = 200.;
-
-   if(fIsHeavyIon){
-      multiplicityBinLimitsArrayTracks[0] = 0;
-      multiplicityBinLimitsArrayTracks[1] = 200.;
-      multiplicityBinLimitsArrayTracks[2] = 500.;
-      multiplicityBinLimitsArrayTracks[3] = 1000.;
-      multiplicityBinLimitsArrayTracks[4] = 1500.;
-      multiplicityBinLimitsArrayTracks[5] = 5000.;
-   }
-
-   Double_t *multiplicityBinLimitsArrayV0s= new Double_t[5];
-
-   multiplicityBinLimitsArrayV0s[0] = 2;
-   multiplicityBinLimitsArrayV0s[1] = 3;
-   multiplicityBinLimitsArrayV0s[2] = 4;
-   multiplicityBinLimitsArrayV0s[3] = 5;
-   multiplicityBinLimitsArrayV0s[4] = 9999;
-
-   if(fIsHeavyIon){
-      multiplicityBinLimitsArrayV0s[0] = 2;
-      multiplicityBinLimitsArrayV0s[1] = 10;
-      multiplicityBinLimitsArrayV0s[2] = 30;
-      multiplicityBinLimitsArrayV0s[3] = 50;
-      multiplicityBinLimitsArrayV0s[4] = 9999;
-   }
-
    const Int_t nDim = 4;
-   Int_t    nBins[nDim] = {1000,250,8,5};
-   Double_t xMin[nDim]  = {0,0, 0,0};
-   Double_t xMax[nDim]  = {1,25,8,5};
-
-   sESDMotherInvMassPtZM     = new THnSparseF*[fnCuts];
+   Int_t nBins[nDim] = {800,250,7,4};
+   Double_t xMin[nDim] = {0,0, 0,0};
+   Double_t xMax[nDim] = {0.8,25,7,4};
+   
+   sESDMotherInvMassPtZM = new THnSparseF*[fnCuts];
    sESDMotherBackInvMassPtZM = new THnSparseF*[fnCuts];
 
-
    fBGHandler = new AliGammaConversionAODBGHandler*[fnCuts];
-
+   //fBGHandlerRP = new AliConversionAODBGHandlerRP*[fnCuts];
    for(Int_t iCut = 0; iCut<fnCuts;iCut++){
+      //if (((AliConversionMesonCuts*)fCutMesonArray->At(iCut))->DoBGCalculation()){
+
+         
+         TString cutstringElectron     =   ((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->GetCutNumber();
+         TString cutstringMeson        =   ((AliConversionMesonCuts*)fCutMesonArray->At(iCut))->GetCutNumber();
+         TString cutstringGamma        =   ((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber();
+
+
+         
+         Int_t collisionSystem = atoi((TString)(((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber())(0,1));
+         Int_t centMin = atoi((TString)(((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber())(1,1));
+         Int_t centMax = atoi((TString)(((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber())(2,1));
+         
+         if(collisionSystem == 1 || collisionSystem == 2 ||
+            collisionSystem == 5 || collisionSystem == 8 ||
+            collisionSystem == 9){
+            centMin = centMin*10;
+            centMax = centMax*10; 
+         }
+         else if(collisionSystem == 3 || collisionSystem == 6){
+            centMin = centMin*5;
+            centMax = centMax*5;
+         }
+         else if(collisionSystem == 4 || collisionSystem == 7){
+            centMin = ((centMin*5)+45);
+            centMax = ((centMax*5)+45);
+         }
 
 
-      TString cutstringElectron     =   ((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->GetCutNumber();
-      TString cutstringMeson        =   ((AliConversionMesonCuts*)fCutMesonArray->At(iCut))->GetCutNumber();
-      TString cutstringGamma        =   ((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber();
+         fBackList[iCut] = new TList();
+         fBackList[iCut]->SetName(Form("%s_%s_%s Back histograms",cutstringGamma.Data(),cutstringElectron.Data(),cutstringMeson.Data()));
+         fBackList[iCut]->SetOwner(kTRUE);
+         fCutFolder[iCut]->Add(fBackList[iCut]);
 
+         sESDMotherBackInvMassPtZM[iCut] = new THnSparseF("Back_Back_InvMass_Pt_z_m","Back_Back_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
+         fBackList[iCut]->Add(sESDMotherBackInvMassPtZM[iCut]);
 
-      fBackList[iCut] = new TList();
-      fBackList[iCut]->SetName(Form("%s_%s_%s Back histograms",cutstringGamma.Data(),cutstringElectron.Data(),cutstringMeson.Data()));
-      fBackList[iCut]->SetOwner(kTRUE);
-      fCutFolder[iCut]->Add(fBackList[iCut]);
+         fMotherList[iCut] = new TList();
+         fMotherList[iCut]->SetName(Form("%s_%s_%s Mother histograms",cutstringGamma.Data(),cutstringElectron.Data(),cutstringMeson.Data()));
+         fMotherList[iCut]->SetOwner(kTRUE);
+         fCutFolder[iCut]->Add(fMotherList[iCut]);
 
-      sESDMotherInvMassPtZM[iCut] = new THnSparseF("Back_Mother_InvMass_Pt_z_m","Back_Mother_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
-      sESDMotherInvMassPtZM[iCut]->Sumw2();
-      fBackList[iCut]->Add(sESDMotherInvMassPtZM[iCut]);
-      sESDMotherBackInvMassPtZM[iCut] = new THnSparseF("Back_Back_InvMass_Pt_z_m","Back_Back_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
-      sESDMotherBackInvMassPtZM[iCut]->Sumw2();
-      fBackList[iCut]->Add(sESDMotherBackInvMassPtZM[iCut]);
+         sESDMotherInvMassPtZM[iCut] = new THnSparseF("Back_Mother_InvMass_Pt_z_m","Back_Mother_InvMass_Pt_z_m",nDim,nBins,xMin,xMax);
+         fMotherList[iCut]->Add(sESDMotherInvMassPtZM[iCut]);
 
-      if(((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->UseTrackMultiplicity()) {
-         fBGHandler[iCut] = new AliGammaConversionAODBGHandler(9,6,((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->NumberOfRotationEvents());
-         fBGHandler[iCut]->Initialize(zBinLimitsArray, multiplicityBinLimitsArrayTracks);
-      }
-      else{
-         fBGHandler[iCut] = new AliGammaConversionAODBGHandler(9,5,((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->NumberOfRotationEvents());
-         fBGHandler[iCut]->Initialize(zBinLimitsArray, multiplicityBinLimitsArrayV0s);
-      }
-      if( ( (AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->GetBKGMethod() == 3 ){
+         
+         fBGHandler[iCut] = new AliGammaConversionAODBGHandler(
+                                                                  collisionSystem,centMin,centMax,
+                                                                  ((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->NumberOfRotationEvents(),
+                                                                  ((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->UseTrackMultiplicity());
+        
+        if( ( (AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->GetBKGMethod() == 3 ){
          fGammasPool[iCut] = new TList();
-      }
-   }
+        }
 
+      //}
+   }
 }
 
 //______________________________________________________________________
@@ -445,6 +430,7 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
    fCutFolder                      = new TList*[fnCuts];
    fESDList                        = new TList*[fnCuts];
    fBackList                       = new TList*[fnCuts];
+   fMotherList                     = new TList*[fnCuts];
    hNEvents                        = new TH1I*[fnCuts];
    hNGoodESDTracks                 = new TH1I*[fnCuts];
    hESDConvGammaPt                 = new TH1F*[fnCuts];
@@ -452,6 +438,8 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
    hESDDalitzPositronPt            = new TH1F*[fnCuts];
    hESDDalitzElectronPhi          = new TH1F*[fnCuts];
    hESDDalitzPositronPhi          = new TH1F*[fnCuts];
+   
+   if( fDoMesonQA ) {
    hESDDalitzElectronAfterPt      = new TH1F*[fnCuts];
    hESDDalitzPositronAfterPt       = new TH1F*[fnCuts];
    hESDDalitzElectronAfterPhi      = new TH1F*[fnCuts];
@@ -466,10 +454,20 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
    hESDEposEnegPsiPairDPhi         = new TH2F*[fnCuts];
    hESDEposEnegInvMassPt           = new TH2F*[fnCuts];
    hESDEposEnegLikeSignBackInvMassPt = new TH2F*[fnCuts];
+   
+   }
+   
+   
+   
    hESDMotherInvMassPt             = new TH2F*[fnCuts];
+   
+   if(fDoChicAnalysis) {
    hESDPi0MotherInvMassPt          = new TH2F*[fnCuts];
    hESDPi0MotherDiffInvMassPt      = new TH2F*[fnCuts];
-   hESDPi0MotherDiffLimInvMassPt      = new TH2F*[fnCuts];
+   hESDPi0MotherDiffLimInvMassPt   = new TH2F*[fnCuts];
+   }
+   
+   
    hESDMotherBackInvMassPt         = new TH2F*[fnCuts];
 
 
@@ -525,15 +523,18 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
       hESDDalitzPositronPhi[iCut] = new TH1F("ESD_DalitzPositron_Phi","ESD_DalitzPositron_Phi",360,0,2*TMath::Pi());
       fESDList[iCut]->Add(hESDDalitzPositronPhi[iCut]);
       
+     
       
+      if ( fDoMesonQA ) {
+       
+        
       
       hESDDalitzElectronAfterPt[iCut] = new TH1F("ESD_DalitzElectron_After_Pt","ESD_DalitzElectron_After_Pt",1000,0,25);
       fESDList[iCut]->Add(hESDDalitzElectronAfterPt[iCut]);
 
       hESDDalitzPositronAfterPt[iCut] = new TH1F("ESD_DalitzPositron_After_Pt","ESD_DalitzPositron_After_Pt",1000,0,25);
       fESDList[iCut]->Add(hESDDalitzPositronAfterPt[iCut]);
-      
-      
+                  
       hESDDalitzElectronAfterPhi[iCut] = new TH1F("ESD_DalitzElectron_After_Phi","ESD_DalitzElectron_After_Phi",360,0,2*TMath::Pi());
       fESDList[iCut]->Add(hESDDalitzElectronAfterPhi[iCut]);
 
@@ -558,6 +559,9 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
       hESDDalitzPosEleAfterTPCdEdxSignal[iCut] =new TH2F("ESD_DalitzPosEle_After_TPCdEdxSignal","ESD_DalitzPosEle_After_TPCdEdxSignal" ,150,0.05,20.0,800,0.0,200);
       fESDList[iCut]->Add(hESDDalitzPosEleAfterTPCdEdxSignal[iCut]);  
       
+      hESDMotherPhi[iCut] = new TH1F("ESD_DalitzMother_Phi","ESD_DalitzMother_Phi",360,0,2*TMath::Pi());
+      fESDList[iCut]->Add(hESDMotherPhi[iCut]);
+      
       hESDEposEnegPsiPairDPhi[iCut] = new TH2F("ESD_EposEneg_PsiPair_DPhi","ESD_EposEneg_PsiPair_DPhi", 100, -1.0,1.0,100,-1.0,1.0 );
       fESDList[iCut]->Add(hESDEposEnegPsiPairDPhi[iCut]);
 
@@ -566,12 +570,21 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
       
       hESDEposEnegLikeSignBackInvMassPt[iCut]  = new TH2F("ESD_EposEneg_LikeSignBack_InvMassPt","ESD_EposEneg_LikeSignBack_InvMassPt",5000,0.,5.,100,0.,10.);
       fESDList[iCut]->Add(hESDEposEnegLikeSignBackInvMassPt[iCut]);
+      
+      }
+      
+      
+      
+      
+      
+      
+     
 
       hESDMotherInvMassPt[iCut] = new TH2F("ESD_DalitzMother_InvMass_Pt","ESD_DalitzMother_InvMass_Pt",1000,0,1,250,0,25);
       fESDList[iCut]->Add(hESDMotherInvMassPt[iCut]);
                                                                                  
-      hESDMotherPhi[iCut] = new TH1F("ESD_DalitzMother_Phi","ESD_DalitzMother_Phi",360,0,2*TMath::Pi());
-      fESDList[iCut]->Add(hESDMotherPhi[iCut]);
+       
+      if( fDoChicAnalysis) {
                   
       hESDPi0MotherInvMassPt[iCut] = new TH2F("ESD_Pi0Mother_InvMass_Pt","ESD_Pi0Mother_InvMass_Pt",4000,0,4,250,0,25);
       fESDList[iCut]->Add(hESDPi0MotherInvMassPt[iCut]);
@@ -581,12 +594,16 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
 
       hESDPi0MotherDiffLimInvMassPt[iCut] = new TH2F("ESD_Pi0Mother_DiffLimInvMass_Pt","ESD_Pi0Mother_DiffLimInvMass_Pt",2000,0,2,250,0,25);
       fESDList[iCut]->Add(hESDPi0MotherDiffLimInvMassPt[iCut]);
+      
+      }
+
 
       hESDMotherBackInvMassPt[iCut] = new TH2F("ESD_DalitzBackground_InvMass_Pt","ESD_DalitzBackground_InvMass_Pt",1000,0,1,250,0,25);
       fESDList[iCut]->Add(hESDMotherBackInvMassPt[iCut]);
 
 
-
+      if ( fDoMesonQA ) {
+       
       TAxis *AxisAfter = hESDDalitzPosEleAfterTPCdEdx[iCut]->GetXaxis(); 
       Int_t bins = AxisAfter->GetNbins();
       Double_t from = AxisAfter->GetXmin();
@@ -601,6 +618,8 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
       AxisAfter->Set(bins, newBins);
 
       delete [] newBins;
+      
+      }
 
             
       
@@ -648,14 +667,22 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
       hMCEtaInAccPt = new TH1F*[fnCuts];
                        hMCChiCPt = new TH1F*[fnCuts];
                        hMCChiCInAccPt = new TH1F*[fnCuts];
+                       
+                       
+      if ( fDoMesonQA ) {
+       hESDEposEnegTruePi0DalitzInvMassPt           = new TH2F*[fnCuts];
+       hESDEposEnegTrueEtaDalitzInvMassPt           = new TH2F*[fnCuts];
+       hESDEposEnegTruePhotonInvMassPt              = new TH2F*[fnCuts];
+       hESDEposEnegTrueJPsiInvMassPt                = new TH2F*[fnCuts];
+      }
       
-      hESDEposEnegTruePi0DalitzInvMassPt           = new TH2F*[fnCuts];
-      hESDEposEnegTrueEtaDalitzInvMassPt           = new TH2F*[fnCuts];
-      hESDEposEnegTruePhotonInvMassPt              = new TH2F*[fnCuts];
-      hESDEposEnegTrueJPsiInvMassPt                = new TH2F*[fnCuts];
       
+      if( fDoChicAnalysis ){
       hESDTrueMotherChiCInvMassPt = new TH2F*[fnCuts];
       hESDTrueMotherChiCDiffInvMassPt = new TH2F*[fnCuts];
+      }
+      
+      
       hESDTrueMotherInvMassPt = new TH2F*[fnCuts];
       hESDTrueMotherDalitzInvMassPt = new TH2F*[fnCuts];
       hESDTrueMotherPi0GGInvMassPt = new TH2F*[fnCuts];
@@ -734,7 +761,7 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
          fTrueList[iCut]->SetOwner(kTRUE);
          fCutFolder[iCut]->Add(fTrueList[iCut]);
 
-        
+        if ( fDoMesonQA ) {
         hESDEposEnegTruePi0DalitzInvMassPt[iCut] = new TH2F("ESD_EposEneg_TruePi0Dalitz_InvMassPt","ESD_EposEneg_TruePi0Dalitz_InvMassPt",5000,0.,5.,100,0.,10.);
         fTrueList[iCut]->Add(hESDEposEnegTruePi0DalitzInvMassPt[iCut]);
         
@@ -746,6 +773,7 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
         
         hESDEposEnegTrueJPsiInvMassPt[iCut] = new TH2F("ESD_EposEneg_TrueJPsi_InvMassPt","ESD_EposEneg_TrueJPsi_InvMassPt",5000,0.,5.,100,0.,10.);
         fTrueList[iCut]->Add(hESDEposEnegTrueJPsiInvMassPt[iCut]);
+        }
 
 
          hESDTruePositronPt[iCut] = new TH1F("ESD_TruePositron_Pt","ESD_TruePositron_Pt",1000,0,25);
@@ -784,13 +812,17 @@ void AliAnalysisTaskGammaConvDalitzV1::UserCreateOutputObjects()
          hESDTruePi0DalitzSecPositronPt[iCut] = new TH1F("ESD_TruePi0DalitzSecPositron_Pt","ESD_TruePi0DalitzSecPositron_Pt",1000,0,25);
          fTrueList[iCut]->Add(hESDTruePi0DalitzSecPositronPt[iCut]);
 
-        hESDTrueMotherChiCInvMassPt[iCut] = new TH2F("ESD_TrueMotherChiC_InvMass_Pt","ESD_TrueMotherChiC_InvMass_Pt",1000,0,4,250,0,25);
+        if( fDoChicAnalysis) { 
+          
+        hESDTrueMotherChiCInvMassPt[iCut] = new TH2F("ESD_TrueMotherChiC_InvMass_Pt","ESD_TrueMotherChiC_InvMass_Pt",4000,0,4,250,0,25);
          fTrueList[iCut]->Add(hESDTrueMotherChiCInvMassPt[iCut]);
 
-        hESDTrueMotherChiCDiffInvMassPt[iCut] = new TH2F("ESD_TrueMotherChiCDiff_InvMass_Pt","ESD_TrueMotherChiCDiff_InvMass_Pt",1000,0,1,250,0,25);
+        hESDTrueMotherChiCDiffInvMassPt[iCut] = new TH2F("ESD_TrueMotherChiCDiff_InvMass_Pt","ESD_TrueMotherChiCDiff_InvMass_Pt",2000,0,2,250,0,25);
          fTrueList[iCut]->Add(hESDTrueMotherChiCDiffInvMassPt[iCut]);
+        
+        }
 
-         hESDTrueMotherInvMassPt[iCut] = new TH2F("ESD_TrueMother_InvMass_Pt","ESD_TrueMother_InvMass_Pt",1000,0,1,250,0,25);
+        hESDTrueMotherInvMassPt[iCut] = new TH2F("ESD_TrueMother_InvMass_Pt","ESD_TrueMother_InvMass_Pt",1000,0,1,250,0,25);
          fTrueList[iCut]->Add(hESDTrueMotherInvMassPt[iCut]);
         
         hESDTrueMotherDalitzInvMassPt[iCut] = new TH2F("ESD_TrueMother_Dalitz_InvMass_Pt","ESD_TrueMother_Dalitz_InvMass_Pt",1000,0,1,250,0,25);
@@ -856,7 +888,8 @@ void AliAnalysisTaskGammaConvDalitzV1::UserExec(Option_t *)
    fSelectorElectronIndex = fElecSelector->GetReconstructedElectronsIndex(); // Electrons from default Cut
    fSelectorPositronIndex = fElecSelector->GetReconstructedPositronsIndex(); // Positrons from default Cut
 
-   CountESDTracks(); // Estimate Event Multiplicity
+   //CountESDTracks(); // Estimate Event Multiplicity
+   fNumberOfESDTracks = fV0Reader->GetNumberOfPrimaryTracks();
    //AddTaskContainers(); //Add conatiner
 
    for(Int_t iCut = 0; iCut<fnCuts; iCut++){
@@ -962,7 +995,7 @@ Bool_t AliAnalysisTaskGammaConvDalitzV1::Notify()
          continue;
       }
       else{
-         printf(" Gamma Conversion Task %s :: Eta Shift Manually Set to %f \n\n",
+         printf(" Gamma Conversion Dalitz Task %s :: Eta Shift Manually Set to %f \n\n",
          (((AliConversionCuts*)fCutGammaArray->At(iCut))->GetCutNumber()).Data(),((AliConversionCuts*)fCutGammaArray->At(iCut))->GetEtaShift());
          ((AliConversionCuts*)fCutGammaArray->At(iCut))->DoEtaShift(kFALSE); // Eta Shift Set, make sure that it is called only once   
         ((AliDalitzElectronCuts*)fCutElectronArray->At(iCut))->SetEtaShift( ((AliConversionCuts*)fCutGammaArray->At(iCut))->GetEtaShift() );
@@ -1196,14 +1229,16 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
    }
 
 
-   vector<Int_t> lGoodElectronIndex(0);
-   vector<Int_t> lGoodPositronIndex(0);
-
+   vector<Int_t> lGoodElectronIndexPrev(0);
+   vector<Int_t> lGoodPositronIndexPrev(0);
+   
+   
+  
 
    for(UInt_t i = 0; i < fSelectorElectronIndex.size(); i++){
     AliESDtrack* electronCandidate = fESDEvent->GetTrack(fSelectorElectronIndex[i]);
     if(! ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->ElectronIsSelected(electronCandidate) ) continue;
-       lGoodElectronIndex.push_back(   fSelectorElectronIndex[i] );
+       lGoodElectronIndexPrev.push_back(   fSelectorElectronIndex[i] );
        hESDDalitzElectronPt[fiCut]->Fill(electronCandidate->Pt());
         hESDDalitzElectronPhi[fiCut]->Fill(electronCandidate->Phi());
          if( fMCEvent ) {
@@ -1234,7 +1269,7 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
 
       AliESDtrack* positronCandidate = fESDEvent->GetTrack( fSelectorPositronIndex[i] );
       if(! ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->ElectronIsSelected(positronCandidate) ) continue;
-       lGoodPositronIndex.push_back(   fSelectorPositronIndex[i]  );
+       lGoodPositronIndexPrev.push_back(   fSelectorPositronIndex[i]  );
         hESDDalitzPositronPt[fiCut]->Fill( positronCandidate->Pt() );
        hESDDalitzPositronPhi[fiCut]->Fill( positronCandidate->Phi() );
       
@@ -1263,18 +1298,18 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
     }
 
 
-   vector<Bool_t> lElectronPsiIndex(lGoodElectronIndex.size(), kTRUE);
-   vector<Bool_t> lPositronPsiIndex(lGoodPositronIndex.size(), kTRUE);
+   vector<Bool_t> lElectronPsiIndex(lGoodElectronIndexPrev.size(), kTRUE);
+   vector<Bool_t> lPositronPsiIndex(lGoodPositronIndexPrev.size(), kTRUE);
 
 
    if( ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->DoPsiPairCut() == kTRUE ){
 
-      for( UInt_t i = 0; i < lGoodElectronIndex.size(); i++ ) {
+      for( UInt_t i = 0; i < lGoodElectronIndexPrev.size(); i++ ) {
 
-         AliESDtrack *electronCandidate = fESDEvent->GetTrack(lGoodElectronIndex[i]);
+         AliESDtrack *electronCandidate = fESDEvent->GetTrack(lGoodElectronIndexPrev[i]);
 
-         for(UInt_t j = 0; j <  lGoodPositronIndex.size(); j++){
-            AliESDtrack *positronCandidate = fESDEvent->GetTrack(lGoodPositronIndex[j]);
+         for(UInt_t j = 0; j <  lGoodPositronIndexPrev.size(); j++){
+            AliESDtrack *positronCandidate = fESDEvent->GetTrack(lGoodPositronIndexPrev[j]);
             Double_t psiPair = GetPsiPair(positronCandidate,electronCandidate);
             Double_t deltaPhi = magField * TVector2::Phi_mpi_pi( electronCandidate->GetConstrainedParam()->Phi()-positronCandidate->GetConstrainedParam()->Phi());
 
@@ -1287,11 +1322,29 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
    }
 
 
+   vector<Int_t> lGoodElectronIndex(0);
+   vector<Int_t> lGoodPositronIndex(0);
+   
+
+   for( UInt_t i = 0; i < lGoodElectronIndexPrev.size(); i++ ) {
+
+       if(  lElectronPsiIndex[i] == kTRUE )
+       lGoodElectronIndex.push_back(   lGoodElectronIndexPrev[i]  );
+   }
+
+   for( UInt_t i = 0; i < lGoodPositronIndexPrev.size(); i++ ) {
+
+        if(  lPositronPsiIndex[i] == kTRUE )
+        lGoodPositronIndex.push_back(   lGoodPositronIndexPrev[i]  );
+   }
+
 
 
+    
+   
    for(UInt_t i = 0; i < lGoodElectronIndex.size(); i++){
 
-      if( lElectronPsiIndex[i] == kFALSE ) continue;
+      //if( lElectronPsiIndex[i] == kFALSE ) continue;
 
 
       AliESDtrack *electronCandidate = fESDEvent->GetTrack(lGoodElectronIndex[i]);
@@ -1300,7 +1353,7 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
 
       for(UInt_t j = 0; j < lGoodPositronIndex.size(); j++){
 
-         if( lPositronPsiIndex[j] == kFALSE ) continue;
+         //if( lPositronPsiIndex[j] == kFALSE ) continue;
 
          AliESDtrack *positronCandidate = fESDEvent->GetTrack(lGoodPositronIndex[j]);
          AliKFParticle positronCandidateKF( *positronCandidate->GetConstrainedParam(), ::kPositron );
@@ -1313,8 +1366,8 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
          Double_t deltaPhi = magField * TVector2::Phi_mpi_pi( electronCandidate->GetConstrainedParam()->Phi()-positronCandidate->GetConstrainedParam()->Phi());
          
 
-
-         AliKFConversionPhoton* virtualPhoton = new AliKFConversionPhoton(electronCandidateKF,positronCandidateKF);
+        AliKFConversionPhoton* virtualPhoton = NULL;
+         virtualPhoton = new AliKFConversionPhoton(electronCandidateKF,positronCandidateKF);
 
 
          AliKFVertex primaryVertexImproved(*fInputEvent->GetPrimaryVertex());
@@ -1323,61 +1376,94 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
 
          virtualPhoton->SetTrackLabels( lGoodPositronIndex[j], lGoodElectronIndex[i]);
 
-         if(fMCEvent){
-
-            // AliStack *fMCStack= fMCEvent->Stack();
-            Int_t labeln=TMath::Abs(electronCandidate->GetLabel());
-            Int_t labelp=TMath::Abs(positronCandidate->GetLabel());
-            TParticle *fNegativeMCParticle = fMCStack->Particle(labeln);
-            TParticle *fPositiveMCParticle = fMCStack->Particle(labelp);
-            if( fPositiveMCParticle && fNegativeMCParticle) {
-               virtualPhoton->SetMCLabelPositive(labelp);
-               virtualPhoton->SetMCLabelNegative(labeln);
-            
-                                               }
-            
-            TParticle *mcVgamma=virtualPhoton->GetMCParticle(fMCStack);
-                                               
-                                               
-                                               if(mcVgamma){
-                                                       // Check if it is a true photon
-                                                       if(mcVgamma->GetPdgCode() == 22){
-                                                               isPhoton = kTRUE;
-                                                       }else if(mcVgamma->GetPdgCode() == 443){
-                                                               isJPsi = kTRUE;
-                                                       }
-                                                       else if( IsDalitz( mcVgamma ) ){
-                                                               if     ( mcVgamma->GetPdgCode() == 111 ) isPi0Dalitz = kTRUE;
-                                                               else if( mcVgamma->GetPdgCode() == 221 ) isEtaDalitz = kTRUE;
-                                                       }
-                                               }
-                                }
-                                
+                                
          
          AliAODConversionPhoton *vphoton = new AliAODConversionPhoton(virtualPhoton); //To Apply PsiPairCut
-                                
+        
+              
+        
+        if ( fDoMesonQA ) {
+          
          hESDEposEnegPsiPairDPhi[fiCut]->Fill(deltaPhi,psiPair);   
          hESDEposEnegInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
                                 
-                               if( fMCEvent ) {
-                               if(isPhoton)    hESDEposEnegTruePhotonInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
-                               else if(isJPsi) hESDEposEnegTrueJPsiInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
-                               else if(isPi0Dalitz)hESDEposEnegTruePi0DalitzInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
-                               else if(isEtaDalitz)hESDEposEnegTrueEtaDalitzInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
-                                        
-                                }
+        if( fMCEvent ) {
+          
+         Int_t labeln=TMath::Abs(electronCandidate->GetLabel());
+          Int_t labelp=TMath::Abs(positronCandidate->GetLabel());
+          TParticle *fNegativeMCParticle = fMCStack->Particle(labeln);
+          TParticle *fPositiveMCParticle = fMCStack->Particle(labelp);
+          
+           if( fPositiveMCParticle && fNegativeMCParticle) {
+               virtualPhoton->SetMCLabelPositive(labelp);
+               virtualPhoton->SetMCLabelNegative(labeln);
+           }
+            
+           TParticle *mcVgamma=virtualPhoton->GetMCParticle(fMCStack);
+
+           if(mcVgamma){
+           // Check if it is a true photon
+             if(mcVgamma->GetPdgCode() == 22){
+               isPhoton = kTRUE;
+             }else if(mcVgamma->GetPdgCode() == 443){
+               isJPsi = kTRUE;
+             }
+             else if( IsDalitz( mcVgamma ) ){
+               if     ( mcVgamma->GetPdgCode() == 111 ) isPi0Dalitz = kTRUE;
+               else if( mcVgamma->GetPdgCode() == 221 ) isEtaDalitz = kTRUE;
+             }
+           }
+           
+           
+             if(isPhoton)    hESDEposEnegTruePhotonInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
+             else if(isJPsi) hESDEposEnegTrueJPsiInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
+             else if(isPi0Dalitz)hESDEposEnegTruePi0DalitzInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
+             else if(isEtaDalitz)hESDEposEnegTrueEtaDalitzInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
+           }
+        }
                                 
-                                fGoodVirtualGammas->Add(  vphoton );
+        if( ! fDoChicAnalysis ) {
+       
+                 if (  ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->DoMassCut() == kTRUE )  {
+                   
+                    Double_t MassCutMax = 1000.0;
+                    if(  ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->GetMassCutLowPt() >= ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->GetMassCutHighPt() ){
+                      MassCutMax = ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->GetMassCutLowPt();
+                    }
+                    else {
+                      MassCutMax = ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->GetMassCutHighPt();
+                    }
+                    
+                    if( vphoton->GetMass() > MassCutMax ) {
+                      
+                      
+                      delete vphoton;
+                      vphoton = 0x0;
+                      delete virtualPhoton;
+                      virtualPhoton = 0x0;
+                      continue;
+                      
+                    }
+                    
+                 }
+        }
+        
+        
+         fGoodVirtualGammas->Add(  vphoton );
+        delete virtualPhoton;
+        virtualPhoton=NULL;
                                 
       }
    }
    
-   
    //Computing mixing event
+   
+   if(  fDoMesonQA ) {
 
-   for(UInt_t i = 0; i < lGoodElectronIndex.size(); i++){
+      for(UInt_t i = 0; i < lGoodElectronIndex.size(); i++){
          
-         if( lElectronPsiIndex[i] == kFALSE ) continue;
+         //if( lElectronPsiIndex[i] == kFALSE ) continue;
          
           AliESDtrack *electronCandidate1 = fESDEvent->GetTrack(lGoodElectronIndex[i]);
 
@@ -1386,7 +1472,7 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
         
           for(UInt_t j = i+1; j < lGoodElectronIndex.size(); j++){
            
-              if( lElectronPsiIndex[j] == kFALSE ) continue;
+              //if( lElectronPsiIndex[j] == kFALSE ) continue;
               
               
                AliESDtrack *electronCandidate2 = fESDEvent->GetTrack(lGoodElectronIndex[j]);
@@ -1404,15 +1490,18 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
                hESDEposEnegLikeSignBackInvMassPt[fiCut]->Fill(vphoton->GetMass(),vphoton->Pt());
                delete vphoton;
                delete virtualPhoton;
-                           
+               vphoton = 0x0;
+               virtualPhoton = 0x0;            
           
          }
    }   
    
    
-   for(UInt_t i = 0; i < lGoodPositronIndex.size(); i++){
+      for(UInt_t i = 0; i < lGoodPositronIndex.size(); i++){
+     
+   
          
-         if( lPositronPsiIndex[i] == kFALSE ) continue;
+         //if( lPositronPsiIndex[i] == kFALSE ) continue;
          
           AliESDtrack *positronCandidate1 = fESDEvent->GetTrack(lGoodPositronIndex[i]);
 
@@ -1421,7 +1510,7 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
         
           for(UInt_t j = i+1; j < lGoodPositronIndex.size(); j++){
            
-              if( lPositronPsiIndex[j] == kFALSE ) continue;
+             // if( lPositronPsiIndex[j] == kFALSE ) continue;
               
                AliESDtrack *positronCandidate2 = fESDEvent->GetTrack(lGoodPositronIndex[j]);
 
@@ -1437,12 +1526,14 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessElectronCandidates(){
                
                
                delete vphoton;
-               delete virtualPhoton;        
+               delete virtualPhoton;  
+               vphoton = 0x0;
+               virtualPhoton = 0x0;
           
          }
    }   
 
-
+   }
 }
 
 //________________________________________________________________________
@@ -1484,31 +1575,47 @@ void AliAnalysisTaskGammaConvDalitzV1::CalculatePi0DalitzCandidates(){
                   mbin = fBGHandler[fiCut]->GetMultiplicityBinIndex(fGoodGammas->GetEntries());
                }
              
-             AliESDtrack *positronVgamma = fESDEvent->GetTrack( Vgamma->GetTrackLabelPositive() );
-             AliESDtrack *electronVgamma = fESDEvent->GetTrack( Vgamma->GetTrackLabelNegative() );
-             Double_t clsToFPos = ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetNFindableClustersTPC(positronVgamma);
-             Double_t clsToFNeg = ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetNFindableClustersTPC(electronVgamma);
+             AliESDtrack *positronVgamma = 0;
+             AliESDtrack *electronVgamma = 0;
              
-             Float_t bPos[2];
-             Float_t bCovPos[3];
-             positronVgamma->GetImpactParameters(bPos,bCovPos);
-             if (bCovPos[0]<=0 || bCovPos[2]<=0) {
-               AliDebug(1, "Estimated b resolution lower or equal zero!");
-               bCovPos[0]=0; bCovPos[2]=0;
-             }
+             Double_t clsToFPos = -1.0;
+             Double_t clsToFNeg = -1.0;
              
-             Float_t bNeg[2];
-             Float_t bCovNeg[3];
-             positronVgamma->GetImpactParameters(bNeg,bCovNeg);
-             if (bCovNeg[0]<=0 || bCovNeg[2]<=0) {
-               AliDebug(1, "Estimated b resolution lower or equal zero!");
-               bCovNeg[0]=0; bCovNeg[2]=0;
-             }
+             Float_t dcaToVertexXYPos = -1.0;
+             Float_t dcaToVertexZPos  = -1.0;
+             Float_t dcaToVertexXYNeg = -1.0;
+             Float_t dcaToVertexZNeg  = -1.0;
              
-             Float_t dcaToVertexXYPos = bPos[0];
-             Float_t dcaToVertexZPos  = bPos[1];
-             Float_t dcaToVertexXYNeg = bNeg[0];
-             Float_t dcaToVertexZNeg  = bNeg[1];
+             
+              if ( fDoMesonQA ) {
+             
+               positronVgamma = fESDEvent->GetTrack( Vgamma->GetTrackLabelPositive() );
+               electronVgamma = fESDEvent->GetTrack( Vgamma->GetTrackLabelNegative() );
+               clsToFPos = ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetNFindableClustersTPC(positronVgamma);
+               clsToFNeg = ((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetNFindableClustersTPC(electronVgamma);
+             
+               Float_t bPos[2];
+               Float_t bCovPos[3];
+               positronVgamma->GetImpactParameters(bPos,bCovPos);
+               if (bCovPos[0]<=0 || bCovPos[2]<=0) {
+                 AliDebug(1, "Estimated b resolution lower or equal zero!");
+                 bCovPos[0]=0; bCovPos[2]=0;
+               }
+             
+               Float_t bNeg[2];
+               Float_t bCovNeg[3];
+               positronVgamma->GetImpactParameters(bNeg,bCovNeg);
+               if (bCovNeg[0]<=0 || bCovNeg[2]<=0) {
+                 AliDebug(1, "Estimated b resolution lower or equal zero!");
+                 bCovNeg[0]=0; bCovNeg[2]=0;
+               }
+             
+               dcaToVertexXYPos = bPos[0];
+               dcaToVertexZPos  = bPos[1];
+               dcaToVertexXYNeg = bNeg[0];
+               dcaToVertexZNeg  = bNeg[1];
+             
+              }
                      
              
               if(  ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->DoMassCut() == kTRUE ) {
@@ -1517,35 +1624,40 @@ void AliAnalysisTaskGammaConvDalitzV1::CalculatePi0DalitzCandidates(){
                 if( ((AliDalitzElectronCuts*) fCutElectronArray->At(fiCut))->MassCut( pi0cand->Pt() , Vgamma->GetMass() ) == kTRUE ){
          
                 hESDMotherInvMassPt[fiCut]->Fill(pi0cand->M(),pi0cand->Pt());
-                hESDMotherPhi[fiCut]->Fill(pi0cand->Phi());
+               
                 Double_t sparesFill[4] = {pi0cand->M(),pi0cand->Pt(),(Double_t)zbin,(Double_t)mbin};
                  sESDMotherInvMassPtZM[fiCut]->Fill(sparesFill,1);
                 
-                   if( lGoodVirtualGamma[virtualGammaIndex] == kFALSE ) {
                 
-                     hESDDalitzElectronAfterPt[fiCut]->Fill(  electronVgamma->Pt()  );
-                     hESDDalitzPositronAfterPt[fiCut]->Fill(  positronVgamma->Pt()  );
+                   if ( fDoMesonQA ) {
+                   
+                    hESDMotherPhi[fiCut]->Fill(pi0cand->Phi());
                 
-                     hESDDalitzElectronAfterPhi[fiCut]->Fill( electronVgamma->Phi() );
-                     hESDDalitzPositronAfterPhi[fiCut]->Fill( positronVgamma->Phi() );
+                       if( lGoodVirtualGamma[virtualGammaIndex] == kFALSE ) {
+                
+                         hESDDalitzElectronAfterPt[fiCut]->Fill(  electronVgamma->Pt()  );
+                         hESDDalitzPositronAfterPt[fiCut]->Fill(  positronVgamma->Pt()  );
+                
+                         hESDDalitzElectronAfterPhi[fiCut]->Fill( electronVgamma->Phi() );
+                         hESDDalitzPositronAfterPhi[fiCut]->Fill( positronVgamma->Phi() );
                      
-                     hESDDalitzElectronAfterNFindClsTPC[fiCut]->Fill(clsToFNeg,electronVgamma->Pt());
-                     hESDDalitzPositronAfterNFindClsTPC[fiCut]->Fill(clsToFPos,positronVgamma->Pt());
+                         hESDDalitzElectronAfterNFindClsTPC[fiCut]->Fill(clsToFNeg,electronVgamma->Pt());
+                         hESDDalitzPositronAfterNFindClsTPC[fiCut]->Fill(clsToFPos,positronVgamma->Pt());
                      
                      
-                     hESDDalitzPosEleAfterDCAxy[fiCut]->Fill(  dcaToVertexXYNeg, electronVgamma->Pt() );
-                     hESDDalitzPosEleAfterDCAz[fiCut]->Fill(   dcaToVertexZNeg,  electronVgamma->Pt() );
-                     hESDDalitzPosEleAfterDCAxy[fiCut]->Fill(  dcaToVertexXYPos, positronVgamma->Pt() );
-                     hESDDalitzPosEleAfterDCAz[fiCut]->Fill(   dcaToVertexZPos,  positronVgamma->Pt() );
+                         hESDDalitzPosEleAfterDCAxy[fiCut]->Fill(  dcaToVertexXYNeg, electronVgamma->Pt() );
+                         hESDDalitzPosEleAfterDCAz[fiCut]->Fill(   dcaToVertexZNeg,  electronVgamma->Pt() );
+                         hESDDalitzPosEleAfterDCAxy[fiCut]->Fill(  dcaToVertexXYPos, positronVgamma->Pt() );
+                         hESDDalitzPosEleAfterDCAz[fiCut]->Fill(   dcaToVertexZPos,  positronVgamma->Pt() );
                      
-                     hESDDalitzPosEleAfterTPCdEdx[fiCut]->Fill( positronVgamma->P(),((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetPIDResponse()->NumberOfSigmasTPC(positronVgamma, AliPID::kElectron) );
-                     hESDDalitzPosEleAfterTPCdEdx[fiCut]->Fill( electronVgamma->P(),((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetPIDResponse()->NumberOfSigmasTPC(electronVgamma, AliPID::kElectron) );
+                         hESDDalitzPosEleAfterTPCdEdx[fiCut]->Fill( positronVgamma->P(),((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetPIDResponse()->NumberOfSigmasTPC(positronVgamma, AliPID::kElectron) );
+                         hESDDalitzPosEleAfterTPCdEdx[fiCut]->Fill( electronVgamma->P(),((AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetPIDResponse()->NumberOfSigmasTPC(electronVgamma, AliPID::kElectron) );
                      
-                     hESDDalitzPosEleAfterTPCdEdxSignal[fiCut]->Fill( positronVgamma->P(), TMath::Abs(positronVgamma->GetTPCsignal()));
-                     hESDDalitzPosEleAfterTPCdEdxSignal[fiCut]->Fill( electronVgamma->P(), TMath::Abs(electronVgamma->GetTPCsignal()));
-                      
+                         hESDDalitzPosEleAfterTPCdEdxSignal[fiCut]->Fill( positronVgamma->P(), TMath::Abs(positronVgamma->GetTPCsignal()));
+                         hESDDalitzPosEleAfterTPCdEdxSignal[fiCut]->Fill( electronVgamma->P(), TMath::Abs(electronVgamma->GetTPCsignal()));
                      
-                     lGoodVirtualGamma[virtualGammaIndex] = kTRUE;
+                         lGoodVirtualGamma[virtualGammaIndex] = kTRUE;
+                     }
                    }
       
                 
@@ -1556,7 +1668,12 @@ void AliAnalysisTaskGammaConvDalitzV1::CalculatePi0DalitzCandidates(){
                 Double_t sparesFill[4] = {pi0cand->M(),pi0cand->Pt(),(Double_t)zbin,(Double_t)mbin};
                  sESDMotherInvMassPtZM[fiCut]->Fill(sparesFill,1);
                 
-                 if( lGoodVirtualGamma[virtualGammaIndex] == kFALSE ) {
+                
+                  if ( fDoMesonQA ) {
+                
+                   hESDMotherPhi[fiCut]->Fill(pi0cand->Phi());
+                
+                   if( lGoodVirtualGamma[virtualGammaIndex] == kFALSE ) {
                 
                      hESDDalitzElectronAfterPt[fiCut]->Fill(  electronVgamma->Pt()  );
                      hESDDalitzPositronAfterPt[fiCut]->Fill(  positronVgamma->Pt()  );
@@ -1581,10 +1698,11 @@ void AliAnalysisTaskGammaConvDalitzV1::CalculatePi0DalitzCandidates(){
                      
                      lGoodVirtualGamma[virtualGammaIndex] = kTRUE;
                 
-                 }
+                   }
+                  }
              }
               
-              
+              if( fDoChicAnalysis) {
               
                hESDPi0MotherInvMassPt[fiCut]->Fill(pi0cand->M(),pi0cand->Pt());
                 
@@ -1592,9 +1710,10 @@ void AliAnalysisTaskGammaConvDalitzV1::CalculatePi0DalitzCandidates(){
     
                hESDPi0MotherDiffInvMassPt[fiCut]->Fill( diffMass , pi0cand->Pt() );
        
-             if(Vgamma->GetMass() > 2.5 && Vgamma->GetMass()<3.4       ){
+               if( Vgamma->GetMass() > 2.5 && Vgamma->GetMass() < 3.4){
                hESDPi0MotherDiffLimInvMassPt[fiCut]->Fill( diffMass , pi0cand->Pt() );
-             }
+               }
+              }
                
               if(fMCEvent){
                   ProcessTrueMesonCandidates(pi0cand,gamma,Vgamma);
@@ -1768,6 +1887,9 @@ void AliAnalysisTaskGammaConvDalitzV1::UpdateEventByEventData(){
 
    method = ( (AliDalitzElectronCuts*)fCutElectronArray->At(fiCut))->GetBKGMethod();
 
+   
+
+
    if( method == 1 ) {
 
       if(fGoodGammas->GetEntries() > 0 ){
@@ -1905,15 +2027,17 @@ void AliAnalysisTaskGammaConvDalitzV1::ProcessTrueMesonCandidates(AliAODConversi
         
        }
 
-                       if(gammaMotherLabel>=0 && ( gammaMotherLabel == virtualGammaGrandMotherLabel) ){
-                               if(((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 445 ||
-                                        ((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 10443 ||
-                                        ((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 20443 ){
-                                       isTrueChiC=kTRUE;
-                                       hESDTrueMotherChiCInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());
-                                       hESDTrueMotherChiCDiffInvMassPt[fiCut]->Fill(Pi0Candidate->M()-TrueVirtualGammaCandidate->GetMass(),Pi0Candidate->Pt());
-                               }
-                       }
+       if( fDoChicAnalysis) {
+       if(gammaMotherLabel>=0 && ( gammaMotherLabel == virtualGammaGrandMotherLabel) ){
+         if(((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 445 ||
+           ((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 10443 ||
+           ((TParticle*)MCStack->Particle(virtualGammaGrandMotherLabel))->GetPdgCode() == 20443 ){
+             isTrueChiC=kTRUE;
+             hESDTrueMotherChiCInvMassPt[fiCut]->Fill(Pi0Candidate->M(),Pi0Candidate->Pt());
+             hESDTrueMotherChiCDiffInvMassPt[fiCut]->Fill(Pi0Candidate->M()-TrueVirtualGammaCandidate->GetMass(),Pi0Candidate->Pt());
+            }
+         }  
+       }
 
       if( ( isTruePi0 || isTrueEta) && massCutAccept ){ // True Pion or Eta
        
index a56d6a171421a5162f15e36640af142049a729cd..dedc1cd9c096a12e6d0e321fd78af6160af2a7ba 100644 (file)
@@ -60,6 +60,8 @@ class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
        void SetMesonCutList(TList *CutArray){
                fCutMesonArray = CutArray;
        }
+       void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
+       void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
   
 
        private:
@@ -90,6 +92,7 @@ class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
     TList **fCutFolder;
     TList **fESDList;
     TList **fBackList;
+    TList **fMotherList;
     TList **fTrueList;
     TList **fMCList;
     TList *fOutputContainer;
@@ -192,6 +195,8 @@ class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
     Bool_t fMoveParticleAccordingToVertex;
     Bool_t fIsHeavyIon;
     Bool_t fDoMesonAnalysis;
+    Bool_t fDoChicAnalysis;
+    Bool_t fDoMesonQA;
     Bool_t fIsFromMBHeader;
                Bool_t fIsMC;
 
index 94dedb8c7ee0559397fc960ece9f11321759bc47..6f66aff36326048984e9eff3ff6d30684b5148b5 100644 (file)
@@ -1,16 +1,16 @@
 /**************************************************************************
  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                       *
- * Authors: Svein Lindal, Daniel Lohner                                          *
- * Version 1.0                                                           *
- *                                                                       *
- * Permission to use, copy, modify and distribute this software and its          *
- * documentation strictly for non-commercial purposes is hereby granted          *
- * without fee, provided that the above copyright notice appears in all          *
- * copies and that both the copyright notice and this permission notice          *
- * appear in the supporting documentation. The authors make no claims    *
- * about the suitability of this software for any purpose. It is         *
- * provided "as is" without express or implied warranty.                 *
+ *                                 *
+ * Authors: Svein Lindal, Daniel Lohner                 *
+ * Version 1.0                        *
+ *                           *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is    *
+ * provided "as is" without express or implied warranty.      *
  **************************************************************************/
 
 ////////////////////////////////////////////////
@@ -190,6 +190,9 @@ AliConversionCuts::AliConversionCuts(const char *name,const char *title) :
    fNameHistoReweightingPi0(""),
    fNameHistoReweightingEta(""),
    fNameHistoReweightingK0s(""),
+   fNameFitDataPi0(""),
+   fNameFitDataEta(""),
+   fNameFitDataK0s(""),
    hdEdxCuts(NULL),
    hTPCdEdxbefore(NULL),
    hTPCdEdxafter(NULL),
@@ -215,6 +218,9 @@ AliConversionCuts::AliConversionCuts(const char *name,const char *title) :
    hReweightMCHistPi0(NULL),
    hReweightMCHistEta(NULL),
    hReweightMCHistK0s(NULL),
+   fFitDataPi0(NULL),
+   fFitDataEta(NULL),
+   fFitDataK0s(NULL),
    fPreSelCut(kFALSE),
    fTriggerSelectedManually(kFALSE),
    fSpecialTriggerName("")
@@ -334,6 +340,9 @@ AliConversionCuts::AliConversionCuts(const AliConversionCuts &ref) :
    fNameHistoReweightingPi0(ref.fNameHistoReweightingPi0),
    fNameHistoReweightingEta(ref.fNameHistoReweightingEta),
    fNameHistoReweightingK0s(ref.fNameHistoReweightingK0s),
+   fNameFitDataPi0(ref.fNameFitDataPi0),
+   fNameFitDataEta(ref.fNameFitDataEta),
+   fNameFitDataK0s(ref.fNameFitDataK0s),
    hdEdxCuts(NULL),
    hTPCdEdxbefore(NULL),
    hTPCdEdxafter(NULL),
@@ -359,6 +368,9 @@ AliConversionCuts::AliConversionCuts(const AliConversionCuts &ref) :
    hReweightMCHistPi0(NULL),
    hReweightMCHistEta(NULL),
    hReweightMCHistK0s(NULL),
+   fFitDataPi0(NULL),
+   fFitDataEta(NULL),
+   fFitDataK0s(NULL),
    fPreSelCut(ref.fPreSelCut),
    fTriggerSelectedManually(ref.fTriggerSelectedManually),
    fSpecialTriggerName(ref.fSpecialTriggerName)
@@ -378,7 +390,7 @@ AliConversionCuts::~AliConversionCuts() {
    // Destructor
    //Deleting fHistograms leads to seg fault it it's added to output collection of a task
    // if(fHistograms)
-   //  delete fHistograms;
+   //    delete fHistograms;
    // fHistograms = NULL;
    if(fCutString != NULL){
       delete fCutString;
@@ -424,10 +436,30 @@ void AliConversionCuts::InitCutHistograms(TString name, Bool_t preCut){
       else fHistograms->SetName(Form("%s_%s",name.Data(),GetCutNumber().Data()));
    }
 
-   if (hReweightMCHistPi0) fHistograms->Add(hReweightMCHistPi0);
-   if (hReweightMCHistEta) fHistograms->Add(hReweightMCHistEta);
-   if (hReweightMCHistK0s) fHistograms->Add(hReweightMCHistK0s);
-   
+   if (hReweightMCHistPi0){
+      hReweightMCHistPi0->SetName("MCInputForWeightingPi0");
+      fHistograms->Add(hReweightMCHistPi0);
+   }
+   if (hReweightMCHistEta){
+      hReweightMCHistEta->SetName("MCInputForWeightingEta");
+      fHistograms->Add(hReweightMCHistEta);
+   }   
+   if (hReweightMCHistK0s){
+      hReweightMCHistK0s->SetName("MCInputForWeightingK0s");
+      fHistograms->Add(hReweightMCHistK0s);
+   }   
+   if (fFitDataPi0){
+      fFitDataPi0->SetName("DataFitForWeightingPi0");
+      fHistograms->Add(fFitDataPi0);
+   }   
+   if (fFitDataEta){
+      fFitDataEta->SetName("DataFitForWeightingEta");
+      fHistograms->Add(fFitDataEta);
+   }
+   if (fFitDataK0s){
+      fFitDataK0s->SetName("DataFitForWeightingK0s");
+      fHistograms->Add(fFitDataK0s);
+   }
    // IsPhotonSelected
    hCutIndex=new TH1F(Form("IsPhotonSelected %s",GetCutNumber().Data()),"IsPhotonSelected",10,-0.5,9.5);
    hCutIndex->GetXaxis()->SetBinLabel(kPhotonIn+1,"in");
@@ -827,10 +859,10 @@ Bool_t AliConversionCuts::PhotonIsSelectedMC(TParticle *particle,AliStack *fMCSt
       }
 
       if(abs(ePos->Vz()) > fMaxZ){
-         return kFALSE;         // outside material
+         return kFALSE;  // outside material
       }
       if(abs(eNeg->Vz()) > fMaxZ){
-         return kFALSE;         // outside material
+         return kFALSE;  // outside material
       }
 
       if( ePos->R() <= ((abs(ePos->Vz()) * fLineCutZRSlope) - fLineCutZValue)){
@@ -918,10 +950,10 @@ Bool_t AliConversionCuts::PhotonIsSelectedAODMC(AliAODMCParticle *particle,TClon
          return kFALSE; // cuts on distance from collision point
       }
       if(abs(ePos->Zv()) > fMaxZ){
-         return kFALSE;         // outside material
+         return kFALSE;  // outside material
       }
       if(abs(eNeg->Zv()) > fMaxZ){
-         return kFALSE;         // outside material
+         return kFALSE;  // outside material
       }
 
       if( rPos <= ((abs(ePos->Zv()) * fLineCutZRSlope) - fLineCutZValue)){
@@ -1295,7 +1327,7 @@ Bool_t AliConversionCuts::TracksAreSelected(AliVTrack * negTrack, AliVTrack * po
    cutIndex++;
 
    // Single Pt Cut
-   if( negTrack->Pt()< fSinglePtCut || posTrack->Pt()< fSinglePtCut){
+   if( negTrack->Pt()< fSinglePtCut || posTrack->Pt()< fSinglePtCut){
       if(hTrackCuts)hTrackCuts->Fill(cutIndex);
       return kFALSE;
    }
@@ -1424,7 +1456,7 @@ Bool_t AliConversionCuts::dEdxCuts(AliVTrack *fCurrentTrack){
          Double_t t0 = fPIDResponse->GetTOFResponse().GetStartTime(fCurrentTrack->P());
          Double_t times[5];
          fCurrentTrack->GetIntegratedTimes(times);
-         Double_t TOFsignal =  fCurrentTrack->GetTOFsignal();
+         Double_t TOFsignal = fCurrentTrack->GetTOFsignal();
          Double_t dT = TOFsignal - t0 - times[0];
          hTOFbefore->Fill(fCurrentTrack->P(),dT);
       }
@@ -1541,8 +1573,8 @@ Bool_t AliConversionCuts::PIDProbabilityCut(AliConversionPhotonBase *photon, Ali
       Double_t *posProbArray = new Double_t[AliPID::kSPECIES];
       Double_t *negProbArray = new Double_t[AliPID::kSPECIES];
 
-      AliESDtrack* negTrack    = esdEvent->GetTrack(photon->GetTrackLabelNegative());
-      AliESDtrack* posTrack    = esdEvent->GetTrack(photon->GetTrackLabelPositive());
+      AliESDtrack* negTrack   = esdEvent->GetTrack(photon->GetTrackLabelNegative());
+      AliESDtrack* posTrack   = esdEvent->GetTrack(photon->GetTrackLabelPositive());
 
       if(negProbArray && posProbArray){
 
@@ -1659,28 +1691,52 @@ void AliConversionCuts::LoadReweightingHistosMCFromFile() {
   if (fNameHistoReweightingPi0.CompareTo("") != 0 && fDoReweightHistoMCPi0 ){
      hReweightMCHistPi0 = (TH1D*)f->Get(fNameHistoReweightingPi0.Data());
      if (hReweightMCHistPi0) AliInfo(Form("%s has been loaded from %s", fNameHistoReweightingPi0.Data(),fPathTrFReweighting.Data() ));
-       else AliWarning(Form("%s not found in %s",fPathTrFReweighting.Data(), fNameHistoReweightingPi0.Data() ));
+       else AliWarning(Form("%s not found in %s", fNameHistoReweightingPi0.Data() ,fPathTrFReweighting.Data()));
+  }
+  if (fNameFitDataPi0.CompareTo("") != 0 && fDoReweightHistoMCPi0 ){
+     fFitDataPi0 = (TF1*)f->Get(fNameFitDataPi0.Data());
+     if (fFitDataPi0) AliInfo(Form("%s has been loaded from %s", fNameFitDataPi0.Data(),fPathTrFReweighting.Data() ));
+       else AliWarning(Form("%s not found in %s",fPathTrFReweighting.Data(), fNameFitDataPi0.Data() ));
   }
+  
   if (fNameHistoReweightingEta.CompareTo("") != 0 && fDoReweightHistoMCEta){
      hReweightMCHistEta = (TH1D*)f->Get(fNameHistoReweightingEta.Data());
      if (hReweightMCHistEta) AliInfo(Form("%s has been loaded from %s", fNameHistoReweightingEta.Data(),fPathTrFReweighting.Data() ));
-       else AliWarning(Form("%s not found in %s",fPathTrFReweighting.Data(), fNameHistoReweightingEta.Data() ));
+       else AliWarning(Form("%s not found in %s", fNameHistoReweightingEta.Data(),fPathTrFReweighting.Data() ));
+
+  }
+  
+  if (fNameFitDataEta.CompareTo("") != 0 && fDoReweightHistoMCEta){
+     fFitDataEta = (TF1*)f->Get(fNameFitDataEta.Data());
+     if (fFitDataEta) AliInfo(Form("%s has been loaded from %s", fNameFitDataEta.Data(),fPathTrFReweighting.Data() ));
+       else AliWarning(Form("%s not found in %s", fNameFitDataEta.Data(),fPathTrFReweighting.Data() ));
 
   }
   if (fNameHistoReweightingK0s.CompareTo("") != 0 && fDoReweightHistoMCK0s){
      hReweightMCHistK0s = (TH1D*)f->Get(fNameHistoReweightingK0s.Data());
      if (hReweightMCHistK0s) AliInfo(Form("%s has been loaded from %s", fNameHistoReweightingK0s.Data(),fPathTrFReweighting.Data() ));
-       else AliWarning(Form("%s not found in %s",fPathTrFReweighting.Data(), fNameHistoReweightingK0s.Data() ));
+       else AliWarning(Form("%s not found in %s", fNameHistoReweightingK0s.Data(),fPathTrFReweighting.Data() ));
 
   }
 
+  if (fNameFitDataK0s.CompareTo("") != 0 && fDoReweightHistoMCK0s){
+     fFitDataK0s = (TF1*)f->Get(fNameFitDataK0s.Data());
+     if (fFitDataK0s) AliInfo(Form("%s has been loaded from %s", fNameFitDataK0s.Data(),fPathTrFReweighting.Data() ));
+       else AliWarning(Form("%s not found in %s", fNameFitDataK0s.Data(),fPathTrFReweighting.Data() ));
+
+  }
+  
 }
 
 
 ///________________________________________________________________________
 Bool_t AliConversionCuts::InitializeCutsFromCutString(const TString analysisCutSelection ) {
    // Initialize Cuts from a given Cut string
-   if(fDoReweightHistoMCPi0 || fDoReweightHistoMCEta || fDoReweightHistoMCK0s)   LoadReweightingHistosMCFromFile();
+   if(fDoReweightHistoMCPi0 || fDoReweightHistoMCEta || fDoReweightHistoMCK0s) {
+      AliInfo("Weighting was enabled");
+      LoadReweightingHistosMCFromFile();
+      
+   }
    
    AliInfo(Form("Set Photoncut Number: %s",analysisCutSelection.Data()));
    if(analysisCutSelection.Length()!=kNCuts) {
@@ -1693,7 +1749,7 @@ Bool_t AliConversionCuts::InitializeCutsFromCutString(const TString analysisCutS
    }
 
    const char *cutSelection = analysisCutSelection.Data();
-#define ASSIGNARRAY(i) fCuts[i] = cutSelection[i] - '0'
+#define ASSIGNARRAY(i)  fCuts[i] = cutSelection[i] - '0'
    for(Int_t ii=0;ii<kNCuts;ii++){
       ASSIGNARRAY(ii);
    }
@@ -2128,69 +2184,69 @@ Bool_t AliConversionCuts::SetEtaCut(Int_t etaCut)
 
    switch(etaCut){
    case 0: // 0.9
-      fEtaCut          = 0.9;
+      fEtaCut     = 0.9;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
-   case 1:     // 1.2  // changed from 1.2 to 0.6 on 2013.06.10
-      fEtaCut          = 0.6;
+   case 1:  // 1.2  // changed from 1.2 to 0.6 on 2013.06.10
+      fEtaCut     = 0.6;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
-   case 2:     // 1.4
-      fEtaCut          = 1.4;
+   case 2:  // 1.4
+      fEtaCut     = 1.4;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
    case 3: // 0.8
-      fEtaCut          = 0.8;
+      fEtaCut     = 0.8;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
    case 4: // 0.75
-      fEtaCut          = 0.75;
+      fEtaCut     = 0.75;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
    case 5: // 0.5
-      fEtaCut          = 0.5;
+      fEtaCut     = 0.5;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
    case 6: // 5.
-      fEtaCut          = 5.;
+      fEtaCut     = 5.;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
    case 7:
-      fEtaCut          = 0.3;
+      fEtaCut     = 0.3;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
    // case 8: // 0.1 - 0.8
-   //    fEtaCut               = 0.9;
+   //    fEtaCut     = 0.9;
    //    fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-   //    fEtaCutMin            = 0.1;
+   //    fEtaCutMin     = 0.1;
    //    fLineCutZRSlopeMin = tan(2*atan(exp(-fEtaCutMin)));
    //    break;
    case 8: // 0.4
-      fEtaCut          = 0.4;
+      fEtaCut     = 0.4;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
    case 9: // 10
-      fEtaCut          = 10;
+      fEtaCut     = 10;
       fLineCutZRSlope = tan(2*atan(exp(-fEtaCut)));
-      fEtaCutMin               = -0.1;
+      fEtaCutMin     = -0.1;
       fLineCutZRSlopeMin = 0.;
       break;
    default:
@@ -3136,14 +3192,14 @@ Int_t AliConversionCuts::GetNumberOfContributorsVtx(AliVEvent *event){
    if(fESDEvent){
       if (fESDEvent->GetPrimaryVertex() != NULL){
          if(fESDEvent->GetPrimaryVertex()->GetNContributors()>0) {
-//         cout << "accepted global" << fESDEvent->GetEventNumberInFile() << " with NCont: " << fESDEvent->GetPrimaryVertex()->GetNContributors() << endl;
+//     cout << "accepted global" << fESDEvent->GetEventNumberInFile() << " with NCont: " << fESDEvent->GetPrimaryVertex()->GetNContributors() << endl;
             return fESDEvent->GetPrimaryVertex()->GetNContributors();
          }
       }
 
       if(fESDEvent->GetPrimaryVertexSPD() !=NULL){
          if(fESDEvent->GetPrimaryVertexSPD()->GetNContributors()>0) {
-//         cout << "accepted SPD" << fESDEvent->GetEventNumberInFile() << " with NCont: " << fESDEvent->GetPrimaryVertexSPD()->GetNContributors() << endl;
+//     cout << "accepted SPD" << fESDEvent->GetEventNumberInFile() << " with NCont: " << fESDEvent->GetPrimaryVertexSPD()->GetNContributors() << endl;
             return fESDEvent->GetPrimaryVertexSPD()->GetNContributors();
          }  else {
             AliWarning(Form("Number of contributors from bad vertex type:: %s",fESDEvent->GetPrimaryVertex()->GetName()));
@@ -3634,7 +3690,7 @@ Float_t AliConversionCuts::GetWeightForMeson(TString period, Int_t index, AliSta
                     fGeneratorNames[i].Contains("hijing")){
             kCaseGen = 3;
          } else if (fGeneratorNames[i].CompareTo("BOX") == 0){
-            kCaseGen = 4;
+             kCaseGen = 4;
          } else if (fGeneratorNames[i].CompareTo("PARAM") == 0){
             kCaseGen = 5;
          } else if (fGeneratorNames[i].CompareTo("NoCocktailGeneratorFound") == 0){
@@ -3646,6 +3702,12 @@ Float_t AliConversionCuts::GetWeightForMeson(TString period, Int_t index, AliSta
          } else if (fGeneratorNames[i].CompareTo("NoCocktailGeneratorFound_Hijing") == 0){
             kCaseGen = 3;
          }
+         TString periodName = ((AliV0ReaderV1*)AliAnalysisManager::GetAnalysisManager()
+                                                ->GetTask("V0ReaderV1"))->GetPeriodName();
+                                                
+         if (periodName.Contains("LHC13d2")){
+            kCaseGen = 3; 
+         }
       }
    }
    if (kCaseGen == 0) return 1;
@@ -3721,7 +3783,10 @@ Float_t AliConversionCuts::GetWeightForMeson(TString period, Int_t index, AliSta
    } else if (kCaseGen == 3 ){ // HIJING
       if ( PDGCode ==  111 && fDoReweightHistoMCPi0 && hReweightMCHistPi0!= 0x0){
          functionResultMC = hReweightMCHistPi0->Interpolate(mesonPt);
-      } 
+      }
+      if ( PDGCode ==  221 && fDoReweightHistoMCEta && hReweightMCHistEta!= 0x0){
+         functionResultMC = hReweightMCHistEta->Interpolate(mesonPt);
+      }
       if ( PDGCode ==  310 && fDoReweightHistoMCK0s && hReweightMCHistK0s!= 0x0){
          functionResultMC = hReweightMCHistK0s->Interpolate(mesonPt);
       }
@@ -3744,82 +3809,92 @@ Float_t AliConversionCuts::GetWeightForMeson(TString period, Int_t index, AliSta
       functionResultData = dNdyData / ( 2 * TMath::Pi())*(nData-1.)*(nData-2.) / (nData*tData*(nData*tData+mesonMass*(nData-2.)))  * TMath::Power(1.+(TMath::Sqrt(mesonPt*mesonPt+mesonMass*mesonMass)-mesonMass)/(nData*tData), -nData);
 //       cout << functionResultData << endl;
    } else {
-      Float_t a = 0.;
-      Float_t b = 0.;
-      Float_t c = 0.;
-      Float_t d = 0.;
-      Float_t e = 0.;
-      if ( PDGCode ==  111 ){
-         if (fModCentralityClass == 1 && fCentralityMin == 0 && fCentralityMax == 1 ){ // 0-5 % PbPb
-            a = 25.8747458223;
-            b = 5.8761820045;
-            c = -33.9928191673;
-            d = 3.0731850142;
-            e = 13.2500447620;
-         } else if (fModCentralityClass == 1 && fCentralityMin == 1 && fCentralityMax == 2){ // 5-10% PbPb
-            a = 21.7518148922;
-            b = 5.8441200081;
-            c = -17.1497051691;
-            d = 2.3799090842;
-            e = 5.4346404718;
-         } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 1){ // 0-10% PbPb
-            a = 22.9852133622;
-            b = 5.8602063916;
-            c = -17.0992478654;
-            d = 2.4426218039;
-            e = 5.1194526345;
-         } else if (fModCentralityClass == 0 && fCentralityMin == 1 && fCentralityMax == 2){ // 10-20% PbPb
-            a = 19.3237333776;
-            b = 5.8145906958;
-            c = -13.8316665424;
-            d = 2.3737630637;
-            e = 4.7690300693;
-         } else if (fModCentralityClass == 0 && fCentralityMin == 2 && fCentralityMax == 4){ // 20-40% PbPb
-            a = 11.2656032751;
-            b = 5.8003194354;
-            c = -13.3936105929;
-            d = 2.3371452334;
-            e = 4.4726244958;
-         } else if (fModCentralityClass == 0 && fCentralityMin == 4 && fCentralityMax == 6){ // 40-60% PbPb   
-            a = 4.1578154081;
-            b = 5.6450005163;
-            c = -8.4309375240;
-            d = 1.8918308704;
-            e = 2.9429194709;
-         } else if (fModCentralityClass == 0 && fCentralityMin == 6 && fCentralityMax == 8){ // 60-80% PbPb      
-            a = 1.0635443810;
-            b = 5.1337469970;
-            c = -8.5906997238;
-            d = 2.9794995997;
-            e = 3.9294980048;
-         }  else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 2){ // 0-20% PbPb      
-            a = 21.7018745556;
-            b = 5.9019352094;
-            c = -14.2295510326;
-            d = 2.2104490688;
-            e = 4.2969671500;
-         }  else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 4){ // 0-40% PbPb      
-            a = 16.8227412106;
-            b = 5.8660502207;
-            c = -12.0978551215;
-            d = 2.1695068981;
-            e = 3.5349621182;
-         }   else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 8){ // 0-80% PbPb      
-            a = 9.4675681080;
-            b = 5.8114944205;
-            c = -10.4901523616;
-            d = 2.0607982712;
-            e = 2.9262259130;
-         }   else if (fModCentralityClass == 0 && fCentralityMin == 4 && fCentralityMax == 8){ // 60-80% PbPb      
-            a = 2.5985551785;
-            b = 5.4118895738;
-            c = -8.2510958428;
-            d = 2.2551249190;
-            e = 3.0700919491;
-         }
-         
-         functionResultData = a*TMath::Power(mesonPt,-1*(b+c/(TMath::Power(mesonPt,d)+e)));
-      } 
+      if ( PDGCode ==  111 && fDoReweightHistoMCPi0 && fFitDataPi0!= 0x0){
+         functionResultData = fFitDataPi0->Eval(mesonPt);
+      }
+      if ( PDGCode ==  221 && fDoReweightHistoMCEta && fFitDataEta!= 0x0){
+         functionResultData = fFitDataEta->Eval(mesonPt);
+      }
+      if ( PDGCode ==  310 && fDoReweightHistoMCK0s && fFitDataK0s!= 0x0){
+         functionResultData = fFitDataK0s->Eval(mesonPt);
+      }
+      
+//       Float_t a = 0.;
+//       Float_t b = 0.;
+//       Float_t c = 0.;
+//       Float_t d = 0.;
+//       Float_t e = 0.;
+//       if ( PDGCode ==  111 ){
+//          if (fModCentralityClass == 1 && fCentralityMin == 0 && fCentralityMax == 1 ){ // 0-5 % PbPb
+//             a = 25.8747458223;
+//             b = 5.8761820045;
+//             c = -33.9928191673;
+//             d = 3.0731850142;
+//             e = 13.2500447620;
+//          } else if (fModCentralityClass == 1 && fCentralityMin == 1 && fCentralityMax == 2){ // 5-10% PbPb
+//             a = 21.7518148922;
+//             b = 5.8441200081;
+//             c = -17.1497051691;
+//             d = 2.3799090842;
+//             e = 5.4346404718;
+//          } else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 1){ // 0-10% PbPb
+//             a = 22.9852133622;
+//             b = 5.8602063916;
+//             c = -17.0992478654;
+//             d = 2.4426218039;
+//             e = 5.1194526345;
+//          } else if (fModCentralityClass == 0 && fCentralityMin == 1 && fCentralityMax == 2){ // 10-20% PbPb
+//             a = 19.3237333776;
+//             b = 5.8145906958;
+//             c = -13.8316665424;
+//             d = 2.3737630637;
+//             e = 4.7690300693;
+//          } else if (fModCentralityClass == 0 && fCentralityMin == 2 && fCentralityMax == 4){ // 20-40% PbPb
+//             a = 11.2656032751;
+//             b = 5.8003194354;
+//             c = -13.3936105929;
+//             d = 2.3371452334;
+//             e = 4.4726244958;
+//          } else if (fModCentralityClass == 0 && fCentralityMin == 4 && fCentralityMax == 6){ // 40-60% PbPb   
+//             a = 4.1578154081;
+//             b = 5.6450005163;
+//             c = -8.4309375240;
+//             d = 1.8918308704;
+//             e = 2.9429194709;
+//          } else if (fModCentralityClass == 0 && fCentralityMin == 6 && fCentralityMax == 8){ // 60-80% PbPb      
+//             a = 1.0635443810;
+//             b = 5.1337469970;
+//             c = -8.5906997238;
+//             d = 2.9794995997;
+//             e = 3.9294980048;
+//          }  else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 2){ // 0-20% PbPb      
+//             a = 21.7018745556;
+//             b = 5.9019352094;
+//             c = -14.2295510326;
+//             d = 2.2104490688;
+//             e = 4.2969671500;
+//          }  else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 4){ // 0-40% PbPb      
+//             a = 16.8227412106;
+//             b = 5.8660502207;
+//             c = -12.0978551215;
+//             d = 2.1695068981;
+//             e = 3.5349621182;
+//          }   else if (fModCentralityClass == 0 && fCentralityMin == 0 && fCentralityMax == 8){ // 0-80% PbPb      
+//             a = 9.4675681080;
+//             b = 5.8114944205;
+//             c = -10.4901523616;
+//             d = 2.0607982712;
+//             e = 2.9262259130;
+//          }   else if (fModCentralityClass == 0 && fCentralityMin == 4 && fCentralityMax == 8){ // 60-80% PbPb      
+//             a = 2.5985551785;
+//             b = 5.4118895738;
+//             c = -8.2510958428;
+//             d = 2.2551249190;
+//             e = 3.0700919491;
+//          }
+//          
+//          functionResultData = a*TMath::Power(mesonPt,-1*(b+c/(TMath::Power(mesonPt,d)+e)));
+//       } 
       
    }
    
@@ -3849,7 +3924,7 @@ AliConversionCuts* AliConversionCuts::GetStandardCuts2010PbPb(){
     //Create and return standard 2010 PbPb cuts
     AliConversionCuts *cuts=new AliConversionCuts("StandardCuts2010PbPb","StandardCuts2010PbPb");
     if(!cuts->InitializeCutsFromCutString("100000204209297002322000000")){
-       cout<<"Warning: Initialization of Standardcuts2010PbPb failed"<<endl;}
+   cout<<"Warning: Initialization of Standardcuts2010PbPb failed"<<endl;}
     return cuts;
 }
 
@@ -3858,7 +3933,7 @@ AliConversionCuts* AliConversionCuts::GetStandardCuts2010pp(){
     //Create and return standard 2010 PbPb cuts
     AliConversionCuts *cuts=new AliConversionCuts("StandardCuts2010pp","StandardCuts2010pp");
     if(!cuts->InitializeCutsFromCutString("000001100209366300380000000")){
-       cout<<"Warning: Initialization of Standardcuts2010pp failed"<<endl;}
+   cout<<"Warning: Initialization of Standardcuts2010pp failed"<<endl;}
     return cuts;
 }
 ///________________________________________________________________________
index d3d602404600191fa8b6f1870b430bef729e58f2..77971fe207d9d0f2664ce5d4ebe9006eaa96e2e2 100644 (file)
@@ -2,7 +2,7 @@
 #define ALICONVERSIONCUTS_H
 
 // Class handling all kinds of selection cuts for Gamma Conversion analysis
-// Authors: Svein Lindal, Daniel Lohner                                                                                                *
+// Authors: Svein Lindal, Daniel Lohner                                    *
 
 #include "AliAODpidUtil.h"
 #include "AliConversionPhotonBase.h"
@@ -33,39 +33,39 @@ class AliAODMCParticle;
 using namespace std;
 
 class AliConversionCuts : public AliAnalysisCuts {
-       
+   
  public: 
    
 
   enum cutIds {
-       kisHeavyIon,                  
-       kCentralityMin,               
-       kCentralityMax,               
-       kselectV0AND,                 
-       kmultiplicityMethod,             
-       kremovePileUp,                
-       kExtraSignals,  
-       kv0FinderType,                
-       ketaCut,                                     
-       kRCut,                     
-       ksinglePtCut,                 
-       kclsTPCCut,                   
-       kededxSigmaCut,               
-       kpidedxSigmaCut,              
-       kpiMomdedxSigmaCut,        
-       kpiMaxMomdedxSigmaCut,        
-       kLowPRejectionSigmaCut,       
-       kTOFelectronPID,              
-       kQtMaxCut,                    
-       kchi2GammaCut,                
-       kPsiPair, 
-       kdoPhotonAsymmetryCut,
-       kCosPAngle,
-       kElecShare,
-       kToCloseV0s,
+   kisHeavyIon,                  
+   kCentralityMin,               
+   kCentralityMax,               
+   kselectV0AND,                 
+   kmultiplicityMethod,             
+   kremovePileUp,                
+   kExtraSignals, 
+   kv0FinderType,                
+   ketaCut,                                     
+   kRCut,                     
+   ksinglePtCut,                 
+   kclsTPCCut,                   
+   kededxSigmaCut,               
+   kpidedxSigmaCut,              
+   kpiMomdedxSigmaCut,        
+   kpiMaxMomdedxSigmaCut,        
+   kLowPRejectionSigmaCut,       
+   kTOFelectronPID,              
+   kQtMaxCut,                    
+   kchi2GammaCut,                
+   kPsiPair, 
+   kdoPhotonAsymmetryCut,
+   kCosPAngle,
+   kElecShare,
+   kToCloseV0s,
         kDcaRPrimVtx,
         kDcaZPrimVtx,
-       kNCuts
+   kNCuts
   };
 
   enum photonCuts {
@@ -194,8 +194,10 @@ class AliConversionCuts : public AliAnalysisCuts {
   Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0);
   Int_t IsParticleFromBGEvent(Int_t index, AliStack *MCStack, AliVEvent *InputEvent = 0x0);
   void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *MCEvent);
-  void SetUseReweightingWithHistogramFromFile( Bool_t pi0reweight=kTRUE, Bool_t etareweight=kFALSE, Bool_t k0sreweight=kFALSE,TString path="$ALICE_ROOT/PWGGA/GammaConv/MCSpectraInput.root", 
-                                               TString histoNamePi0 = "Hijing_PbPb_2760GeV_0005", TString histoNameEta = "", TString histoNameK0s = "") {
+  void SetUseReweightingWithHistogramFromFile( Bool_t pi0reweight=kTRUE, Bool_t etareweight=kFALSE, Bool_t k0sreweight=kFALSE, TString path="$ALICE_ROOT/PWGGA/GammaConv/MCSpectraInput.root", 
+                                               TString histoNamePi0 = "", TString histoNameEta = "", TString histoNameK0s = "",
+                                               TString fitNamePi0 = "", TString fitNameEta = "", TString fitNameK0s ="" ) {
+     AliInfo(Form("enabled reweighting for: pi0 : %i, eta: %i, K0s: %i",pi0reweight, etareweight, k0sreweight));
      fDoReweightHistoMCPi0 = pi0reweight; 
      fDoReweightHistoMCEta = etareweight; 
      fDoReweightHistoMCK0s = k0sreweight; 
@@ -203,6 +205,10 @@ class AliConversionCuts : public AliAnalysisCuts {
      fNameHistoReweightingPi0 =histoNamePi0;
      fNameHistoReweightingEta =histoNameEta;
      fNameHistoReweightingK0s =histoNameK0s; 
+     fNameFitDataPi0 =fitNamePi0;
+     fNameFitDataEta =fitNameEta;
+     fNameFitDataK0s =fitNameK0s; 
+     
   }
   void  LoadReweightingHistosMCFromFile ();
   // Event Cuts
@@ -324,7 +330,7 @@ class AliConversionCuts : public AliAnalysisCuts {
   Double_t fMinPPhotonAsymmetryCut; // Min Momentum for Asymmetry Cut
   Double_t fMinPhotonAsymmetry;  // Asymmetry Cut
   Int_t  fIsHeavyIon;               // flag for heavy ion
-  Int_t fDetectorCentrality;   // centrality detecotor V0M or CL1
+  Int_t fDetectorCentrality;  // centrality detecotor V0M or CL1
   Int_t fModCentralityClass; // allows to select smaller centrality classes
   Double_t fMaxVertexZ;    // max z offset of vertex
   Int_t fCentralityMin;  // centrality selection lower bin value
@@ -367,6 +373,9 @@ class AliConversionCuts : public AliAnalysisCuts {
   TString fNameHistoReweightingPi0; //Histogram name for reweighting Pi0
   TString fNameHistoReweightingEta; //Histogram name for reweighting Eta
   TString fNameHistoReweightingK0s; //Histogram name for reweighting K0s
+  TString fNameFitDataPi0; //Fit name for fit to spectrum of pi0s in Data
+  TString fNameFitDataEta; //Fit name for fit to spectrum of etas in Data
+  TString fNameFitDataK0s; //Fit name for fit to spectrum of k0s in Data
   // Histograms
   TH1F *hdEdxCuts;  // bookkeeping for dEdx cuts
   TH2F *hTPCdEdxbefore; // TPC dEdx before cuts
@@ -393,12 +402,15 @@ class AliConversionCuts : public AliAnalysisCuts {
   TH1D *hReweightMCHistPi0; //histogram input for reweighting Pi0
   TH1D *hReweightMCHistEta; //histogram input for reweighting Eta
   TH1D *hReweightMCHistK0s; //histogram input for reweighting K0s
+  TF1  *fFitDataPi0; //fit to pi0 spectrum in Data
+  TF1  *fFitDataEta; //fit to eta spectrum in Data
+  TF1  *fFitDataK0s; //fit to K0s spectrum in Data
   Bool_t fPreSelCut; // Flag for preselection cut used in V0Reader
   Bool_t fTriggerSelectedManually; // Flag for manual trigger selection
   TString fSpecialTriggerName; // Name of the Special Triggers
 private:
 
-  ClassDef(AliConversionCuts,4)
+  ClassDef(AliConversionCuts,5)
 };
 
 
index 5a0deb828d383fa3b9e2e54a5d33c0501da5db6f..0990bd2c2d62607cb0a51975c9e98578faa451f9 100644 (file)
@@ -1180,6 +1180,14 @@ Bool_t AliDalitzElectronCuts::SetITSClusterCut(Int_t clsITSCut){
                fesdTrackCuts->SetMinNClustersITS(3);\r
                // 3 hits in total in the ITS. At least 1 hit in any layer of SPD\r
                break;\r
+        case 5: fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);\r
+                fesdTrackCuts->SetMinNClustersITS(4);\r
+                // 4 hits in total in the ITS. At least 1 hit in any layer of SPD\r
+                break;\r
+        case 6: fesdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);\r
+                fesdTrackCuts->SetMinNClustersITS(5);\r
+                // 5 hits in total in the ITS. At least 1 hit in any layer of SPD\r
+                break;\r
        default:\r
                cout<<"Warning: clsITSCut not defined "<<clsITSCut<<endl;\r
                return kFALSE;\r
@@ -1282,6 +1290,9 @@ Bool_t AliDalitzElectronCuts::SetEtaCut(Int_t etaCut)
                fEtaCut = 0.5; //changed from 0.3 to 0.5 2013.06.10\r
                fDoEtaCut = kTRUE;\r
                break;\r
+       case 8: fEtaCut = 0.4;\r
+               fDoEtaCut = kTRUE;\r
+               break;\r
        default:\r
                cout<<"Warning: EtaCut not defined "<<etaCut<<endl;\r
                return kFALSE;\r
index bf1c513c922eda8acfbc01193ddd4783d2f57bab..9248325be302a07fc33fae0799ccd1bdf3cd29b9 100644 (file)
@@ -222,35 +222,36 @@ void AddTask_GammaConvV1_PbPb(  Int_t trainConfig = 1,  //change different set o
 
 
    for(Int_t i = 0; i<numberOfCuts; i++){
+      analysisCuts[i] = new AliConversionCuts();
+      
       if (trainConfig == 1 ){
-         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0005V0M", "", "");
-         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0510V0M", "", ""); 
-         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010V0M", "", "");
-         if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020V0M", "", "");
+         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0005V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
+         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0510V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0510V0M"); 
+         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+         if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
       } else if (trainConfig == 2){ 
-        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040V0M", "", "");
-        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4060V0M", "", "");
-        if (i==2  && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_6080V0M", "", "");
-        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080V0M", "", "");
+        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
+        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4060V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
+        if (i==2  && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_6080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
+        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
       } else if (trainConfig == 3){
-        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0020V0M", "", "");
-        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0040V0M", "", "");
-        if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4080V0M", "", "");
-        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080V0M", "", "");
+        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0020V0M");
+        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0040V0M");
+        if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4080V0M");
+        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
       } else if (trainConfig == 4){
-         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010V0M", "", "");
-         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020V0M", "", "");
-         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040V0M", "", "");
+         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
+         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
       } else if (trainConfig == 5 ){
-         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0005V0M", "", "");
-         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0510V0M", "", ""); 
-         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010V0M", "", "");
-         if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020V0M", "", "");
+         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0005V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
+         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0510V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0510V0M"); 
+         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+         if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
       } else if (trainConfig == 6){ 
-        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "");
-        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060V0M", "", "");
-        if (i==2  && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080V0M", "", "");
-        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080V0M", "", "");   
+        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
+        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
+        if (i==2  && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
       } else if (trainConfig == 9){
          if (doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_PbPb_2760GeV_0005", "", "");
          if (i == 1) analysisCuts[i]->SelectSpecialTrigger(AliVEvent::kMB, "AliVEvent::kMB" );
@@ -258,55 +259,54 @@ void AddTask_GammaConvV1_PbPb(  Int_t trainConfig = 1,  //change different set o
          if (i == 3) analysisCuts[i]->SelectSpecialTrigger(AliVEvent::kCentral,"AliVEvent::kCentral" );
          
       } else if (trainConfig == 10){
-        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0020V0M", "", "");
-        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0040V0M", "", "");
-        if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4080V0M", "", "");
-        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080V0M", "", "");
+        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0020V0M");
+        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0040V0M");
+        if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_4080V0M");
+        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
       } else if (trainConfig == 11){
-         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010V0M", "", "");
-         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020V0M", "", "");
-         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "");
+         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M);
+         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040V0M", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
       } else if (trainConfig == 12 ){
-         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0005TPC", "", "");
-         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0510TPC", "", ""); 
-         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010TPC", "", "");
-         if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020TPC", "", "");
+         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0005TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
+         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0510TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0510V0M");
+         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+         if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
       } else if (trainConfig == 13){ 
-        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040TPC", "", "");
-        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4060TPC", "", "");
-        if (i==2  && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_6080TPC", "", "");
-        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080TPC", "", "");
+        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
+        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4060TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
+        if (i==2  && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_6080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
+        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
       } else if (trainConfig == 14){
-        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0020TPC", "", "");
-        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0040TPC", "", "");
-        if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4080TPC", "", "");
-        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080TPC", "", "");
+        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0020V0M");
+        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0040V0M");
+        if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_4080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_4080V0M");
+        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
       } else if (trainConfig == 15){
-         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010TPC", "", "");
-         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020TPC", "", "");
-         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040TPC", "", "");
+         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_0010TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_1020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
+         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_PbPb_2760GeV_2040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
       } else if (trainConfig == 16 ){
-         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0005TPC", "", "");
-         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0510TPC", "", ""); 
-         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010TPC", "", "");
-         if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020TPC", "", "");
+         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0005TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0005V0M");
+         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0510TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0510V0M");
+         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+         if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
       } else if (trainConfig == 17){ 
-        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040TPC", "", "");
-        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060TPC", "", "");
-        if (i==2  && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080TPC", "", "");
-        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080TPC", "", "");   
+        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
+        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4060TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_4060V0M");
+        if (i==2  && doWeighting) analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_6080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_6080V0M");
+        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");   
       } else if (trainConfig == 20){
-        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0020TPC", "", "");
-        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0040TPC", "", "");
-        if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4080TPC", "", "");
-        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080TPC", "", "");
+        if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0020V0M");
+        if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0040V0M");
+        if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_4080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_4080V0M");
+        if (i == 3 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0080TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0080V0M");
       } else if (trainConfig == 21){
-         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010TPC", "", "");
-         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020TPC", "", "");
-         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040TPC", "", "");
+         if (i == 0 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_0010TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_0010V0M");
+         if (i == 1 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE,fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_1020TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_1020V0M");
+         if (i == 2 && doWeighting)  analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kFALSE, kTRUE, fileNameInputForWeighting, "Pi0_Hijing_LHC13d2_addSig_PbPb_2760GeV_2040TPC", "", "","Pi0_Fit_Data_PbPb_2760GeV_2040V0M");
       }
       
-      analysisCuts[i] = new AliConversionCuts();
       analysisCuts[i]->InitializeCutsFromCutString(cutarray[i].Data());
       ConvCutList->Add(analysisCuts[i]);
 
index b474d0e40617ffb47691a3b9fb8e70109fd58f11..764453ac1717239b7d7b1e68f6cbd8e061dab97c 100644 (file)
Binary files a/PWGGA/GammaConv/macros/MCSpectraInput.root and b/PWGGA/GammaConv/macros/MCSpectraInput.root differ