]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/GammaConv/AliAnalysisTaskGammaConvDalitzV1.h
Modified EveBase to compile with zmq<3.0. Corrected ThreadedSocket implementation.
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnalysisTaskGammaConvDalitzV1.h
index 66906550db6e42a82347086e3b8facb3e044d3fb..3ad7a5aa6e2ca099308e2e8102aba24eed2e5074 100644 (file)
@@ -12,6 +12,7 @@
 #include "AliDalitzElectronSelector.h"
 #include "AliConversionMesonCuts.h"
 #include "AliGammaConversionAODBGHandler.h"
+#include "TProfile2D.h"
 
 class AliESDInputHandler;
 class AliMCEventHandler;
@@ -33,24 +34,37 @@ class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
 
        virtual void UserExec(Option_t *);
        virtual void UserCreateOutputObjects();
+       virtual Bool_t Notify();
        virtual void Terminate(const Option_t *);
 
 
 
          
-         void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
-         void SetIsHeavyIon(Bool_t flag){fIsHeavyIon = flag;}
-         void SetConversionCutList(Int_t nCuts, TList *CutArray){
-                        fnCuts= nCuts;
-                        fCutGammaArray = CutArray;
-                }
-         void SetElectronCutList(TList *CutArray){
-                        fCutElectronArray = CutArray;
-                }
-         void SetMesonCutList(TList *CutArray){
-                        fCutMesonArray = CutArray;
-                }
-               
+       void SetMoveParticleAccordingToVertex(Bool_t flag){fMoveParticleAccordingToVertex = flag;}
+         
+       void SetIsHeavyIon(Int_t flag){
+               if (flag == 1 || flag ==2 ){
+                       fIsHeavyIon = 1;    
+               } else {
+                       fIsHeavyIon = 0;    
+               }
+       }
+       
+       void SetIsMC(Bool_t isMC){fIsMC=isMC;}
+       void SetConversionCutList(Int_t nCuts, TList *CutArray){
+               fnCuts= nCuts;
+               fCutGammaArray = CutArray;
+       }
+       void SetElectronCutList(TList *CutArray){
+               fCutElectronArray = CutArray;
+       }
+       void SetMesonCutList(TList *CutArray){
+               fCutMesonArray = CutArray;
+       }
+       void SetDoChicAnalysis(Bool_t flag){ fDoChicAnalysis = flag; }
+       void SetDoMesonQA(Bool_t flag){ fDoMesonQA = flag; }
+       void SetProductionVertextoVGamma(Bool_t flag) { fSetProductionVertextoVGamma = flag; }
+  
 
        private:
 
@@ -60,13 +74,16 @@ class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
                 void ProcessTrueMesonCandidates(AliAODConversionMother *Pi0Candidate, AliAODConversionPhoton *TrueGammaCandidate, AliAODConversionPhoton *TrueVirtualGammaCandidate);
                 void MoveParticleAccordingToVertex(AliAODConversionPhoton* particle,const AliGammaConversionAODBGHandler::GammaConversionVertex *vertex);
                void ProcessElectronCandidates();
+               void ProcessVirtualGammasCandidates();
                void ProcessMCParticles();
                void CountESDTracks();
                 void CalculatePi0DalitzCandidates();
                 void CalculateBackground();
                 void UpdateEventByEventData();
+               void FillElectronQAHistos(AliAODConversionMother *Pi0Candidate,AliAODConversionPhoton *Vgamma) const;
                 Double_t GetPsiPair( const AliESDtrack *trackPos, const AliESDtrack *trackNeg ) const;
-
+               Bool_t IsDalitz(TParticle *fMCMother) const;
+                Bool_t IsPi0DalitzDaughter( Int_t label ) const;
                
                
 
@@ -79,8 +96,10 @@ class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
     TList **fCutFolder;
     TList **fESDList;
     TList **fBackList;
+    TList **fMotherList;
     TList **fTrueList;
     TList **fMCList;
+    TList **fQAFolder;
     TList *fOutputContainer;
     TClonesArray *fReaderGammas;
     vector<Int_t> fSelectorElectronIndex;
@@ -95,26 +114,90 @@ class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
     TList **fGammasPool;
     AliConversionCuts *fConversionCuts;
     TH1F **hESDConvGammaPt;
