// 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) //
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
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;};
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
//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 ; }*/
+
//______________________________________________________________________
//______________________________________________________________________
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;
//Histograms
TH1F *fNevent;
+ TH1F *fNevent2;
TH1F *fPtElec_Inc;
+ TH1F *fPtPrim;
+ TH1F *fPtSec;
+ TH1F *fPtPrim2;
+ TH1F *fPtSec2;
+
TH1F *fCharge_n;
TH1F *fCharge_p;
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;
TH2F *fTOF01;
TH2F *fTOF02;
TH2F *fTOF03;
-
- TH1F *fpid;
-
+ 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;
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;
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
TClonesArray *fMCarray;
AliAODMCHeader *fMCheader;
AliAODMCParticle *fMCparticle;
+ AliAODMCParticle *fMCparticle2;
AliAODMCParticle *fMCparticleMother;
AliAODMCParticle *fMCparticleGMother;
AliAODMCParticle *fMCparticleGGMother;
//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