new data members added to AliAODtrack and AliAODPid: http://savannah.cern.ch/task...
authorshahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 21 Aug 2012 22:42:27 +0000 (22:42 +0000)
committershahoian <shahoian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 21 Aug 2012 22:42:27 +0000 (22:42 +0000)
ANALYSIS/AliAnalysisTaskESDfilter.cxx
STEER/AOD/AliAODPid.cxx
STEER/AOD/AliAODPid.h
STEER/AOD/AliAODTrack.cxx
STEER/AOD/AliAODTrack.h

index 7ef9922..4dac86a 100644 (file)
@@ -556,6 +556,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
            aodTrack->SetTPCSharedMap (esdCascadeBach->GetTPCSharedMap());
            aodTrack->SetChi2perNDF(Chi2perNDF(esdCascadeBach));
            aodTrack->SetTPCPointsF(esdCascadeBach->GetTPCNclsF());
+           aodTrack->SetTPCNCrossedRows(UShort_t(esdCascadeBach->GetTPCCrossedRows()));
            fAODTrackRefs->AddAt(aodTrack,idxBachFromCascade);
            
            if (esdCascadeBach->GetSign() > 0) ++fNumberOfPositiveTracks;
@@ -641,6 +642,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
         aodTrack->SetTPCSharedMap (esdCascadePos->GetTPCSharedMap());
         aodTrack->SetChi2perNDF(Chi2perNDF(esdCascadePos));
        aodTrack->SetTPCPointsF(esdCascadePos->GetTPCNclsF());
+       aodTrack->SetTPCNCrossedRows(UShort_t(esdCascadePos->GetTPCCrossedRows()));
         fAODTrackRefs->AddAt(aodTrack,idxPosFromV0Dghter);
         
         if (esdCascadePos->GetSign() > 0) ++fNumberOfPositiveTracks;
@@ -688,6 +690,7 @@ void AliAnalysisTaskESDfilter::ConvertCascades(const AliESDEvent& esd)
         aodTrack->SetTPCSharedMap (esdCascadeNeg->GetTPCSharedMap());
         aodTrack->SetChi2perNDF(Chi2perNDF(esdCascadeNeg));
        aodTrack->SetTPCPointsF(esdCascadeNeg->GetTPCNclsF());
+       aodTrack->SetTPCNCrossedRows(UShort_t(esdCascadeNeg->GetTPCCrossedRows()));
         fAODTrackRefs->AddAt(aodTrack,idxNegFromV0Dghter);
         
         if (esdCascadeNeg->GetSign() > 0) ++fNumberOfPositiveTracks;
@@ -931,6 +934,7 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
            aodTrack->SetTPCSharedMap (esdV0Pos->GetTPCSharedMap());
            aodTrack->SetChi2perNDF(Chi2perNDF(esdV0Pos));
            aodTrack->SetTPCPointsF(esdV0Pos->GetTPCNclsF());
+           aodTrack->SetTPCNCrossedRows(UShort_t(esdV0Pos->GetTPCCrossedRows()));
            fAODTrackRefs->AddAt(aodTrack,posFromV0);
            //      if (fDebug > 0) printf("-------------------Bo: pos track from original pt %.3f \n",aodTrack->Pt());
            if (esdV0Pos->GetSign() > 0) ++fNumberOfPositiveTracks;
@@ -976,6 +980,7 @@ void AliAnalysisTaskESDfilter::ConvertV0s(const AliESDEvent& esd)
            aodTrack->SetTPCSharedMap (esdV0Neg->GetTPCSharedMap());
            aodTrack->SetChi2perNDF(Chi2perNDF(esdV0Neg));
            aodTrack->SetTPCPointsF(esdV0Neg->GetTPCNclsF());
+           aodTrack->SetTPCNCrossedRows(UShort_t(esdV0Neg->GetTPCCrossedRows()));
            
            fAODTrackRefs->AddAt(aodTrack,negFromV0);
            //      if (fDebug > 0) printf("-------------------Bo: neg track from original pt %.3f \n",aodTrack->Pt());
@@ -1184,6 +1189,7 @@ void AliAnalysisTaskESDfilter::ConvertTPCOnlyTracks(const AliESDEvent& esd)
 
     aodTrack->SetFlags(track->GetStatus());
     aodTrack->SetTPCPointsF(track->GetTPCNclsF());
+    aodTrack->SetTPCNCrossedRows(UShort_t(track->GetTPCCrossedRows()));
 
     //Perform progagation of tracks if needed
     if(fDoPropagateTrackToEMCal) PropagateTrackToEMCal(esdTrack);