+    TH1F **hESDConvGammaEta;
+    TH2F **hESDConvGammaZR;
     TH1F **hESDDalitzElectronPt;
     TH1F **hESDDalitzPositronPt;
+    TH1F **hESDDalitzElectronPhi;
+    TH1F **hESDDalitzPositronPhi;
+    TH1F **hESDDalitzElectronAfterPt;
+    TH1F **hESDDalitzPositronAfterPt;
+    TH1F **hESDDalitzElectronAfterEta;
+    TH1F **hESDDalitzPositronAfterEta;
+    TH1F **hESDDalitzElectronAfterPhi;
+    TH1F **hESDDalitzPositronAfterPhi;
+    TH1F **hESDDalitzElectronAfterNClsITS;
+    TH1F **hESDDalitzPositronAfterNClsITS;
+    TH2F **hESDDalitzElectronAfterNFindClsTPC;
+    TH2F **hESDDalitzPositronAfterNFindClsTPC;
+    TH2F **hESDDalitzElectronAfterNClsTPC;
+    TH2F **hESDDalitzPositronAfterNClsTPC;
+    TH2F **hESDDalitzElectronAfterNCrossedRowsTPC;
+    TH2F **hESDDalitzPositronAfterNCrossedRowsTPC;
+    TH2F **hESDDalitzPosEleAfterDCAxy;
+    TH2F **hESDDalitzPosEleAfterDCAz;
+    TH2F **hESDDalitzElectronAfterTPCdEdxVsP;
+    TH2F **hESDDalitzPositronAfterTPCdEdxVsP;
+    TH2F **hESDDalitzElectronAfterTPCdEdxSignalVsP;
+    TH2F **hESDDalitzPositronAfterTPCdEdxSignalVsP;
+    TH2F **hESDDalitzElectronAfterTPCdEdxVsEta;
+    TH2F **hESDDalitzPositronAfterTPCdEdxVsEta;
+    TH2F **hESDDalitzElectronAfterTPCdEdxVsPhi;
+    TH2F **hESDDalitzPositronAfterTPCdEdxVsPhi;
+    TH1F **hESDMotherPhi;
     TH2F **hESDEposEnegPsiPairDPhi;
     TH2F **hESDEposEnegInvMassPt;
+    TH2F **hESDEposEnegAfterMassCutInvMassPi0Pt;
     TH2F **hESDEposEnegLikeSignBackInvMassPt;
     TH2F **hESDMotherInvMassPt;
     TH2F **hESDPi0MotherInvMassPt;
     TH2F **hESDPi0MotherDiffInvMassPt;
+    TH2F **hESDPi0MotherDiffLimInvMassPt;
     THnSparseF **sESDMotherInvMassPtZM;
     TH2F **hESDMotherBackInvMassPt;
     THnSparseF **sESDMotherBackInvMassPtZM;
+    TH1F **hMCAllGammaPt;
+    TH1F **hMCConvGammaPt;
+    TH1F **hMCConvGammaRSPt;
+    TH1F **hMCAllPositronsPt;
+    TH1F **hMCAllElectronsPt;
+    TH1F **hMCConvGammaEta;
+    TH1F **hMCAllPositronsEta;
+    TH1F **hMCAllElectronsEta;
+    TH1F **hMCPi0DalitzGammaPt;
+    TH1F **hMCPi0DalitzElectronPt;
+    TH1F **hMCPi0DalitzPositronPt;
     TH1F **hMCPi0Pt;
     TH1F **hMCPi0GGPt;
     TH1F **hMCEtaPt;
     TH1F **hMCEtaGGPt;
     TH1F **hMCPi0InAccPt;
     TH1F **hMCEtaInAccPt;
