From d1418f513d5a300f3715725cf59869f1f22f4a6c Mon Sep 17 00:00:00 2001 From: rbailhac Date: Wed, 6 Nov 2013 09:55:38 +0000 Subject: [PATCH] HFE QA task --- PWGHF/hfe/macros/AddTaskHFEQA.C | 29 ++++++ PWGHF/hfe/macros/configs/PbPb/ConfigHFEQA.C | 108 ++++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 PWGHF/hfe/macros/AddTaskHFEQA.C create mode 100644 PWGHF/hfe/macros/configs/PbPb/ConfigHFEQA.C diff --git a/PWGHF/hfe/macros/AddTaskHFEQA.C b/PWGHF/hfe/macros/AddTaskHFEQA.C new file mode 100644 index 00000000000..a8acd617cdc --- /dev/null +++ b/PWGHF/hfe/macros/AddTaskHFEQA.C @@ -0,0 +1,29 @@ +AliAnalysisTask *AddTaskHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsystem = 2, Int_t icent = 2){ + + // Name + TString appendixx("HFEQA"); + + //set config file name + TString configFile("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFEQA.C"); + TString checkconfig="ConfigHFEQA"; + if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data())) + gROOT->LoadMacro(configFile.Data()); + + AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); + AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); + AliAnalysisTaskHFEQA *task = ConfigHFEQA(useMC,isAOD,icollisionsystem,icent); + + mgr->AddTask(task); + + TString containerName = mgr->GetCommonFileName(); + containerName += ":"; + containerName += appendixx.Data(); + + AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); + mgr->ConnectOutput(task,1, mgr->CreateContainer(Form("list_%s",appendixx.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,containerName.Data())); + mgr->ConnectInput(task,0, cinput ); + + return NULL; + + +} diff --git a/PWGHF/hfe/macros/configs/PbPb/ConfigHFEQA.C b/PWGHF/hfe/macros/configs/PbPb/ConfigHFEQA.C new file mode 100644 index 00000000000..5862e6f7944 --- /dev/null +++ b/PWGHF/hfe/macros/configs/PbPb/ConfigHFEQA.C @@ -0,0 +1,108 @@ +AliAnalysisTaskHFEQA* ConfigHFEQA(Bool_t useMC, Bool_t isAOD, Int_t icollisionsystem = 2, Int_t icent = 2){ + + //***************************************// + // Setting up the HFE cuts // + //***************************************// + + AliHFEcuts *hfecuts = new AliHFEcuts("HFEcuts","HFE cuts"); + hfecuts->CreateStandardCuts(); + hfecuts->SetMinNClustersTPC(100); + hfecuts->SetMinNClustersTPCPID(80); + hfecuts->SetMinNClustersITS(3); + hfecuts->SetMinRatioTPCclusters(0.6); + hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable); + hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny); + hfecuts->SetCheckITSLayerStatus(kFALSE); + hfecuts->SetEtaRange(-0.8,0.8); + hfecuts->SetRejectKinkDaughters(); + hfecuts->SetAcceptKinkMothers(); + if(isAOD) hfecuts->SetAODFilterBit(4); + + hfecuts->SetMaxImpactParam(1.,2.); + hfecuts->SetUseMixedVertex(kTRUE); + hfecuts->SetVertexRange(10.); + hfecuts->SetPtRange(0.1,100.); + // New pPb cuts (February 2013) + hfecuts->SetUseCorrelationVertex(); + hfecuts->SetSPDVtxResolutionCut(); + //hfecuts->SetpApileupCut(); + + //***************************************// + // Setting up the task // + //***************************************// + + AliAnalysisTaskHFEQA *task = new AliAnalysisTaskHFEQA("taskHFEQA"); + printf("task %p\n", task); + //task->SetpPbAnalysis(); + //if(!isAOD) task->SetRemoveFirstEventInChunk(); + //task->SetRemovePileUp(kFALSE); + task->SetHFECuts(hfecuts); + //task->GetPIDQAManager()->SetHighResolutionHistos(); + //task->SetRejectKinkMother(kFALSE); + + // Collision system + if (icollisionsystem == 2) task->SetPbPbAnalysis(); + else if (icollisionsystem == 1) task->SetpPbAnalysis(); + else if (icollisionsystem == 0) task->SetppAnalysis(); + + + // Determine the centrality estimator + task->SetCentralityEstimator("V0A"); + if (icent == 2) task->SetCentralityEstimator("V0M"); + else if (icent == 3) task->SetCentralityEstimator("CL1"); + else if (icent == 4) task->SetCentralityEstimator("ZNA"); + + + //***************************************// + // Configure the PID // + //***************************************// + + AliHFEpid *pidTOFTPC = task->GetPIDTOFTPC(); + if(useMC) pidTOFTPC->SetHasMCData(kTRUE); + pidTOFTPC->AddDetector("TOF", 0); + pidTOFTPC->AddDetector("TPC", 1); + pidTOFTPC->ConfigureTOF(3.); + + AliHFEpid *pidTPCTRD = task->GetPIDTPCTRD(); + if(useMC) pidTPCTRD->SetHasMCData(kTRUE); + pidTPCTRD->AddDetector("TPC", 0); + pidTPCTRD->AddDetector("TRD", 1); + + AliHFEpid *pidTPCEMCal = task->GetPIDTPCEMCal(); + if(useMC) pidTPCEMCal->SetHasMCData(kTRUE); + pidTPCEMCal->AddDetector("EMCAL", 1); + pidTPCEMCal->AddDetector("TPC", 0); + + + // TPC PID + Double_t paramsTPCdEdxcutlowEMCal[12] ={-3.0, -3.0, -3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0,-3.0}; + Double_t paramsTPCdEdxcutlow[12] ={0.0, 0.0, 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; + Double_t paramsTPCdEdxcuthigh[12] ={3.0, 3.0, 3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0}; + char *cutmodel; + cutmodel="pol0"; + for(Int_t a=0;a<11;a++){ + Double_t tpcparamlowEMCal[1]={paramsTPCdEdxcutlowEMCal[a]}; + Double_t tpcparamlow[1]={paramsTPCdEdxcutlow[a]}; + Float_t tpcparamhigh=paramsTPCdEdxcuthigh[a]; + pidTOFTPC->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlow,tpcparamhigh); + pidTPCTRD->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlow,tpcparamhigh); + pidTPCEMCal->ConfigureTPCcentralityCut(a,cutmodel,tpcparamlowEMCal,tpcparamhigh); + } + pidTOFTPC->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlow,paramsTPCdEdxcuthigh[0]); + pidTPCTRD->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlow,paramsTPCdEdxcuthigh[0]); + pidTPCEMCal->ConfigureTPCdefaultCut(cutmodel,paramsTPCdEdxcutlowEMCal,paramsTPCdEdxcuthigh[0]); + + // TRD + AliHFEpidTRD *trdpid = pidTPCTRD->GetDetPID(AliHFEpid::kTRDpid); + trdpid->SetTRD2DPID(); + trdpid->SetElectronEfficiency(0.80); // efficiency + trdpid->SetNTracklets(5); // ntracklets threshold + trdpid->SetCutNTracklets(5, kTRUE); + + // change E/p cuts + AliHFEpidEMCAL *emcpid = pidTPCEMCal->AliHFEpid::GetDetPID(AliHFEpid::kEMCALpid); + emcpid->SetEoPMax(1.3); + emcpid->SetEoPMim(0.9); + + return task; +} -- 2.43.0