From 3db2410d4b70e82e82148f807b5afc32d6ad7ce2 Mon Sep 17 00:00:00 2001 From: ssakai Date: Wed, 17 Sep 2014 15:58:38 +0200 Subject: [PATCH] updated --- PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.cxx | 451 +++++++++++++++++- PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.h | 21 +- .../hfe/macros/configs/pPb/ConfigEMCalHFEpA.C | 8 +- 3 files changed, 468 insertions(+), 12 deletions(-) diff --git a/PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.cxx b/PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.cxx index 2c2aae31731..c5b8f867943 100644 --- a/PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.cxx +++ b/PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.cxx @@ -19,7 +19,7 @@ // Task for Heavy-flavour electron analysis in pPb collisions // // (+ Electron-Hadron Jetlike Azimuthal Correlation) // // // - // version: August 13, 2014. // + // version: September 16, 2014. // // // // Authors // // Elienos Pereira de Oliveira Filho (epereira@cern.ch) // @@ -126,12 +126,12 @@ AliAnalysisTaskEMCalHFEpA::AliAnalysisTaskEMCalHFEpA(const char *name) ,fCorrelationFlag(0) ,fIsMC(0) ,fUseEMCal(kFALSE) - ,fUseTrigger(kFALSE) +,fUseTender(kFALSE) ,fUseShowerShapeCut(kFALSE) ,fFillBackground(kFALSE) +,fEoverPnsigma(kFALSE) ,fAssocWithSPD(kFALSE) - ,fEMCEG1(kFALSE) ,fEMCEG2(kFALSE) ,fIsHFE1(kFALSE) @@ -175,12 +175,19 @@ AliAnalysisTaskEMCalHFEpA::AliAnalysisTaskEMCalHFEpA(const char *name) ,ftimingEle2(0) ,fPtElec_ULS(0) ,fPtElec_LS(0) + ,fPtElec_ULS_NoPid(0) ,fPtElec_LS_NoPid(0) ,fPtElec_ULS_MC(0) ,fPtElec_ULS_MC_weight(0) ,fPtElec_ULS2(0) ,fPtElec_LS2(0) + +,fPtElec_ULS_mc_closure(0) +,fPtElec_LS_mc_closure(0) +,fPtElec_ULS2_mc_closure(0) +,fPtElec_LS2_mc_closure(0) + ,fPtElec_ULS_weight(0) ,fPtElec_LS_weight(0) ,fPtElec_ULS2_weight(0) @@ -189,6 +196,10 @@ AliAnalysisTaskEMCalHFEpA::AliAnalysisTaskEMCalHFEpA(const char *name) ,fTOF02(0) ,fTOF03(0) ,fpid(0) +,fEoverP_pt_true_electrons(0) +,fEoverP_pt_true_hadrons(0) +,fEoverP_pt_true_electrons0(0) +,fEoverP_pt_true_hadrons0(0) ,fEoverP_pt(0) ,fEoverP_tpc(0) ,fEoverP_tpc_p_trigger(0) @@ -417,8 +428,10 @@ AliAnalysisTaskEMCalHFEpA::AliAnalysisTaskEMCalHFEpA() ,fIsMC(0) ,fUseEMCal(kFALSE) ,fUseTrigger(kFALSE) +,fUseTender(kFALSE) ,fUseShowerShapeCut(kFALSE) ,fFillBackground(kFALSE) +,fEoverPnsigma(kFALSE) ,fAssocWithSPD(kFALSE) ,fEMCEG1(kFALSE) ,fEMCEG2(kFALSE) @@ -469,6 +482,12 @@ AliAnalysisTaskEMCalHFEpA::AliAnalysisTaskEMCalHFEpA() ,fPtElec_ULS_MC_weight(0) ,fPtElec_ULS2(0) ,fPtElec_LS2(0) + +,fPtElec_ULS_mc_closure(0) +,fPtElec_LS_mc_closure(0) +,fPtElec_ULS2_mc_closure(0) +,fPtElec_LS2_mc_closure(0) + ,fPtElec_ULS_weight(0) ,fPtElec_LS_weight(0) ,fPtElec_ULS2_weight(0) @@ -477,6 +496,10 @@ AliAnalysisTaskEMCalHFEpA::AliAnalysisTaskEMCalHFEpA() ,fTOF02(0) ,fTOF03(0) ,fpid(0) +,fEoverP_pt_true_electrons(0) +,fEoverP_pt_true_hadrons(0) +,fEoverP_pt_true_electrons0(0) +,fEoverP_pt_true_hadrons0(0) ,fEoverP_pt(0) ,fEoverP_tpc(0) ,fEoverP_tpc_p_trigger(0) @@ -801,6 +824,14 @@ void AliAnalysisTaskEMCalHFEpA::UserCreateOutputObjects() fPtElec_ULS2_weight = new TH1F("fPtElec_ULS2_weight","ULS; p_{T} (GeV/c); Count",300,0,30); fPtElec_LS2_weight = new TH1F("fPtElec_LS2_weight","LS; p_{T} (GeV/c); Count",300,0,30); + + //mc closure + fPtElec_ULS_mc_closure = new TH1F("fPtElec_ULS_mc_closure","ULS; p_{T} (GeV/c); Count",300,0,30); + fPtElec_LS_mc_closure = new TH1F("fPtElec_LS_mc_closure","LS; p_{T} (GeV/c); Count",300,0,30); + fPtElec_ULS2_mc_closure = new TH1F("fPtElec_ULS2_mc_closure","ULS; p_{T} (GeV/c); Count",300,0,30); + fPtElec_LS2_mc_closure = new TH1F("fPtElec_LS2_mc_closure","LS; p_{T} (GeV/c); Count",300,0,30); + + } @@ -895,6 +926,11 @@ void AliAnalysisTaskEMCalHFEpA::UserCreateOutputObjects() fOutputList->Add(fPtElec_LS2); fOutputList->Add(fPtElec_ULS2_weight); fOutputList->Add(fPtElec_LS2_weight); + + fOutputList->Add(fPtElec_ULS_mc_closure); + fOutputList->Add(fPtElec_LS_mc_closure); + fOutputList->Add(fPtElec_ULS2_mc_closure); + fOutputList->Add(fPtElec_LS2_mc_closure); } @@ -984,7 +1020,19 @@ void AliAnalysisTaskEMCalHFEpA::UserCreateOutputObjects() fTPCNcls_EoverP= new TH2F *[3]; fTPCNcls_pid=new TH2F *[4]; + fEoverP_pt_true_electrons = new TH2F("fEoverP_pt_true_electrons",";p_{T} (GeV/c);E/p ",1000,0,30,2000,0,2); + fOutputList->Add(fEoverP_pt_true_electrons); + fEoverP_pt_true_electrons0 = new TH2F("fEoverP_pt_true_electrons0",";p_{T} (GeV/c);E/p ",1000,0,30,2000,0,2); + fOutputList->Add(fEoverP_pt_true_electrons0); + + fEoverP_pt_true_hadrons = new TH2F("fEoverP_pt_true_hadrons",";p_{T} (GeV/c);E/p ",1000,0,30,2000,0,2); + fOutputList->Add(fEoverP_pt_true_hadrons); + fEoverP_pt_true_hadrons0 = new TH2F("fEoverP_pt_true_hadrons0",";p_{T} (GeV/c);E/p ",1000,0,30,2000,0,2); + fOutputList->Add(fEoverP_pt_true_hadrons0); + + + for(Int_t i = 0; i < 3; i++) { @@ -1009,8 +1057,7 @@ void AliAnalysisTaskEMCalHFEpA::UserCreateOutputObjects() fTPCNcls_EoverP[i]= new TH2F(Form("fTPCNcls_EoverP%d",i),"TPCNcls_EoverP",1000,0,200,200,0,2); - - fOutputList->Add(fEoverP_pt[i]); + fOutputList->Add(fEoverP_pt[i]); fOutputList->Add(fTPC_p[i]); fOutputList->Add(fTPCnsigma_p[i]); @@ -1029,6 +1076,9 @@ void AliAnalysisTaskEMCalHFEpA::UserCreateOutputObjects() fOutputList->Add(fTPCNcls_EoverP[i]); } + + + fTrack_Multi= new TH1F("fTrack_Multi","fTrack_Multi",1000, 0,1000); for(Int_t i = 0; i < 4; i++) @@ -2198,7 +2248,20 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) ///_____________________________________________________________________ ///Track loop - for(Int_t iTracks = 0; iTracks < fVevent->GetNumberOfTracks(); iTracks++) + Int_t NTracks=fVevent->GetNumberOfTracks(); + + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //To use tender + if(fUseTender){ + TClonesArray *fTracks_tender = dynamic_cast(InputEvent()->FindListObject("AODFilterTracks")); + NTracks = fTracks_tender->GetEntries(); + TClonesArray *fCaloClusters_tender = dynamic_cast(InputEvent()->FindListObject("EmcCaloClusters")); + ClsNo = fCaloClusters_tender->GetEntries(); + + } + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + + for(Int_t iTracks = 0; iTracks < NTracks; iTracks++) { AliVParticle* Vtrack = fVevent->GetTrack(iTracks); if (!Vtrack) @@ -2207,10 +2270,23 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) continue; } + //main place where track is defined + AliVTrack *track = dynamic_cast(Vtrack); AliESDtrack *etrack = dynamic_cast(Vtrack); AliAODTrack *atrack = dynamic_cast(Vtrack); + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //To use tender + if(fUseTender){ + TClonesArray *fTracks_tender = dynamic_cast(InputEvent()->FindListObject("AODFilterTracks")); + track = static_cast(fTracks_tender->At(iTracks)); + if (!track) { + printf("ERROR: Could not receive track calibrated %d\n", iTracks); + continue; + } + } + /////////////////////////////////////////////////////////////////////////////////////////////////////////// Double_t fTPCnSigma = -999; Double_t fTOFnSigma = -999; @@ -2258,6 +2334,16 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) if(track->GetEMCALcluster()>0) { fClus = fVevent->GetCaloCluster(track->GetEMCALcluster()); + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //to use tender + if(fUseTender){ + int EMCalIndex = -1; + EMCalIndex = track->GetEMCALcluster(); + TClonesArray *fCaloClusters_tender = dynamic_cast(InputEvent()->FindListObject("EmcCaloClusters")); + fClus = static_cast(fCaloClusters_tender->At(EMCalIndex)); + } + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + if(fClus->IsEMCAL()) { @@ -2373,7 +2459,7 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) //HFE cuts: TPC PID cleanup if(!ProcessCutStep(AliHFEcuts::kStepHFEcutsTPC, track)) continue; -//DCA cut done by hand -- July 29th, 2014 +//DCA cut done by hand -- July 29th, 2014 -> fix it... has to be in absolute values!!!! if(fIsAOD){ Double_t d0z0[2], cov[3]; AliAODVertex *prim_vtx = fAOD->GetPrimaryVertex(); @@ -2508,6 +2594,16 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) if(track->GetEMCALcluster()>0) { fClus = fVevent->GetCaloCluster(track->GetEMCALcluster()); + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //to use tender + if(fUseTender){ + int EMCalIndex = -1; + EMCalIndex = track->GetEMCALcluster(); + TClonesArray *fCaloClusters_tender = dynamic_cast(InputEvent()->FindListObject("EmcCaloClusters")); + fClus = static_cast(fCaloClusters_tender->At(EMCalIndex)); + } + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + if(fClus->IsEMCAL()) { if(TMath::Abs(fClus->GetTrackDx())<=fdPhiCut && TMath::Abs(fClus->GetTrackDz())<=fdEtaCut) @@ -2544,14 +2640,53 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) // EtaCut -> dados if(track->Eta()>=fEtaCutMin && track->Eta()<=fEtaCutMax ){ - //main + + //------------------------------------------------------------------- + //true hadrons E/p shape before cuts + if(fIsMC && fIsAOD && track->GetLabel()>=0){ + fMCparticle = (AliAODMCParticle*) fMCarray->At(track->GetLabel()); + Int_t pdg = fMCparticle->GetPdgCode(); + + if( TMath::Abs(pdg) != 11){ + fEoverP_pt_true_hadrons0->Fill(fPt,(fClus->E() / fP)); + } + } + + + //true electrons E/p shape before cuts + if(fIsMC && fIsAOD && track->GetLabel()>=0){ + fMCparticle = (AliAODMCParticle*) fMCarray->At(track->GetLabel()); + Int_t pdg = fMCparticle->GetPdgCode(); + + if( TMath::Abs(pdg) == 11){ + fEoverP_pt_true_electrons0->Fill(fPt,(fClus->E() / fP)); + } + } + //------------------------------------------------------------------- + + + //main if(TMath::Abs(fTPCnSigma_pion)<3 || TMath::Abs(fTPCnSigma_proton)<3 || TMath::Abs(fTPCnSigma_kaon)<3 ){ if(fTPCnSigma<-3.5){ fEoverP_pt_hadrons->Fill(fPt,EoverP); if(fUseEMCal) fShowerShape_ha->Fill(M02,M20); + + + //after cut -> Are they really hadrons? E/p shape + if(fIsMC && fIsAOD && track->GetLabel()>=0){ + fMCparticle = (AliAODMCParticle*) fMCarray->At(track->GetLabel()); + Int_t pdg = fMCparticle->GetPdgCode(); + + if( TMath::Abs(pdg) != 11){ + fEoverP_pt_true_hadrons->Fill(fPt,(fClus->E() / fP)); + } + } + + } } + //for systematic studies of hadron contamination if(fTPCnSigma < -3){ fEoverP_pt_pions->Fill(fPt, EoverP); @@ -2849,6 +2984,16 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) if(track->GetEMCALcluster()>0) { fClus = fVevent->GetCaloCluster(track->GetEMCALcluster()); + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + //to use tender + if(fUseTender){ + int EMCalIndex = -1; + EMCalIndex = track->GetEMCALcluster(); + TClonesArray *fCaloClusters_tender = dynamic_cast(InputEvent()->FindListObject("EmcCaloClusters")); + fClus = static_cast(fCaloClusters_tender->At(EMCalIndex)); + } + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + if(fClus->IsEMCAL()) { @@ -2993,9 +3138,21 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) if(M02 >= fM02CutMin && M02<=fM02CutMax && M20>=fM20CutMin && M20<=fM20CutMax){ fEoverP_pt[2]->Fill(fPt,(fClus->E() / fP)); fShowerShapeCut->Fill(M02,M20); - //in order to check if there are exotic cluster in this selected cluster (27 may 2014) + //in order to check if there are exotic cluster in this selected cluster (27 may 2014) fNcells_energy_elec_selected->Fill(ncells,Energy); + //true electrons E/p shape + if(fIsMC && fIsAOD && track->GetLabel()>=0){ + fMCparticle = (AliAODMCParticle*) fMCarray->At(track->GetLabel()); + Int_t pdg = fMCparticle->GetPdgCode(); + + if( TMath::Abs(pdg) == 11){ + fEoverP_pt_true_electrons->Fill(fPt,(fClus->E() / fP)); + } + } + + + } } @@ -3003,6 +3160,16 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) fEoverP_pt[2]->Fill(fPt,(fClus->E() / fP)); fShowerShapeCut->Fill(M02,M20); fNcells_energy_elec_selected->Fill(ncells,Energy); + + //after cut -> Are they really electrons ? E/p shape + if(fIsMC && fIsAOD && track->GetLabel()>=0){ + fMCparticle = (AliAODMCParticle*) fMCarray->At(track->GetLabel()); + Int_t pdg = fMCparticle->GetPdgCode(); + + if( TMath::Abs(pdg) == 11){ + fEoverP_pt_true_electrons->Fill(fPt,(fClus->E() / fP)); + } + } } @@ -3111,6 +3278,8 @@ void AliAnalysisTaskEMCalHFEpA::UserExec(Option_t *) //_______________________________________________________ //PID using EMCal + if(fEoverPnsigma)SetEoverPCutPtDependentMC(track->Pt()); + if((fClus->E() / fP) >= fEoverPCutMin && (fClus->E() / fP) <= fEoverPCutMax) { @@ -3861,6 +4030,18 @@ void AliAnalysisTaskEMCalHFEpA::Background(AliVTrack *track, Int_t trackIndex, A } } + //for MC closure test + // to be used as data, with MC input + if(!IsTPConly){ + if(fNonHFE->IsULS()) fPtElec_ULS_mc_closure->Fill(fPtE,fNonHFE->GetNULS()); + if(fNonHFE->IsLS()) fPtElec_LS_mc_closure->Fill(fPtE,fNonHFE->GetNLS()); + } + + if(IsTPConly){ + if(fNonHFE->IsULS()) fPtElec_ULS2_mc_closure->Fill(fPtE,fNonHFE->GetNULS()); + if(fNonHFE->IsLS()) fPtElec_LS2_mc_closure->Fill(fPtE,fNonHFE->GetNLS()); + } + }//end of Background function @@ -4707,7 +4888,259 @@ Double_t AliAnalysisTaskEMCalHFEpA::CalculateWeight(Int_t pdg_particle, Double_t return weight; } +Double_t AliAnalysisTaskEMCalHFEpA::SetEoverPCutPtDependentMC(Double_t pt) +{ + + fEoverPCutMin=0.8; + fEoverPCutMax=1.2; + + /* + ////====================================================================================== + ////====================================================================================== + ////============================= data 2 sigma =========================================== + if(!fIsMC){ + //data 2 sigma + if(pt>= 2.00 && pt < 2.50){ + fEoverPCutMin=0.7719; + fEoverPCutMax=1.1023; + } + if(pt>= 2.50 && pt < 3.00){ + fEoverPCutMin=0.7966; + fEoverPCutMax=1.1088; + } + if(pt>= 3.00 && pt < 4.00){ + fEoverPCutMin=0.8175; + fEoverPCutMax=1.1101; + } + if(pt>= 4.00 && pt < 5.00){ + fEoverPCutMin=0.8302; + fEoverPCutMax=1.1194; + } + if(pt>= 5.00 && pt < 6.00){ + fEoverPCutMin=0.8517; + fEoverPCutMax=1.1177; + } + if(pt>= 6.00 && pt < 8.00){ + fEoverPCutMin=0.8901; + fEoverPCutMax=1.1139; + } + if(pt>= 8.00 && pt < 10.00){ + fEoverPCutMin=0.8703; + fEoverPCutMax=1.1377; + } + if(pt>= 10.00 && pt < 12.00){ + fEoverPCutMin=0.9043; + fEoverPCutMax=1.1977; + } + } + + ////=========================================== MC 2 sigma =========================================== + + + if(fIsMC){ + + if(pt>= 2.00 && pt < 2.50){ + fEoverPCutMin=0.7712; + fEoverPCutMax=1.0746; + } + if(pt>= 2.50 && pt < 3.00){ + fEoverPCutMin=0.7946; + fEoverPCutMax=1.0708; + } + if(pt>= 3.00 && pt < 4.00){ + fEoverPCutMin=0.8196; + fEoverPCutMax=1.0678; + } + if(pt>= 4.00 && pt < 5.00){ + fEoverPCutMin=0.8396; + fEoverPCutMax=1.0646; + } + if(pt>= 5.00 && pt < 6.00){ + fEoverPCutMin=0.8527; + fEoverPCutMax=1.0647; + } + if(pt>= 6.00 && pt < 8.00){ + fEoverPCutMin=0.8652; + fEoverPCutMax=1.0670; + } + if(pt>= 8.00 && pt < 10.00){ + fEoverPCutMin=0.8748; + fEoverPCutMax=1.0804; + } + if(pt>= 10.00 && pt < 12.00){ + fEoverPCutMin=0.8814; + fEoverPCutMax=1.0842; + } + + } + */ + ////====================================================================================== + ////====================================================================================== + ////=========================== data 1.5 sigma =========================================== + /* + if(!fIsMC){ + //data 1.5 sigmas + if(pt>= 2.00 && pt < 2.50){ + fEoverPCutMin=0.8132; + fEoverPCutMax=1.0610; + } + if(pt>= 2.50 && pt < 3.00){ + fEoverPCutMin=0.8356; + fEoverPCutMax=1.0698; + } + if(pt>= 3.00 && pt < 4.00){ + fEoverPCutMin=0.8541; + fEoverPCutMax=1.0735; + } + if(pt>= 4.00 && pt < 5.00){ + fEoverPCutMin=0.8664; + fEoverPCutMax=1.0832; + } + if(pt>= 5.00 && pt < 6.00){ + fEoverPCutMin=0.8849; + fEoverPCutMax=1.0845; + } + if(pt>= 6.00 && pt < 8.00){ + fEoverPCutMin=0.9180; + fEoverPCutMax=1.0860; + } + if(pt>= 8.00 && pt < 10.00){ + fEoverPCutMin=0.9037; + fEoverPCutMax=1.1043; + } + if(pt>= 10.00 && pt < 12.00){ + fEoverPCutMin=0.9409; + fEoverPCutMax=1.1611; + } + } + + ////====================================================================================== + ////====================================================================================== + ////=========================== MC 1.5 sigma =========================================== + + if(fIsMC){ + //MC 1.5 sigmas + if(pt>= 2.00 && pt < 2.50){ + fEoverPCutMin=0.8091; + fEoverPCutMax=1.0367; + } + if(pt>= 2.50 && pt < 3.00){ + fEoverPCutMin=0.8292; + fEoverPCutMax=1.0362; + } + if(pt>= 3.00 && pt < 4.00){ + fEoverPCutMin=0.8506; + fEoverPCutMax=1.0368; + } + if(pt>= 4.00 && pt < 5.00){ + fEoverPCutMin=0.8677; + fEoverPCutMax=1.0365; + } + if(pt>= 5.00 && pt < 6.00){ + fEoverPCutMin=0.8792; + fEoverPCutMax=1.0382; + } + if(pt>= 6.00 && pt < 8.00){ + fEoverPCutMin=0.8904; + fEoverPCutMax=1.0418; + } + if(pt>= 8.00 && pt < 10.00){ + fEoverPCutMin=0.9005; + fEoverPCutMax=1.0547; + } + if(pt>= 10.00 && pt < 12.00){ + fEoverPCutMin=0.9067; + fEoverPCutMax=1.0589; + } + + } + */ + ////====================================================================================== + ////====================================================================================== + ////=========================== data 2.5 sigma =========================================== + + if(!fIsMC){ + //data 2.5 sigmas + if(pt>= 2.00 && pt < 2.50){ + fEoverPCutMin=0.7306; + fEoverPCutMax=1.1436; + } + if(pt>= 2.50 && pt < 3.00){ + fEoverPCutMin=0.7575; + fEoverPCutMax=1.1479; + } + if(pt>= 3.00 && pt < 4.00){ + fEoverPCutMin=0.7809; + fEoverPCutMax=1.1467; + } + if(pt>= 4.00 && pt < 5.00){ + fEoverPCutMin=0.7941; + fEoverPCutMax=1.1555; + } + if(pt>= 5.00 && pt < 6.00){ + fEoverPCutMin=0.8184; + fEoverPCutMax=1.1510; + } + if(pt>= 6.00 && pt < 8.00){ + fEoverPCutMin=0.8621; + fEoverPCutMax=1.1419; + } + if(pt>= 8.00 && pt < 10.00){ + fEoverPCutMin=0.8368; + fEoverPCutMax=1.1712; + } + if(pt>= 10.00 && pt < 12.00){ + fEoverPCutMin=0.8676; + fEoverPCutMax=1.2344; + } + +} + + ////====================================================================================== + ////====================================================================================== + ////=========================== MC 2.5 sigma =========================================== + + if(fIsMC){ + //MC 2.5 sigmas + if(pt>= 2.00 && pt < 2.50){ + fEoverPCutMin=0.7333; + fEoverPCutMax=1.1125; + } + if(pt>= 2.50 && pt < 3.00){ + fEoverPCutMin=0.7601; + fEoverPCutMax=1.1053; + } + if(pt>= 3.00 && pt < 4.00){ + fEoverPCutMin=0.7885; + fEoverPCutMax=1.0989; + } + if(pt>= 4.00 && pt < 5.00){ + fEoverPCutMin=0.8115; + fEoverPCutMax=1.0927; + } + if(pt>= 5.00 && pt < 6.00){ + fEoverPCutMin=0.8262; + fEoverPCutMax=1.0912; + } + if(pt>= 6.00 && pt < 8.00){ + fEoverPCutMin=0.8400; + fEoverPCutMax=1.0922; + } + if(pt>= 8.00 && pt < 10.00){ + fEoverPCutMin=0.8492; + fEoverPCutMax=1.1060; + } + if(pt>= 10.00 && pt < 12.00){ + fEoverPCutMin=0.8560; + fEoverPCutMax=1.1096; + } + } + + + return fEoverPCutMin; + return fEoverPCutMax; +} diff --git a/PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.h b/PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.h index 4c50654594e..069df55ae88 100644 --- a/PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.h +++ b/PWGHF/hfe/AliAnalysisTaskEMCalHFEpA.h @@ -9,7 +9,7 @@ // Task for Heavy-flavour electron analysis in pPb collisions // // (+ Electron-Hadron Jetlike Azimuthal Correlation) // // // - // version: July 28, 2014. // + // version: September 16, 2014. // // // // Authors // // Elienos Pereira de Oliveira Filho (epereira@cern.ch) // @@ -112,8 +112,10 @@ public: 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 @@ -148,14 +150,17 @@ private: 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; @@ -230,6 +235,14 @@ private: 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; @@ -240,7 +253,11 @@ private: 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; diff --git a/PWGHF/hfe/macros/configs/pPb/ConfigEMCalHFEpA.C b/PWGHF/hfe/macros/configs/pPb/ConfigEMCalHFEpA.C index 8239e0bb1f7..1372ab923d7 100644 --- a/PWGHF/hfe/macros/configs/pPb/ConfigEMCalHFEpA.C +++ b/PWGHF/hfe/macros/configs/pPb/ConfigEMCalHFEpA.C @@ -96,6 +96,9 @@ Int_t EMCalThreshould = 0 //0 == EG1, 1 == EG2 //Bool_t isTrigger = kFALSE; if(isTrigger) task->SetUseTrigger(); + //task->SetUseTender(); + + if(configIndex==104) task->SetdcaCut(2,3);//r,z else if(configIndex==105) task->SetdcaCut(1.5,2.5);//r,z else if(configIndex==106) task->SetdcaCut(0.5,1);//r,z @@ -182,7 +185,10 @@ Int_t EMCalThreshould = 0 //0 == EG1, 1 == EG2 else task->SetEoverPCut(0.80,1.2); - + + + //this line is to set the change on the E/p cut used in the efficiency calculations. + task->SetEoverPnsigma(kTRUE); if(centralityIndex==0) task->SetCentrality(0,20); -- 2.43.0