]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskEMCalHFEpA.h
index bc213db0caaba3007f50a65cd342e9d191b2665e..069df55ae882acc11ddb9186696beee98af73c82 100644 (file)
@@ -9,7 +9,7 @@
        //      Task for Heavy-flavour electron analysis in pPb collisions    //
        //      (+ Electron-Hadron Jetlike Azimuthal Correlation)             //
        //                                                                                                                                        //
-       //              version: September 12th, 2013.                                                                                                            //
+       //              version: September 16, 2014.                                                                  //
        //                                                                    //
        //          Authors                                                                               //
        //              Elienos Pereira de Oliveira Filho (epereira@cern.ch)          //
@@ -36,6 +36,32 @@ class AliSelectNonHFE;
 class AliEventPoolManager;
 class AliEventPool;
 class TObjArray;
+       //Lucile
+class AliCaloTrackAODReader;
+class AliCaloTrackReader;
+       //exotic
+class AliEMCALRecoUtils;
+class AliAODReader;
+class AliCalorimeterUtils;
+
+       // --- ROOT system ---
+#include <TObject.h> 
+#include <TString.h>
+#include <TObjArray.h>
+class TArrayF;  
+#include <TH2I.h>
+#include <TGeoMatrix.h>
+
+       //--- ANALYSIS system ---
+class AliVEvent;
+class AliVTrack;
+class AliAODPWG4Particle;
+class AliAODCaloCluster;
+class AliVCaloCells;
+class AliPHOSGeoUtils;
+class AliEMCALGeometry;
+#include "AliEMCALRecoUtils.h"
+
 
        //______________________________________________________________________
        //Library
@@ -58,6 +84,7 @@ public:
        virtual void   Terminate(Option_t *);
        
                //Setters
+       void SetAssHadronPtRange(Double_t AssHadronPtMin, Double_t AssHadronPtMax) {fAssHadronPtMin = AssHadronPtMin; fAssHadronPtMax = AssHadronPtMax; };
        void SetHFECuts(AliHFEcuts * const cuts) {fCuts = cuts;};
        void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) {fRejectKinkMother = rejectKinkMother;};
        void SetCorrelationAnalysis(Bool_t CorrelationFlag=kTRUE) {fCorrelationFlag = CorrelationFlag;};
@@ -79,16 +106,30 @@ public:
        void SetNonHFEangleCut(Double_t AngleCut) { fAngleCut = AngleCut; fAngleCutFlag = kTRUE;};
        void SetNonHFEchi2Cut(Double_t Chi2Cut) { fChi2Cut = Chi2Cut; fChi2CutFlag = kTRUE;};
        void SetNonHFEdcaCut(Double_t DCAcut) { fDCAcut = DCAcut; fDCAcutFlag = kTRUE;};
+       
+       //DCA cut main particle
+       void SetdcaCut(Double_t DCAcutr, Double_t DCAcutz) { fDCAcutr = DCAcutr; fDCAcutz = DCAcutz;};
+       
        void SetUseEMCal() { fUseEMCal=kTRUE;};
+       void SetUseTrigger() { fUseTrigger=kTRUE;};
+       void SetUseTender() { fUseTender=kTRUE;};
        void SetUseShowerShapeCut(Bool_t UseShowerShapeCut=kFALSE) { fUseShowerShapeCut=UseShowerShapeCut;};
        void SetBackground(Bool_t FillBackground=kFALSE) { fFillBackground=FillBackground;};
+       void SetEoverPnsigma(Bool_t EoverPnsigma=kFALSE) { fEoverPnsigma=EoverPnsigma;};
        void SetEMCalTriggerEG1() { fEMCEG1=kTRUE; };
        void SetEMCalTriggerEG2() { fEMCEG2=kTRUE; };
        void SetCentralityEstimator(Int_t Estimator) { fEstimator=Estimator; }; //0 = V0A, 1 = Other
        void SetAdditionalCuts(Double_t PtMinAsso, Int_t TpcNclsAsso) {fPtMinAsso = PtMinAsso; fTpcNclsAsso = TpcNclsAsso;};
+       void SetSPDCutForHadrons() {fAssocWithSPD = kTRUE;};
        
                //Getters
        AliHFEpid *GetPID() const {return fPID;};
