//-------------------------------------------------------------------------
#include <TObject.h>
+#include "AliPID.h"
class AliTPCdEdxInfo;
AliAODPid(const AliAODPid& pid);
AliAODPid& operator=(const AliAODPid& pid);
- enum{kSPECIES=5, kTRDnPlanes=6};
+ enum{kTRDnPlanes=6};
//setters
void SetITSsignal(Double_t its) {fITSsignal=its;}
void SetITSdEdxSamples(const Double_t s[4]);
void SetTPCsignal(Double_t tpc) {fTPCsignal=tpc;}
- void SetTPCsignalN(UShort_t tpcN) {fTPCsignalN=tpcN;}
+ void SetTPCsignalN(UShort_t tpcN) {fTPCsignalN=(UChar_t)((tpcN<160)?tpcN:160);}
void SetTPCmomentum(Double_t tpcMom) {fTPCmomentum=tpcMom;}
- void SetTPCdEdxInfo(AliTPCdEdxInfo * dEdxInfo);
- inline void SetTRDsignal(Int_t nslices, const Double_t * const trdslices);
+ void SetTPCTgl(Double_t tpcTgl) {fTPCTgl=tpcTgl;}
+ void SetTPCdEdxInfo(AliTPCdEdxInfo * dEdxInfo);
+ void SetTRDslices(Int_t nslices, const Double_t * const trdslices);
+ void SetTRDsignal(Double_t sig) {fTRDsignal = sig;}
void SetTRDmomentum(Int_t nplane, Float_t trdMom) {fTRDmomentum[nplane]=trdMom;}
- inline void SetTRDncls(UChar_t ncls, Int_t layer = -1);
+ void SetTRDncls(UChar_t ncls, Int_t layer = -1);
void SetTRDntrackletsPID(UChar_t ntls) {fTRDntls = ntls;}
+ void SetTRDChi2(Double_t chi2) {fTRDChi2 = chi2;}
void SetTOFsignal(Double_t tof) {fTOFesdsignal=tof;}
void SetTOFpidResolution(Double_t tofPIDres[5]);
void SetIntegratedTimes(Double_t timeint[5]);
- void SetHMPIDsignal(Double_t hmpid) {fHMPIDsignal=hmpid;}
- void SetHMPIDprobs(Double_t hmpPid[5]);
- void SetEMCALPosition(Double_t emcalpos[3]);
- void SetEMCALMomentum(Double_t emcalmom[3]);
Double_t GetITSsignal() const {return fITSsignal;}
void GetITSdEdxSamples(Double_t *s) const;
else return 0.;
}
Double_t GetTPCsignal() const {return fTPCsignal;}
- UShort_t GetTPCsignalN() const {return fTPCsignalN;}
+ UShort_t GetTPCsignalN() const {return (UShort_t)fTPCsignalN;}
AliTPCdEdxInfo * GetTPCdEdxInfo()const{return fTPCdEdxInfo;}
Double_t GetTPCmomentum() const {return fTPCmomentum;}
- Int_t GetTRDnSlices() const {return fTRDnSlices;}
- Double_t* GetTRDsignal() const {return fTRDslices;}
- const Float_t* GetTRDmomentum() const {return fTRDmomentum;}
+ Double_t GetTPCTgl() const {return fTPCTgl;}
+ Int_t GetTRDnSlices() const {return fTRDnSlices/6;}
+ Double_t GetTRDsignal() const {return fTRDsignal;}
+ Double_t* GetTRDslices() const {return fTRDslices;}
+ Double_t GetTRDChi2() const {return fTRDChi2;}
+ const Double_t* GetTRDmomentum() const {return fTRDmomentum;}
UChar_t GetTRDncls(UChar_t layer) const { if(layer > 5) return 0; return fTRDncls[layer];}
- inline UChar_t GetTRDncls() const;
+ UChar_t GetTRDncls() const;
UChar_t GetTRDntrackletsPID() const {return fTRDntls;}
Double_t GetTOFsignal() const {return fTOFesdsignal;}
- Double_t GetHMPIDsignal() const {return fHMPIDsignal;}
- void GetHMPIDprobs(Double_t *p) const;
- void GetIntegratedTimes(Double_t timeint[5]) const;
- void GetEMCALPosition (Double_t emcalpos[3]) const;
- void GetEMCALMomentum (Double_t emcalmom[3]) const;
+ void GetIntegratedTimes(Double_t *timeint, Int_t nspec=AliPID::kSPECIES) const;
void GetTOFpidResolution (Double_t tofRes[5]) const;
private :
Double32_t fITSsignal; //[0.,0.,10] detector raw signal
Double32_t fITSdEdxSamples[4];//[0.,0.,10] ITS dE/dx samples
+
Double32_t fTPCsignal; //[0.,0.,10] detector raw signal
- UShort_t fTPCsignalN; // number of points used for TPC dE/dx
- Double_t fTPCmomentum; // momentum at the inner wall of TPC;
- Int_t fTRDnSlices; // N slices used for PID in the TRD
+ UChar_t fTPCsignalN; // number of points used for TPC dE/dx
+ Double32_t fTPCmomentum; //[0.,0.,20] momentum at the inner wall of TPC;
+ Double32_t fTPCTgl; //[0.,0.,10] track momentum dip angle at the inner wall of TPC;
+
+ Int_t fTRDnSlices; // N slices used for PID in the TRD (as number of slices per tracklet * number of layers)
UChar_t fTRDntls; // number of tracklets used for PID calculation
UChar_t fTRDncls[6]; // number of clusters used for dE/dx calculation
- Double32_t* fTRDslices; //[fTRDnSlices]
- Float_t fTRDmomentum[6]; // momentum at the TRD layers
- Double32_t fTOFesdsignal; // TOF signal - t0 (T0 interaction time)
- Double32_t fTOFpidResolution[5]; // TOF pid resolution for each mass hypotesys
- Double32_t fIntTime[5]; // track time hypothesis
- Double32_t fHMPIDsignal; // detector raw signal
- Double32_t fHMPIDprobs[5]; // detector pid probabilities
- Double32_t fEMCALPosition[3]; // global position of track
- // extrapolated to EMCAL surface
- Double32_t fEMCALMomentum[3]; // momentum of track
- // extrapolated to EMCAL surface
+ Double32_t* fTRDslices; //[fTRDnSlices][0.,0.,10]
+ Double32_t fTRDsignal; //[0.,0.,10] TRD signal
+ Double32_t fTRDmomentum[6]; //[0.,0.,10] momentum at the TRD layers
+ Double32_t fTRDChi2; //[0.,0.,10] TRD chi2
+
+ Double32_t fTOFesdsignal; //[0.,0.,20] TOF signal - t0 (T0 interaction time)
+ Double32_t fTOFpidResolution[5]; //[0.,0.,20] TOF pid resolution for each mass hypotesys
+ Double32_t fIntTime[5]; //[0.,0.,20] track time hypothesis
+
AliTPCdEdxInfo * fTPCdEdxInfo; // object containing dE/dx information for different pad regions
- ClassDef(AliAODPid, 9);
+ ClassDef(AliAODPid, 15);
};
//_____________________________________________________________
-void AliAODPid::SetTRDsignal(Int_t nslices, const Double_t * const trdslices) {
+inline void AliAODPid::SetTRDslices(Int_t nslices, const Double_t * const trdslices) {
//
// Set TRD dE/dx slices and the number of dE/dx slices per track
//
}
//_____________________________________________________________
-void AliAODPid::SetTRDncls(UChar_t ncls, Int_t layer) {
+inline void AliAODPid::SetTRDncls(UChar_t ncls, Int_t layer) {
//
// Set the number of clusters / tracklet
// If no layer is specified the full number of clusters will be put in layer 0
}
//_____________________________________________________________
-UChar_t AliAODPid::GetTRDncls() const{
+inline UChar_t AliAODPid::GetTRDncls() const {
//
// Get number of clusters per track
// Calculated as sum of the number of clusters per tracklet