Add number of points used for dE/dx in TPC to AliAODpid
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Oct 2010 11:49:25 +0000 (11:49 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Oct 2010 11:49:25 +0000 (11:49 +0000)
 https://savannah.cern.ch/bugs/?74184

 (M.v. Leeuwen)

ANALYSIS/AliAnalysisTaskESDfilter.cxx
STEER/AliAODPid.h
STEER/AliAODpidUtil.cxx
STEER/AliAODpidUtil.h

index 6bb3c9c..65d0fc8 100644 (file)
@@ -1304,6 +1304,7 @@ void AliAnalysisTaskESDfilter::SetDetectorRawSignals(AliAODPid *aodpid, AliESDtr
 \r
  aodpid->SetITSsignal(track->GetITSsignal());\r
  aodpid->SetTPCsignal(track->GetTPCsignal());\r
+ aodpid->SetTPCsignalN(track->GetTPCsignalN());\r
 \r
  //n TRD planes = 6\r
  Int_t nslices = track->GetNumberOfTRDslices()*6;\r
index 8d8bde7..37bf870 100644 (file)
@@ -25,6 +25,7 @@ class AliAODPid : public TObject {
  //setters
   void      SetITSsignal(Double_t its)                         {fITSsignal=its;}
   void      SetTPCsignal(Double_t tpc)                         {fTPCsignal=tpc;}
+  void      SetTPCsignalN(UShort_t tpcN)                       {fTPCsignalN=tpcN;}
   void      SetTPCmomentum(Double_t tpcMom)                    {fTPCmomentum=tpcMom;}
   void      SetTRDsignal(Int_t nslices, Double_t* trdslices)   {fTRDnSlices = nslices; fTRDslices=trdslices;}
   void      SetTRDmomentum(Int_t nplane, Float_t trdMom)       {fTRDmomentum[nplane]=trdMom;}
@@ -36,6 +37,7 @@ class AliAODPid : public TObject {
 
   Double_t  GetITSsignal()       const {return  fITSsignal;}
   Double_t  GetTPCsignal()       const {return  fTPCsignal;}
+  UShort_t  GetTPCsignalN()      const {return  fTPCsignalN;}
   Double_t  GetTPCmomentum()     const {return  fTPCmomentum;}
   Int_t     GetTRDnSlices()      const {return  fTRDnSlices;}
   Double_t* GetTRDsignal()       const {return  fTRDslices;}
@@ -50,6 +52,7 @@ class AliAODPid : public TObject {
  private :
   Double32_t  fITSsignal;        //[0.,0.,10] detector raw signal
   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
   Double32_t* fTRDslices;        //[fTRDnSlices]
@@ -62,7 +65,7 @@ class AliAODPid : public TObject {
   Double32_t  fEMCALMomentum[3]; // momentum of track
                                 // extrapolated to EMCAL surface
 
-  ClassDef(AliAODPid, 3);
+  ClassDef(AliAODPid, 4);
 };
 
 #endif
index 62cfe69..8e8b837 100644 (file)
@@ -72,11 +72,11 @@ void AliAODpidUtil::MakeTPCPID(AliAODTrack *track,Double_t *p) const
   //
 
   if ((track->GetStatus()&AliESDtrack::kTPCin )==0) return;
-  UShort_t nTPCClus=track->GetTPCNcls();
 
   Double_t mom = track->P();
   AliAODPid *pidObj = track->GetDetPid();
   if (pidObj) mom = pidObj->GetTPCmomentum();
+  UShort_t nTPCClus=pidObj->GetTPCsignalN();
    
   Double_t dedx=pidObj->GetTPCsignal(); 
   Bool_t mismatch=kTRUE;
index bdbc8b2..a6ced09 100644 (file)
@@ -56,9 +56,9 @@ private:
 
 inline Float_t AliAODpidUtil::NumberOfSigmasTPC(const AliAODTrack *track, AliPID::EParticleType type) const {
   
-  UShort_t nTPCClus=track->GetTPCNcls();
   Double_t mom = track->P();
   AliAODPid *pidObj = track->GetDetPid();
+  UShort_t nTPCClus=pidObj->GetTPCsignalN();
   if (pidObj)
     mom = pidObj->GetTPCmomentum();
   return fTPCResponse.GetNumberOfSigmas(mom,pidObj->GetTPCsignal(),nTPCClus,type);