+               //bad channel
+               //AliEMCALGeometry * GetEMCALGeometry()              const { return fEMCALGeo; }
+               //AliCalorimeterUtils * GetCaloUtils()               const { return fCaloUtils; }
+       /*AliCalorimeterUtils * GetCaloUtils()                                { if(!fCaloUtils) fCaloUtils = new AliCalorimeterUtils(); 
+               return fCaloUtils      ; }*/
+
                //______________________________________________________________________
        
                //______________________________________________________________________
@@ -106,13 +147,21 @@ private:
        void DiHadronCorrelation(AliVTrack *track, Int_t trackIndex);
                //Find Mothers (Finde HFE and NonHFE from MC information)
        Bool_t FindMother(Int_t mcIndex);
+       Bool_t ContainsBadChannel(TString calorimeter,UShort_t* cellList, Int_t nCells);
+       TArrayI GetTriggerPatches(Bool_t IsEventEMCALL0, Bool_t IsEventEMCALL1);
+       Double_t CalculateWeight(Int_t pdg_particle, Double_t x);
+       Double_t SetEoverPCutPtDependentMC(Double_t pt);
        
                //Flags for specifics analysis
        Bool_t                          fCorrelationFlag;
        Bool_t                          fIsMC;
        Bool_t                          fUseEMCal;
+       Bool_t                          fUseTrigger;
+       Bool_t                          fUseTender;
        Bool_t                          fUseShowerShapeCut;
        Bool_t                          fFillBackground;
+       Bool_t                          fEoverPnsigma;
+       Bool_t                          fAssocWithSPD;
        
        
        Bool_t                          fEMCEG1;
@@ -157,8 +206,14 @@ private:
        
                //Histograms
        TH1F                            *fNevent;
+       TH1F                            *fNevent2;
        TH1F                            *fPtElec_Inc;
        
+       TH1F                            *fPtPrim;
+       TH1F                            *fPtSec;
+       TH1F                            *fPtPrim2;
+       TH1F                            *fPtSec2;
+       
        
        TH1F                            *fCharge_n;
        TH1F                            *fCharge_p;
@@ -170,38 +225,98 @@ private:
        
        TH1F                            *fPtElec_ULS;
        TH1F                            *fPtElec_LS;
+       
+       TH1F                            *fPtElec_ULS_NoPid;
+       TH1F                            *fPtElec_LS_NoPid;
+       
+       TH1F                            *fPtElec_ULS_MC;
+       TH1F                            *fPtElec_ULS_MC_weight;
+       
        TH1F                            *fPtElec_ULS2;
        TH1F                            *fPtElec_LS2;
        
+               //mc closure
+       TH1F                            *fPtElec_ULS_mc_closure;
+       TH1F                            *fPtElec_LS_mc_closure;
+       TH1F                            *fPtElec_ULS2_mc_closure;
+       TH1F                            *fPtElec_LS2_mc_closure;
+       
+       
+       
+       TH1F                            *fPtElec_ULS_weight;
+       TH1F                            *fPtElec_LS_weight;
+       TH1F                            *fPtElec_ULS2_weight;
+       TH1F                            *fPtElec_LS2_weight;
+       
                //PID Histograms
-       TH1F                            *fpid;          
        
+       TH2F                            *fTOF01;
+       TH2F                            *fTOF02;
+       TH2F                            *fTOF03;
+       TH1F                            *fpid;  
+       TH2F                            *fEoverP_pt_true_electrons;
+       TH2F                            *fEoverP_pt_true_hadrons;
+       TH2F                            *fEoverP_pt_true_electrons0;
+       TH2F                            *fEoverP_pt_true_hadrons0;
        TH2F                            **fEoverP_pt;
        TH2F                            **fEoverP_tpc;
-       
+       TH2F                            **fEoverP_tpc_p_trigger;
+       TH2F                            **fEoverP_tpc_pt_trigger;
        TH1F                            **fTPC_pt;
        TH2F                            **fTPC_p;
-       
        TH1F                            **fTPCnsigma_pt;
        TH2F                            **fTPCnsigma_p;
+       
+       TH2F                            *fTPCnsigma_p_TPC;
+       TH2F                            *fTPCnsigma_p_TPC_on_EMCal_acc;
+       TH2F                            *fTPCnsigma_p_TPC_EoverP_cut;
+       
        TH2F                            *fTPCnsigma_pt_2D;
        TH2F                            *fShowerShapeCut;
        TH2F                            *fShowerShapeM02_EoverP;
        TH2F                            *fShowerShapeM20_EoverP;
        TH2F                            *fShowerShape_ha;
        TH2F                            *fShowerShape_ele;