+    TH1F **hMCChiCPt;
+    TH1F **hMCChiCInAccPt;
+    TH2F **hMCPi0EposEnegInvMassPt;
+    TH2F **hMCEtaEposEnegInvMassPt;
+    TH2F **hESDEposEnegTruePi0DalitzInvMassPt;
+    TH1F **hESDEposEnegTruePrimPi0DalitzInvMass;
+    TH2F **hESDEposEnegTruePi0DalitzPsiPairDPhi;
+    TH2F **hESDEposEnegTrueEtaDalitzInvMassPt;
+    TH1F **hESDEposEnegTruePrimEtaDalitzInvMass;
+    TH2F **hESDEposEnegTrueEtaDalitzPsiPairDPhi;
+    TH2F **hESDEposEnegTruePhotonInvMassPt;
+    TH2F **hESDEposEnegTrueInvMassPt;
+    TH2F **hESDEposEnegTruePhotonPsiPairDPhi;
+    TH2F **hESDEposEnegTruePhotonPsiPairDPhiPtCut;
+    TH2F **hESDEposEnegTrueJPsiInvMassPt;
+    TH2F **hESDTrueMotherChiCInvMassPt;
+    TH2F **hESDTrueMotherChiCDiffInvMassPt;
     TH2F **hESDTrueMotherInvMassPt;
+    TH2F **hESDTrueMotherDalitzInvMassPt;
     TH2F **hESDTrueMotherPi0GGInvMassPt;
+    TH2F **hESDTruePrimaryMotherPi0GGInvMassPt;
+    TH2F **hESDTrueSecondaryMotherPi0GGInvMassPt;
     TH2F **hESDTruePrimaryMotherInvMassMCPt;
+    TH2F **hESDTruePrimaryMotherInvMassPt;
+    TH2F **hESDTruePrimaryMotherW0WeightingInvMassPt;
     TH2F **hESDTruePrimaryPi0DalitzESDPtMCPt;
     TH2F **hESDTrueSecondaryMotherInvMassPt;
     TH2F **hESDTrueSecondaryMotherFromK0sInvMassPt;
@@ -122,26 +205,56 @@ class AliAnalysisTaskGammaConvDalitzV1: public AliAnalysisTaskSE
     TH2F **hESDTrueBckContInvMassPt;
     TH2F **hESDTrueMotherGGInvMassPt;
     TH1F **hESDTrueConvGammaPt;
+    TH1F **hESDTruePositronPt;
+    TH1F **hESDTrueElectronPt;
+    TH1F **hESDTrueSecConvGammaPt;
+    TH1F **hESDTrueSecPositronPt;
+    TH1F **hESDTrueSecElectronPt;
+    TH1F **hESDTruePi0DalitzConvGammaPt;
+    TH1F **hESDTruePi0DalitzPositronPt;
+    TH1F **hESDTruePi0DalitzElectronPt;
+    TH1F **hESDTruePi0DalitzSecConvGammaPt;
+    TH1F **hESDTruePi0DalitzSecPositronPt;
+    TH1F **hESDTruePi0DalitzSecElectronPt;
+      //if(fDoMesonAnalysis){
+
+
     TH1I **hNEvents;
     TH1I **hNGoodESDTracks;
+    TH2F **hNGoodESDTracksVsNGoodGammas;
+    TH2F **hNGoodESDTracksVsNGoodVGammas;
+    TH1I **hNV0Tracks;
+    TProfile **hEtaShift;
         
     TRandom3 fRandom;
     Double_t *fUnsmearedPx;
     Double_t *fUnsmearedPy;
     Double_t *fUnsmearedPz;
     Double_t *fUnsmearedE;
+    Double_t *fUnsmearedVPx;
+    Double_t *fUnsmearedVPy;
+    Double_t *fUnsmearedVPz;
+    Double_t *fUnsmearedVE;
+    
+    
     Int_t fnCuts;
     Int_t fiCut;
     Int_t fNumberOfESDTracks;
+    Int_t fNumberOfESDTrackskBoth;
     Bool_t fMoveParticleAccordingToVertex;
     Bool_t fIsHeavyIon;
     Bool_t fDoMesonAnalysis;
-   
+    Bool_t fDoChicAnalysis;
+    Bool_t fDoMesonQA;
+    Bool_t fSetProductionVertextoVGamma;
+    Bool_t fIsFromMBHeader;
+    Bool_t fIsMC;
+
        private:
                AliAnalysisTaskGammaConvDalitzV1( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
                AliAnalysisTaskGammaConvDalitzV1& operator=( const AliAnalysisTaskGammaConvDalitzV1& ); // Not implemented
 
-               ClassDef( AliAnalysisTaskGammaConvDalitzV1, 2 );
+               ClassDef( AliAnalysisTaskGammaConvDalitzV1, 3 );
 };
 
 #endif // ALIANALYSISTASKGAMMACONVDALITZV1_H