From 64e976d4fcd91eb338fdf1056a4fa2a429925a74 Mon Sep 17 00:00:00 2001 From: mcolocci Date: Thu, 21 Nov 2013 15:23:07 +0000 Subject: [PATCH] Added some plots in order to further investigate the energy loss effect on the measurement of the mean momentum of the nuclei --- .../Nuclei/masses/AliAnalysisNucleiMass.cxx | 68 +++++++++++++------ .../Nuclei/masses/AliAnalysisNucleiMass.h | 9 ++- 2 files changed, 53 insertions(+), 24 deletions(-) diff --git a/PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.cxx b/PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.cxx index ecc19b61607..df2391c537a 100644 --- a/PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.cxx +++ b/PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.cxx @@ -1,20 +1,3 @@ -/************************************************************************** - * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * - * * - * Author: The ALICE Off-line Project. * - * Contributors are mentioned in the code where appropriate. * - * * - * Permission to use, copy, modify and distribute this software and its * - * documentation strictly for non-commercial purposes is hereby granted * - * without fee, provided that the above copyright notice appears in all * - * copies and that both the copyright notice and this permission notice * - * appear in the supporting documentation. The authors make no claims * - * about the suitability of this software for any purpose. It is * - * provided "as is" without express or implied warranty. * - **************************************************************************/ - -// author: Manuel Colocci - #include "AliAnalysisNucleiMass.h" // ROOT includes @@ -159,7 +142,7 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects() hPhi[iB] = new TH1F("hPhi_Analyzed","#phi distribution after the track cuts;#phi (rad.)",90,0,6.3);//Each TRD supermodule is divided for 5 (DeltaPhi(TRD)=0.35 theoretical) - Int_t hbins[2]={1,1}; + Int_t hbins[2]; if(kSignalCheck>1) {hbins[0]=100; hbins[1]=90;} else if(kSignalCheck==0) {hbins[0]=1; hbins[1]=1;} fEtaPhi[iB] = new TH2F("fEtaPhi_Analyzed","|#eta| vs. #phi after the track cuts;|#eta|;#phi (rad.)",hbins[0],0.0,1.0,hbins[1],0,6.3); @@ -351,6 +334,25 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects() }*/ //end parameterizations + Char_t name_fPmeanVsBetaGamma[18][200]; + Char_t title_fPmeanVsBetaGamma[18][200]; + + hbins[0]=200; hbins[1]=200; + for(Int_t iS=0;iS/p_{vtx} vs #beta#gamma of %s;p_{vtx}/m_{%s};

_{%s}/p_{vtx}",name[iS],name[iS],name[iS]); + fPmeanVsBetaGamma[iB][iS]=new TH2F(name_fPmeanVsBetaGamma[iS],title_fPmeanVsBetaGamma[iS],hbins[0],0,10,hbins[1],0.8,1.2); + } + + Char_t name_prPmeanVsBetaGamma[18][200]; + Char_t title_prPmeanVsBetaGamma[18][200]; + + for(Int_t iS=0;iS/p_{vtx} vs #beta#gamma of %s;p_{vtx}/m_{%s};