-       
        TH2F                            *fTPCnsigma_eta;
        TH2F                            *fTPCnsigma_phi;
-       
-       
        TH1F                            **fECluster;
+       TH1F                            *fECluster_pure;
+       TH1F                            *fECluster_not_exotic;
+       TH1F                            *fECluster_not_exotic1;
+       TH1F                            *fECluster_not_exotic2;
+       TH1F                            *fECluster_exotic;
+       TH1F                            *fNCluster_pure;
+       TH1F                            *fNCluster_pure_aod;
+       TH2F                            *fNCluster_ECluster;
+       TH2F                            *fNcells_energy;
+       TH2F                            *fNcells_energy_elec_selected;
+       TH2F                            *fNcells_energy_not_exotic;
        TH2F                            **fEtaPhi;
+       TH2F                            *fEtaPhi_num;
+       TH2F                            *fEtaPhi_den;
+       TH2F                            *fEtaPhi_data;
+       TH2F                            *fpt_reco_pt_MC_num;
+       TH2F                            *fpt_reco_pt_MC_den;
        TH1F                            **fVtxZ;
+       TH1F                            *fVtxZ_new1;
+       TH1F                            *fVtxZ_new2;
+       TH1F                            *fVtxZ_new3;
+       TH1F                            *fVtxZ_new4;
+       
+       TH1F                    *fzRes1;
+       TH1F                    *fzRes2;
+       TH1F                    *fSPD_track_vtx1;
+       TH1F                        *fSPD_track_vtx2;
+       
+       TH1F                            **fEtad;
        TH1F                            **fNTracks;
+       TH1F                            *fTrack_Multi;
+       TH2F                            **fNTracks_pt;
+       TH2F                            **fNTracks_eta;
+       TH2F                            **fNTracks_phi;
        TH1F                            **fNClusters;
        TH2F                            **fTPCNcls_EoverP;
-       
+       TH2F                            **fTPCNcls_pid;
        TH1F                            **fEta;
        TH1F                            **fPhi;
        TH1F                            **fR;
@@ -217,78 +332,73 @@ private:
        TH2F                            **fM20_EoverP;
        TH2F                            **fTPCnsigma_eta_electrons;
        TH2F                            **fTPCnsigma_eta_hadrons;
-       
        TH2F                            *fEoverP_pt_pions;
-       
        TH2F                            *ftpc_p_EoverPcut;
        TH2F                            *fnsigma_p_EoverPcut;
-       
        TH2F                            *fEoverP_pt_pions2;
        TH2F                            *fNcells_pt;
        TH2F                            *fEoverP_pt_hadrons;
-       
                //Electron-Hadron Correlation Histograms
        TH2F                            **fCEtaPhi_Inc;
-       
        TH2F                            **fCEtaPhi_ULS;
        TH2F                            **fCEtaPhi_LS;
        TH2F                            **fCEtaPhi_ULS_NoP;
        TH2F                            **fCEtaPhi_LS_NoP;
-       
        TH2F                            **fCEtaPhi_ULS_Weight;
        TH2F                            **fCEtaPhi_LS_Weight;
        TH2F                            **fCEtaPhi_ULS_NoP_Weight;
        TH2F                            **fCEtaPhi_LS_NoP_Weight;
-       
        TH1F                            *fInvMass;
        TH1F                            *fInvMassBack;
        TH1F                            *fDCA;
        TH1F                            *fDCABack;
        TH1F                            *fOpAngle;
        TH1F                            *fOpAngleBack;
-       
        TH1F                            *fInvMass2;
        TH1F                            *fInvMassBack2;
        TH1F                            *fDCA2;
        TH1F                            *fDCABack2;
        TH1F                            *fOpAngle2;
        TH1F                            *fOpAngleBack2;
-       
        Double_t                        fMassCut;
        Double_t                        fEtaCutMin;
        Double_t                        fEtaCutMax;
-       
        Double_t                        fdPhiCut;
        Double_t                        fdEtaCut;
-       
        Double_t                        fEoverPCutMin;
        Double_t                        fEoverPCutMax;
        Double_t                        fM20CutMin;
        Double_t                        fM20CutMax;
        Double_t                        fM02CutMin;
        Double_t                        fM02CutMax;
-       
        Double_t                        fAngleCut;
        Double_t                        fChi2Cut;
        Double_t                        fDCAcut;
