Common base class for TRD tracks in ESD and AOD (Jochen)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 Dec 2012 13:42:47 +0000 (13:42 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 Dec 2012 13:42:47 +0000 (13:42 +0000)
STEER/CMakelibSTEERBase.pkg
STEER/ESD/AliESDTrdTrack.cxx
STEER/ESD/AliESDTrdTrack.h
STEER/STEERBase/AliVTrdTrack.cxx [new file with mode: 0644]
STEER/STEERBase/AliVTrdTrack.h [new file with mode: 0644]
STEER/STEERBaseLinkDef.h

index 4ded453..369812a 100644 (file)
@@ -85,6 +85,7 @@ set ( SRCS
     STEERBase/AliTOFHeader.cxx
     STEERBase/AliVCaloTrigger.cxx
     STEERBase/AliProdInfo.cxx
+    STEERBase/AliVTrdTrack.cxx
   )
 
 string(REPLACE ".cxx" ".h" HDRS  "${SRCS}")
index 60fe019..24665b6 100644 (file)
@@ -31,7 +31,7 @@ ClassImp(AliESDTrdTrack)
 
 //_____________________________________________________________________________
 AliESDTrdTrack::AliESDTrdTrack():
-  TObject(),
+  AliVTrdTrack(),
   fSector(-1),
   fStack(-1),
   fA(0),
@@ -54,7 +54,7 @@ AliESDTrdTrack::AliESDTrdTrack():
 }
 
 AliESDTrdTrack::AliESDTrdTrack(const AliESDTrdTrack& track):
-  TObject(track),
+  AliVTrdTrack(track),
   fSector(track.fSector),
   fStack(track.fStack),
   fA(track.fA),
@@ -89,7 +89,7 @@ AliESDTrdTrack& AliESDTrdTrack::operator=(const AliESDTrdTrack& track)
 
   if (this == &track)
     return *this;
-  TObject::operator=(track);
+  AliVTrdTrack::operator=(track);
   fSector       = track.fSector;
   fStack        = track.fStack;
   fA            = track.fA;
index 67ec577..751270b 100644 (file)
@@ -6,14 +6,13 @@
 // Global Tracking Unit, used for the TRD L1 trigger
 // Author: Jochen Klein <jochen.klein@cern.ch>
 
-
-#include "TObject.h"
 #include "TRef.h"
 
+#include "AliVTrdTrack.h"
 #include "AliESDTrdTracklet.h"
 #include "AliESDtrack.h"
 