@@ -1330,6 +1336,7 @@ void AliAnalysisTaskESDfilter::ConvertGlobalConstrainedTracks(const AliESDEvent&
 
     aodTrack->SetFlags(esdTrack->GetStatus());
     aodTrack->SetTPCPointsF(esdTrack->GetTPCNclsF());
+    aodTrack->SetTPCNCrossedRows(UShort_t(esdTrack->GetTPCCrossedRows()));
 
     if(isHybridGC){
       // only copy AOD information for hybrid, no duplicate information
@@ -1403,6 +1410,7 @@ void AliAnalysisTaskESDfilter::ConvertTracks(const AliESDEvent& esd)
     aodTrack->SetTPCSharedMap (esdTrack->GetTPCSharedMap());
     aodTrack->SetChi2perNDF(Chi2perNDF(esdTrack));
     aodTrack->SetTPCPointsF(esdTrack->GetTPCNclsF());
+    aodTrack->SetTPCNCrossedRows(UShort_t(esdTrack->GetTPCCrossedRows()));
     if(esdTrack->IsEMCAL()) aodTrack->SetEMCALcluster(esdTrack->GetEMCALcluster());
     if(esdTrack->IsPHOS())  aodTrack->SetPHOScluster(esdTrack->GetPHOScluster());
 
@@ -1782,6 +1790,7 @@ void AliAnalysisTaskESDfilter::ConvertKinks(const AliESDEvent& esd)
             mother->SetTPCSharedMap (esdTrackM->GetTPCSharedMap());
             mother->SetChi2perNDF(Chi2perNDF(esdTrackM));
             mother->SetTPCPointsF(esdTrackM->GetTPCNclsF());
+           mother->SetTPCNCrossedRows(UShort_t(esdTrackM->GetTPCCrossedRows()));
 
             fAODTrackRefs->AddAt(mother, imother);
             
@@ -1846,6 +1855,7 @@ void AliAnalysisTaskESDfilter::ConvertKinks(const AliESDEvent& esd)
             daughter->SetTPCClusterMap(esdTrackD->GetTPCClusterMap());
             daughter->SetTPCSharedMap (esdTrackD->GetTPCSharedMap());
            daughter->SetTPCPointsF(esdTrackD->GetTPCNclsF());
+           daughter->SetTPCNCrossedRows(UShort_t(esdTrackD->GetTPCCrossedRows()));
             fAODTrackRefs->AddAt(daughter, idaughter);
             
             if (esdTrackD->GetSign() > 0) ++fNumberOfPositiveTracks;
@@ -2356,6 +2366,8 @@ void AliAnalysisTaskESDfilter::SetDetectorRawSignals(AliAODPid *aodpid, AliESDtr
  aodpid->SetTRDncls(track->GetTRDncls());
  aodpid->SetTRDntrackletsPID(track->GetTRDntrackletsPID());
  
+ aodpid->SetTRDChi2(track->GetTRDchi2());
+
  //TOF PID  
  Double_t times[AliAODPid::kSPECIES]; track->GetIntegratedTimes(times);
  aodpid->SetIntegratedTimes(times);
index 0959b8c..81a3857 100644 (file)
@@ -38,6 +38,7 @@ AliAODPid::AliAODPid():
     fTRDnSlices(0),
     fTRDntls(0),
     fTRDslices(0x0),
+    fTRDChi2(0x0),
     fTOFesdsignal(0),
     fTPCdEdxInfo(0)
 {
@@ -71,6 +72,7 @@ AliAODPid::AliAODPid(const AliAODPid& pid) :
   fTRDnSlices(pid.fTRDnSlices),
   fTRDntls(pid.fTRDntls),
   fTRDslices(0x0),
+  fTRDChi2(pid.fTRDChi2),
   fTOFesdsignal(pid.fTOFesdsignal),
   fTPCdEdxInfo(0x0)
 {
@@ -122,6 +124,8 @@ AliAODPid& AliAODPid::operator=(const AliAODPid& pid)
        fTRDncls[i]     = pid.fTRDncls[i];
     }
 
+    fTRDChi2 = pid.fTRDChi2;
+
     fTOFesdsignal=pid.fTOFesdsignal;
     for (Int_t i = 0; i < 5; i++) fTOFpidResolution[i]=pid.fTOFpidResolution[i];
     for (Int_t i = 0; i < 5; i++) fIntTime[i]=pid.fIntTime[i];
index 2f54c6f..3879b17 100644 (file)
@@ -35,6 +35,7 @@ class AliAODPid : public TObject {
   void      SetTRDmomentum(Int_t nplane, Float_t trdMom)       {fTRDmomentum[nplane]=trdMom;}
   inline 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]);
@@ -52,6 +53,7 @@ class AliAODPid : public TObject {
   Double_t  GetTPCmomentum()     const {return  fTPCmomentum;}
   Int_t     GetTRDnSlices()      const {return  fTRDnSlices;}
   Double_t* GetTRDsignal()       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;
@@ -74,6 +76,7 @@ class AliAODPid : public TObject {
   UChar_t     fTRDncls[6];       // number of clusters used for dE/dx calculation
   Double32_t* fTRDslices;        //[fTRDnSlices][0.,0.,10]
   Double32_t  fTRDmomentum[6];   //[0.,0.,10]  momentum at the TRD layers
+  Double32_t  fTRDChi2;          //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 
@@ -81,7 +84,7 @@ class AliAODPid : public TObject {
  
   AliTPCdEdxInfo * fTPCdEdxInfo; // object containing dE/dx information for different pad regions
 
-  ClassDef(AliAODPid, 11);
+  ClassDef(AliAODPid, 12);
 };
 
 //_____________________________________________________________
index 72bccf9..b24d177 100644 (file)
@@ -46,6 +46,7 @@ AliAODTrack::AliAODTrack() :
   fTPCClusterMap(),
   fTPCSharedMap(),
   fTPCnclsF(0),
+  fTPCNCrossedRows(0),
   fID(-999),
   fCharge(-99),
   fType(kUndef),
@@ -98,6 +99,7 @@ AliAODTrack::AliAODTrack(Short_t id,
   fTPCClusterMap(),
   fTPCSharedMap(),
   fTPCnclsF(0),
+  fTPCNCrossedRows(0),
   fID(id),
   fCharge(charge),
   fType(ttype),
@@ -154,6 +156,7 @@ AliAODTrack::AliAODTrack(Short_t id,
   fTPCClusterMap(),
   fTPCSharedMap(),
   fTPCnclsF(0),
+  fTPCNCrossedRows(0),
   fID(id),
   fCharge(charge),
   fType(ttype),
@@ -204,6 +207,7 @@ AliAODTrack::AliAODTrack(const AliAODTrack& trk) :
   fTPCClusterMap(trk.fTPCClusterMap),
   fTPCSharedMap(trk.fTPCSharedMap),
   fTPCnclsF(trk.fTPCnclsF),
+  fTPCNCrossedRows(trk.fTPCNCrossedRows),
   fID(trk.fID),
   fCharge(trk.fCharge),
   fType(trk.fType),
@@ -255,6 +259,7 @@ AliAODTrack& AliAODTrack::operator=(const AliAODTrack& trk)
     fTPCClusterMap     = trk.fTPCClusterMap;
     fTPCSharedMap      = trk.fTPCSharedMap;
     fTPCnclsF          = trk.fTPCnclsF;
+    fTPCNCrossedRows   = trk.fTPCNCrossedRows;
     fID                = trk.fID;
     fCharge            = trk.fCharge;
     fType              = trk.fType;
index 8f4f1e1..0903045 100644 (file)
@@ -252,8 +252,11 @@ class AliAODTrack : public AliVTrack {
   void    SetTPCSharedMap(const TBits amap) {fTPCSharedMap = amap;}
   void    SetTPCFitMap(const TBits amap) {fTPCFitMap = amap;}
   void    SetTPCPointsF(UShort_t  findable){fTPCnclsF = findable;}
+  void    SetTPCNCrossedRows(UInt_t n)     {fTPCNCrossedRows = n;}
 
   UShort_t GetTPCNclsF() const { return fTPCnclsF;}
+  UShort_t GetTPCNCrossedRows()  const { return fTPCNCrossedRows;}
+  Float_t  GetTPCFoundFraction() const { return fTPCNCrossedRows>0 ? float(GetTPCNcls())/fTPCNCrossedRows : 0;}
 
   // Calorimeter Cluster
   Int_t GetEMCALcluster() const {return fCaloIndex;}
@@ -282,6 +285,7 @@ class AliAODTrack : public AliVTrack {
   void      GetIntegratedTimes(Double_t *times) const {if (fDetPid) fDetPid->GetIntegratedTimes(times); }
   Double_t  GetTRDslice(Int_t plane, Int_t slice) const;
   Double_t  GetTRDmomentum(Int_t plane, Double_t */*sp*/=0x0) const;
+  Double_t  GetTRDChi2()                 const {return fDetPid ? fDetPid->GetTRDChi2() : -1;}
   UChar_t   GetTRDncls(Int_t layer = -1) const;
   UChar_t   GetTRDntrackletsPID() const;
   Int_t     GetNumberOfTRDslices() const { return fDetPid?fDetPid->GetTRDnSlices():0; }
@@ -398,6 +402,7 @@ class AliAODTrack : public AliVTrack {
   TBits         fTPCSharedMap;      // Map of clusters, one bit per padrow; 1 if has a shared cluster on given padrow
 
   UShort_t      fTPCnclsF;          // findable clusters
+  UShort_t      fTPCNCrossedRows;   // n crossed rows
 
   Short_t       fID;                // unique track ID, points back to the ESD track
 
@@ -418,7 +423,7 @@ class AliAODTrack : public AliVTrack {
 
   const AliAODEvent* fAODEvent;     //! 
 
-  ClassDef(AliAODTrack, 18);
+  ClassDef(AliAODTrack, 19);
 };
 
 inline Bool_t  AliAODTrack::IsPrimaryCandidate() const