+       Double_t                        fDCAcutr;
+       Double_t                        fDCAcutz;
+       
        Bool_t                          fMassCutFlag;
        Bool_t                          fAngleCutFlag;
        Bool_t                          fChi2CutFlag;
        Bool_t                          fDCAcutFlag;
-       
-               //Non-HFE reconstruction efficiency
+       //Correlation Function
+       Double_t                        fAssHadronPtMin;
+       Double_t                        fAssHadronPtMax;
+       //Non-HFE reconstruction efficiency
        TH1F                            *fPtBackgroundBeforeReco;
        TH1F                            *fPtBackgroundBeforeReco2;
+       TH1F                            *fPtBackgroundBeforeReco_weight;
+       TH1F                            *fPtBackgroundBeforeReco2_weight;
+       TH2F                            *fpT_m_electron;
+       TH2F                            *fpT_gm_electron;
        TH1F                            *fPtBackgroundAfterReco;
-       
        Double_t                        fPtMinAsso;
        Int_t                   fTpcNclsAsso;
-       
                //Tracking Efficiency
        TH1F                            *fPtMCparticleAll;
        TH1F                            *fPtMCparticleAll_nonPrimary;
        TH1F                            *fPtMCparticleAlle_nonPrimary;
-
+       TH1F                            *fPtMCparticleAlle_Primary;
        TH1F                            *fPtMCparticleReco;
        TH1F                            *fPtMCparticleReco_nonPrimary;
        TH1F                            *fPtMCparticleAllHfe1;
@@ -296,22 +406,33 @@ private:
        TH1F                            *fPtMCparticleAllHfe2;
        TH1F                            *fPtMCparticleRecoHfe2;
        TH1F                            *fPtMCelectronAfterAll;
+       TH1F                            *fPtMCelectronAfterAll_unfolding;
        TH1F                            *fPtMCelectronAfterAll_nonPrimary;
+       TH1F                            *fPtMCelectronAfterAll_Primary;
        
        TH1F                            *fPtMCpi0;
        TH1F                            *fPtMCeta;
+       TH1F                            *fPtMCpi02;
+       TH1F                            *fPtMCeta2;
+       TH1F                            *fPtMCpi03;
+       TH1F                            *fPtMCeta3;
        
        TH1F                            *fPtMC_EMCal_All;
        TH1F                            *fPtMC_EMCal_Selected;
        TH1F                            *fPtMC_TPC_All;
        TH1F                            *fPtMC_TPC_Selected;
+       TH1F                            *fPt_track_match_den;
+       TH1F                            *fPt_track_match_num;
        
+               
        TH1F                            *fPtMCWithLabel;
        TH1F                            *fPtMCWithoutLabel;
        TH1F                            *fPtIsPhysicaPrimary;
        
                //For the HFE package
        AliHFEcuts                      *fCuts;                                 // Cut Collection for HFE
+                                                                                                               //Lucile
+                                                                                                               //AliCaloTrackAODReader                         *reader; 
        AliCFManager            *fCFM;                                  // Correction Framework Manager
        AliHFEpid                       *fPID;                                  // PID
        AliHFEpidQAmanager      *fPIDqa;                                                // PID QA manager
@@ -327,6 +448,7 @@ private:
        TClonesArray            *fMCarray;
        AliAODMCHeader          *fMCheader;
        AliAODMCParticle        *fMCparticle;
+       AliAODMCParticle        *fMCparticle2;
        AliAODMCParticle        *fMCparticleMother;
        AliAODMCParticle        *fMCparticleGMother;
        AliAODMCParticle        *fMCparticleGGMother;
@@ -358,6 +480,14 @@ private:
                //Di-hadron correlation
        TH2F                            **fCEtaPhi_Inc_DiHadron;
        TH1F                            *fPtTrigger_Inc;
+       
+               //AliEMCALRecoUtils             *fEMCALRecoUtils;   // EMCAL Reco Utils //exotic
+                                                                                               //AliEMCALGeometry *fEMCALGeo ;             //! EMCAL geometry pointer
+                                                                                               //AliCalorimeterUtils *fCaloUtils;
+       
+       Int_t            fBitEGA;                    // Trigger bit on VCaloTrigger for EGA
+
+        
                //______________________________________________________________________
        
        AliAnalysisTaskEMCalHFEpA(const AliAnalysisTaskEMCalHFEpA&);                    // not implemented