Transient pointer of ESDtrack back to the event introduced.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 20 Jan 2010 17:58:03 +0000 (17:58 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 20 Jan 2010 17:58:03 +0000 (17:58 +0000)
ANALYSIS/AliAnalysisTaskESDfilter.cxx
ANALYSIS/AliESDpidCuts.cxx
ANALYSIS/AliESDpidCuts.h
STEER/AliESDtrack.cxx
STEER/AliESDtrack.h

index d8a72a1..d749766 100644 (file)
@@ -139,6 +139,8 @@ void AliAnalysisTaskESDfilter::ConvertESDtoAOD() {
     // loop over events and fill them\r
     // Multiplicity information needed by the header (to be revised!)\r
     Int_t nTracks    = esd->GetNumberOfTracks();\r
+    for (Int_t iTrack=0; iTrack<nTracks; ++iTrack) esd->GetTrack(iTrack)->SetESDEvent(esd);\r
+\r
     //    if (fDebug > 0) printf("-------------------Bo: Number of ESD tracks %d \n",nTracks);\r
 \r
     Int_t nPosTracks = 0;\r
@@ -744,7 +746,6 @@ void AliAnalysisTaskESDfilter::ConvertESDtoAOD() {
                                                          selectInfo);\r
            aodTrack->SetTPCClusterMap(esdV0Pos->GetTPCClusterMap());\r
            aodTrack->SetTPCSharedMap (esdV0Pos->GetTPCSharedMap());\r
-\r
            aodTrackRefs->AddAt(aodTrack,posFromV0);\r
            //      if (fDebug > 0) printf("-------------------Bo: pos track from original pt %.3f \n",aodTrack->Pt());\r
            if (esdV0Pos->GetSign() > 0) nPosTracks++;\r
index 72b9aaf..0dddcc9 100644 (file)
@@ -103,21 +103,21 @@ AliESDpidCuts::~AliESDpidCuts(){
 }
 
 //_____________________________________________________________________
-Bool_t AliESDpidCuts::IsSelected(TList *lst){
+Bool_t AliESDpidCuts::IsSelected(TObject *obj){
   //
   // Select Track
   // 
-  AliESDtrack * trk = dynamic_cast<AliESDtrack*>(lst->At(0));
+  AliESDtrack * trk = dynamic_cast<AliESDtrack*>(obj);
   if(!trk){
     AliError("Provided object is not AliESDtrack!");
     return kFALSE;
   }
-  AliESDEvent * evt = dynamic_cast<AliESDEvent*>(lst->At(1));
+  AliESDEvent* evt = trk->GetESDEvent();
   if(!evt){
     AliError("No AliESDEvent!");
     return kFALSE;
   }
-  return AcceptTrack(trk,evt);
+  return AcceptTrack(trk, evt);
 }
 
 //_____________________________________________________________________
index 239ea7a..e5803fd 100644 (file)
@@ -35,8 +35,8 @@ class AliESDpidCuts : public AliAnalysisCuts{
     void DefineHistograms(Color_t color = kRed);
     void DrawHistograms();
     void SaveHistograms(const Char_t *location = NULL);
-    virtual Bool_t IsSelected(TObject *){ return kTRUE; }
-    virtual Bool_t IsSelected(TList * lst);
+    virtual Bool_t IsSelected(TObject *);
+    virtual Bool_t IsSelected(TList * /*lst*/) {return kTRUE; }
     virtual Bool_t AcceptTrack(const AliESDtrack *track, const AliESDEvent *event);
     
     void SetTPCclusterRatioCut(Float_t clr) { fCutTPCclusterRatio = clr; }
index 125ab6f..14714f4 100644 (file)
 
 #include "AliESDVertex.h"
 #include "AliESDtrack.h"
+#include "AliESDEvent.h"
 #include "AliKalmanTrack.h"
 #include "AliVTrack.h"
 #include "AliLog.h"
@@ -217,7 +218,8 @@ AliESDtrack::AliESDtrack() :
   fTRDntracklets(0),
   fTRDnSlices(0),
   fTRDslices(0x0),
-  fVertexID(-2) // -2 means an orphan track 
+  fVertexID(-2),// -2 means an orphan track 
+  fESDEvent(0)
 {
   //
   // The default ESD constructor 
@@ -308,7 +310,8 @@ AliESDtrack::AliESDtrack(const AliESDtrack& track):
   fTRDntracklets(track.fTRDntracklets),
   fTRDnSlices(track.fTRDnSlices),
   fTRDslices(0x0),
-  fVertexID(track.fVertexID)
+  fVertexID(track.fVertexID),
+  fESDEvent(track.fESDEvent)
 {
   //
   //copy constructor
@@ -412,7 +415,8 @@ AliESDtrack::AliESDtrack(const AliVTrack *track) :
   fTRDntracklets(0),
   fTRDnSlices(0),
   fTRDslices(0x0),
-  fVertexID(-2)  // -2 means an orphan track
+  fVertexID(-2),  // -2 means an orphan track
+  fESDEvent(0)  
 {
   //
   // ESD track from AliVTrack.
@@ -534,7 +538,8 @@ AliESDtrack::AliESDtrack(TParticle * part) :
   fTRDntracklets(0),
   fTRDnSlices(0),
   fTRDslices(0x0),
-  fVertexID(-2)  // -2 means an orphan track
+  fVertexID(-2),  // -2 means an orphan track
+  fESDEvent(0)
 {
   //
   // ESD track from TParticle
@@ -1698,7 +1703,7 @@ Double_t AliESDtrack::GetTRDmomentum(Int_t plane, Double_t *sp) const
 // in TRD layer "plane".
 
   if (!fTRDnSlices) {
-    //    AliError("No TRD info allocated for this track !");
+    AliError("No TRD info allocated for this track !");
     return -1.;
   }
   if ((plane<0) || (plane>=kTRDnPlanes)) {
index 2a1756f..5fae811 100644 (file)
@@ -35,6 +35,7 @@
 
 class TParticle;
 class AliESDVertex;
+class AliESDEvent;
 class AliKalmanTrack;
 class AliTrackPointArray;
 class TPolyMarker3D;
@@ -349,7 +350,9 @@ public:
   void GetImpactParameters(Float_t p[2], Float_t cov[3]) const {
     p[0]=fD; p[1]=fZ; cov[0]=fCdd; cov[1]=fCdz; cov[2]=fCzz;
   }
-  virtual void Print(Option_t * opt) const ; 
+  virtual void Print(Option_t * opt) const ;
+  AliESDEvent* GetESDEvent() const {return fESDEvent;}
+  void         SetESDEvent(AliESDEvent* evt) {fESDEvent = evt;}  
   //
   // visualization (M. Ivanov)
   //
@@ -459,11 +462,12 @@ protected:
 
   Char_t  fTRDTimBin[kTRDnPlanes];   // Time bin of Max cluster from all six planes
   Char_t  fVertexID; // ID of the primary vertex this track belongs to
-
+  AliESDEvent*   fESDEvent; //!Pointer back to event to which the track belongs
+  
  private:
 
   AliESDtrack & operator=(const AliESDtrack & );
-  ClassDef(AliESDtrack,53)  //ESDtrack 
+  ClassDef(AliESDtrack,54)  //ESDtrack 
 };