_{%s}/p_{vtx}",name[iS],name[iS],name[iS]); + prPmeanVsBetaGamma[iB][iS]=new TProfile(name_prPmeanVsBetaGamma[iS],title_prPmeanVsBetaGamma[iS],hbins[0],0,10,0.8,1.2,""); + } + fList[iB]->Add(htemp[iB]); for(Int_t i=0;i<2;i++) fList[iB]->Add(hCentrality[iB][i]); for(Int_t i=0;i<2;i++) fList[iB]->Add(hZvertex[iB][i]); @@ -390,6 +392,15 @@ void AliAnalysisNucleiMass::UserCreateOutputObjects() fList[iB]->Add(fM2vsPt[iB][1][i]); fList[iB]->Add(fM2vsPt[iB][1][i+nPart]); } + if(iMtof!=1) { + for(Int_t i=0;iAdd(fPmeanVsBetaGamma[iB][i]); + fList[iB]->Add(prPmeanVsBetaGamma[iB][i]); + fList[iB]->Add(fPmeanVsBetaGamma[iB][i+nPart]); + fList[iB]->Add(prPmeanVsBetaGamma[iB][i+nPart]); + } + } if(iMtof==8) for(Int_t i=0;i<3;i++) fList[iB]->Add(fPmeanVsPexp[i]); else if(iMtof==4) for(Int_t i=1;i<3;i++) fList[iB]->Add(fPmeanVsPexp[i]); for(Int_t i=0;i<10;i++) fList[iB]->Add(fM2vsZ[iB][i]); @@ -602,7 +613,7 @@ void AliAnalysisNucleiMass::UserExec(Option_t *) //-----------------------------M2 as a function of expected times, if iMtof>1--------------------------------- Double_t Mass2[9]; - if(iMtof>1) this->GetMassFromExpTimes(beta,exptimes,Mass2,iMtof); + if(iMtof>1) this->GetMassFromExpTimes(beta,exptimes,Mass2,iMtof,p,FlagPid,charge); //-------------------------------Squared Mass TH2 distributions----------------------- if(charge>0) { @@ -740,7 +751,7 @@ void AliAnalysisNucleiMass::GetMassFromPvertex(Double_t beta, Double_t p, Double } //____________________________________________________________________________________________________________ -void AliAnalysisNucleiMass::GetMassFromExpTimes(Double_t beta, Double_t *IntTimes, Double_t *Mass2, Int_t iCorr) { +void AliAnalysisNucleiMass::GetMassFromExpTimes(Double_t beta, Double_t *IntTimes, Double_t *Mass2, Int_t iCorr, Double_t pVtx, Int_t FlagPid, Double_t charge) { // m = p_exp/beta/gamma where p_exp = mPDG*beta_exp*gamma_exp; beta_exp = L/t_exp/c = t_e/t_exp ; beta=L/tof/c = t_e/tof // In this way m_tof = mPDG only if tof=t_exp @@ -753,6 +764,8 @@ void AliAnalysisNucleiMass::GetMassFromExpTimes(Double_t beta, Double_t *IntTime Double_t pExp[9]; Double_t CorrFactor=0.0; + Int_t stdFlagPid[9] = {1,2,4,8,16,32,64,128,256};//e,#mu,#pi,K,p,d,t,3He,4He + for(Int_t iS=0;iS<9;iS++) { beta2Exp[iS]=IntTimes[0]/IntTimes[iS];//beta = L/tof*c = t_e/tof beta2Exp[iS]=beta2Exp[iS]*beta2Exp[iS]; @@ -780,9 +793,20 @@ void AliAnalysisNucleiMass::GetMassFromExpTimes(Double_t beta, Double_t *IntTime } p2Exp[iS]=pExp[iS]*pExp[iS]; //------------ - Mass2[iS]=p2Exp[iS]*(1-beta*beta)/(beta*beta); - } + + //------------ + if(FlagPid & stdFlagPid[iS]) { + if(charge>0){ + fPmeanVsBetaGamma[iBconf][iS]->Fill(pVtx/massOverZ[iS],pExp[iS]/pVtx); + prPmeanVsBetaGamma[iBconf][iS]->Fill(pVtx/massOverZ[iS],pExp[iS]/pVtx); + } + else { + fPmeanVsBetaGamma[iBconf][iS+nPart]->Fill(pVtx/massOverZ[iS],pExp[iS]/pVtx); + prPmeanVsBetaGamma[iBconf][iS+nPart]->Fill(pVtx/massOverZ[iS],pExp[iS]/pVtx); + } + } + }//end loop on the particle species return; diff --git a/PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.h b/PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.h index 39c84a620c9..6a67e602998 100644 --- a/PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.h +++ b/PWGLF/SPECTRA/Nuclei/masses/AliAnalysisNucleiMass.h @@ -45,6 +45,7 @@ class AliAnalysisNucleiMass : public AliAnalysisTaskSE { void SetNsigmaTPCCut(Double_t nSigmaTpcCut=2) {NsigmaTpcCut=nSigmaTpcCut;} void SetNminTPCcluster(Int_t nMinTPCcluster=0) {NminTpcCluster=nMinTPCcluster;} void SetTrdCut(Int_t kTRDcut=0) {iTrdCut=kTRDcut;} + //Settings void SetisSignalCheck(Int_t IsSignalCheck=2) {kSignalCheck=IsSignalCheck;} void SetMtofMethod(Int_t iMtofMethod=1) {iMtof=iMtofMethod;} @@ -68,7 +69,7 @@ class AliAnalysisNucleiMass : public AliAnalysisTaskSE { Int_t NminTpcCluster; // Number of minimum TPC clusters Int_t iTrdCut; // iTrdCut==0-> No TRD cut; iTrdCut==1-> Yes TRD cut: yes TRD; iTrdCut==2->Yes TRD cut: no TRD; Int_t kSignalCheck; // kSignalCheck==1->Fill all plots ; kSignalCheck==0->Fill only TH1 ; kSignalCheck==2-> Fill TH1 and some TH2 usefull in analysis - Int_t iMtof; // iMtof==1->m~pVtx ; iMtof==2->m~pExp ; iMtof==4->m~pExp(MCcorrected) for (d,He2); iMtof==4->m~pExp(MCcorrected) (p,d,He3) + Int_t iMtof; // iMtof==1->m~pVtx ; iMtof==2->m~pExp ; iMtof==4->m~pExp(MCcorrected) for (d,He3); iMtof==4->m~pExp(MCcorrected) (p,d,He3) //other: Int_t iBconf; //! If Magnetic Field configuration is down or up @@ -118,10 +119,14 @@ class AliAnalysisNucleiMass : public AliAnalysisTaskSE { //Parametrizations TF1 *fPmeanVsPexp[3]; //! Parameterization of (

-pExp)/pExp vs pExp for p,d,He3 + //... + TH2F *fPmeanVsBetaGamma[nBconf][18]; //!

/p vs beta*gamma (TH1) + TProfile *prPmeanVsBetaGamma[nBconf][18]; //!

/p vs beta*gamma (profile) + //------------------------------Methods---------------------------------------- void GetMassFromPvertex(Double_t beta, Double_t p, Double_t &M2); void GetZTpc(Double_t dedx, Double_t pTPC, Double_t M2, Double_t &Z2); - void GetMassFromExpTimes(Double_t beta, Double_t *IntTimes, Double_t *Mass2, Int_t iCorr=4); + void GetMassFromExpTimes(Double_t beta, Double_t *IntTimes, Double_t *Mass2, Int_t iCorr, Double_t pVtx, Int_t FlagPid, Double_t charge); ClassDef(AliAnalysisNucleiMass, 1); }; -- 2.43.5