#include "AliESDfriendTrack.h"
#include "AliESDfriend.h"
#include "AliESDtrackCuts.h"
+#include "AliESDpid.h"
#include "AliPerfAnalyzeInvPt.h"
#include "AliPerformancePtCalib.h"
//options for cuts
fOptTPC(0),
fESDcuts(0),
+ fPions(0),
fEtaAcceptance(0),
fCutsRC(0),
fCutsMC(0),
fHistTPCMomentaPosPt(0),
fHistTPCMomentaNegPt(0),
fHistUserPtShift(0),
-
+ fHistdedxPions(0),
//esd track cuts
fESDTrackCuts(0),
+ //pid
+ fESDpid(0),
// analysis folder
fAnalysisFolder(0)
{
//options for cuts
fOptTPC = kTRUE; // read TPC tracks yes/no
fESDcuts = kFALSE;
+ fPions = kFALSE;
fCutsRC = NULL;
fCutsMC = NULL;
//options for cuts
fOptTPC(0),
fESDcuts(0),
+ fPions(0),
fEtaAcceptance(0),
fCutsRC(0),
fCutsMC(0),
fHistTPCMomentaPosPt(0),
fHistTPCMomentaNegPt(0),
fHistUserPtShift(0),
- //esd track cuts
+ fHistdedxPions(0),
+ //esd track cuts
fESDTrackCuts(0),
+ //pid
+ fESDpid(0),
// analysis folder
fAnalysisFolder(0)
//options for cuts
fOptTPC = kTRUE; // read TPC tracks yes/no
fESDcuts = kFALSE;
+ fPions = kFALSE;
fCutsRC = NULL;
fCutsMC = NULL;
if(fHistTPCMomentaPosPt) delete fHistTPCMomentaPosPt;fHistTPCMomentaPosPt=0;
if(fHistTPCMomentaNegPt) delete fHistTPCMomentaNegPt ;fHistTPCMomentaNegPt=0;
if(fHistUserPtShift) delete fHistUserPtShift;fHistUserPtShift=0;
- //esd track cuts
+ //esd track cuts
if(fESDTrackCuts) delete fESDTrackCuts;
+ //pid
+ if(fESDpid) delete fESDpid;fESDpid=0;
//analysis folder
if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;
}
//user pt shift check
fHistUserPtShift = new TH1F("fHistUserPtShift","user defined shift in 1/pt",100,-0.5,1.5);
fList->Add(fHistUserPtShift);
+ //pid by dedx
+ fHistdedxPions = new TH2F ("fHistdedxPions","dEdx of pions ident. via kPID vs signed Pt",300,-15.05,15.05,200,0.0,400.0);
+ fList->Add(fHistdedxPions);
+ //pid
+ fESDpid = NULL;
-
// esd track cuts
fESDTrackCuts =NULL;
}
if(fabs(tpcTrack->Eta())>= fEtaAcceptance) continue;
Double_t signedPt = tpcTrack->GetSignedPt();
+
+ // pid
+ if(fPions){
+ fESDpid= new AliESDpid();
+ fESDpid->GetTPCResponse().SetBetheBlochParameters(0.0283086,2.63394e+01,5.04114e-11, 2.12543e+00,4.88663e+00);
+
+ if( TMath::Abs(fESDpid->NumberOfSigmasTPC(esdTrack,AliPID::kPion)) >1) continue;
+ fHistdedxPions->Fill(signedPt,esdTrack->GetTPCsignal());
+ }
+
Double_t invPt = 0.0;
if(signedPt) {
invPt = 1.0/signedPt;
fHistTPCMomentaNegP->Add(entry->fHistTPCMomentaNegP);
fHistTPCMomentaPosPt->Add(entry->fHistTPCMomentaPosPt);
fHistTPCMomentaNegPt->Add(entry->fHistTPCMomentaNegPt);
-
+ fHistdedxPions->Add(entry->fHistdedxPions);
count++;
}
class AliMCInfoCuts;
class AliRecInfoCuts;
class AliESDtrackCuts;
-
+class AliESDpid;
#include "THnSparse.h"
#include "AliPerformanceObject.h"
void SetAliESDtrackCuts( AliESDtrackCuts* esdTrackCuts) { fESDTrackCuts = esdTrackCuts;fESDcuts=kTRUE;}//esd track cuts
-
+ void SetAnalysePions(const Bool_t anaPions) {fPions = anaPions;}
void SetPtShift(const Double_t shiftVal); // set user defined shift in charge/pt
// setters for analysis with AliPerformancePtCalib::Analyse()
//options for cuts
Bool_t fOptTPC;// flag for reading of TPC tracks in Exec
Bool_t fESDcuts;//flag for usage of esd track cuts
+ Bool_t fPions;// flag for analzsing pions instead of all charged particles
//ESD track cut values
Double_t fEtaAcceptance;//sets value of eta window
TH1F *fHistUserPtShift;// shows the shift value if set by user
+ TH2F *fHistdedxPions;// dEdx vs cahrge*pt
AliESDtrackCuts* fESDTrackCuts;// esd track cuts
+ //pid
+ AliESDpid *fESDpid;
// analysis folder
TFolder *fAnalysisFolder; // folder for analysed histograms