-class AliESDTrdTrack : public TObject {
+class AliESDTrdTrack : public AliVTrdTrack {
 
  public:
 
@@ -47,7 +46,7 @@ class AliESDTrdTrack : public TObject {
 
   AliESDTrdTracklet* GetTracklet(Int_t idx) const
     { return (GetLayerMask() & (1<<idx)) ? (AliESDTrdTracklet*) ((fTrackletRefs[idx]).GetObject()) : 0x0; }
-  AliESDtrack* GetTrackMatch() const { return (AliESDtrack*) fTrackMatch.GetObject(); }
+  AliVTrack* GetTrackMatch() const { return (AliVTrack*) fTrackMatch.GetObject(); }
 
   void SetA(Int_t a)            { fA = a; }
   void SetB(Int_t b)            { fB = b; }
@@ -64,7 +63,7 @@ class AliESDTrdTrack : public TObject {
   void SetTrackletIndex(const Char_t idx, const Int_t layer) { fTrackletIndex[layer] = idx; }
 
   void AddTrackletReference(AliESDTrdTracklet* trkl, Int_t layer) { fTrackletRefs[layer] = trkl; }
-  void SetTrackMatchReference(AliESDtrack *trk) { fTrackMatch = trk; }
+  void SetTrackMatchReference(AliVTrack *trk) { fTrackMatch = trk; }
 
   Bool_t IsSortable() const  { return kTRUE; }
   Int_t Compare(const TObject* obj) const;
@@ -73,8 +72,6 @@ class AliESDTrdTrack : public TObject {
 
   void AppendBits(ULong64_t &word, Int_t nBits, Int_t val) const { word = (word << nBits) | (val & ~(~0 << nBits)); }
 
-  static const Int_t fgkNlayers = 6;      // number of TRD layers
-
   Int_t    fSector;                      // sector in which the track was found
   Char_t   fStack;                       // stack in which the track was found
                                          // (unique because of stack-wise tracking)
@@ -96,7 +93,7 @@ class AliESDTrdTrack : public TObject {
 
   Int_t fLabel;                                  // Track label
 
-  ClassDef(AliESDTrdTrack,6)
+  ClassDef(AliESDTrdTrack,7)
 };
 
 #endif
diff --git a/STEER/STEERBase/AliVTrdTrack.cxx b/STEER/STEERBase/AliVTrdTrack.cxx
new file mode 100644 (file)
index 0000000..da6b19f
--- /dev/null
@@ -0,0 +1,32 @@
+#include "AliVTrdTrack.h"
+
+AliVTrdTrack::AliVTrdTrack() :
+  TObject()
+{
+  // default constructor
+
+}
+
+AliVTrdTrack::AliVTrdTrack(const AliVTrdTrack& rhs) :
+  TObject(rhs)
+{
+  // copy constructor
+
+}
+
+AliVTrdTrack& AliVTrdTrack::operator=(const AliVTrdTrack& rhs)
+{
+  // assignment operator
+
+  if (&rhs != this)
+    TObject::operator=(rhs);
+
+  return *this;
+}
+
+void AliVTrdTrack::Copy(TObject &rhs) const
+{
+  // copy
+
+  TObject::Copy(rhs);
+}
diff --git a/STEER/STEERBase/AliVTrdTrack.h b/STEER/STEERBase/AliVTrdTrack.h
new file mode 100644 (file)
index 0000000..19962c6
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef ALIVTRDTRACK_H
+#define ALIVTRDTRACK_H
+
+//
+// format for the TRD tracks calculated in the
+// Global Tracking Unit, used for the TRD L1 trigger
+// Author: Jochen Klein <jochen.klein@cern.ch>
+
+#include "TObject.h"
+
+class AliVTrack;
+
+class AliVTrdTrack : public TObject {
+ public:
+
+  AliVTrdTrack();
+  virtual ~AliVTrdTrack() {};
+  AliVTrdTrack(const AliVTrdTrack& track);
+  AliVTrdTrack& operator=(const AliVTrdTrack& track);
+  virtual void Copy(TObject &obj) const;
+
+  virtual Int_t GetA()         const = 0;
+  virtual Int_t GetLayerMask() const = 0;
+  virtual Int_t GetPID()       const = 0;
+  virtual Int_t GetPt()        const = 0;
+  virtual Int_t GetStack()     const = 0;
+  virtual Int_t GetSector()    const = 0;
+
+  virtual Bool_t GetTrackInTime() const = 0;
+
+  virtual Int_t GetLabel()     const = 0;
+
+  virtual Double_t Pt()        const = 0;
+
+  virtual AliVTrack* GetTrackMatch() const = 0;
+
+  virtual void SetA(Int_t a) = 0;
+  virtual void SetLayerMask(Int_t mask) = 0;
+  virtual void SetPID(Int_t pid) = 0;
+  virtual void SetLabel(Int_t label) = 0;
+  virtual void SetSector(Int_t sector) = 0;
+  virtual void SetStack(Int_t stack) = 0;
+
+  virtual Bool_t IsSortable() const = 0;
+  virtual Int_t Compare(const TObject* obj) const = 0;
+
+ protected:
+
+  static const Int_t fgkNlayers = 6;      // number of TRD layers
+
+  ClassDef(AliVTrdTrack,0)
+};
+
+#endif
index 76e9852..e5f8dfc 100644 (file)
 #pragma link C++ class AliTOFPIDParams+;
 #pragma link C++ class AliProdInfo+;
 
+#pragma link C++ class AliVTrdTrack+;
+
 #endif