#include "AliTrackPointArray.h"
#include "AliESDfriendTrack.h"
#include "AliKalmanTrack.h"
+#include "TObjArray.h"
ClassImp(AliESDfriendTrack)
AliESDfriendTrack::AliESDfriendTrack():
TObject(),
f1P(0),
-fPoints(0),
+fPoints(0),
+fCalibContainer(0),
fITStrack(0),
fTRDtrack(0)
{
TObject(t),
f1P(t.f1P),
fPoints(0),
+fCalibContainer(0),
fITStrack(0),
fTRDtrack(0)
{
for (i=0; i<kMaxTPCcluster; i++) fTPCindex[i]=t.fTPCindex[i];
for (i=0; i<kMaxTRDcluster; i++) fTRDindex[i]=t.fTRDindex[i];
if (t.fPoints) fPoints=new AliTrackPointArray(*t.fPoints);
+ if (t.fCalibContainer) fCalibContainer = new TObjArray(*(t.fCalibContainer));
}
AliESDfriendTrack::~AliESDfriendTrack() {
// Simple destructor
//
delete fPoints;
+ delete fCalibContainer;
delete fITStrack;
delete fTRDtrack;
}
+
+
+void AliESDfriendTrack::AddCalibObject(TObject * calibObject){
+ //
+ // add calibration object to array -
+ // track is owner of the objects in the container
+ //
+ if (!fCalibContainer) fCalibContainer = new TObjArray(5);
+ fCalibContainer->AddLast(calibObject);
+}
+
+TObject * AliESDfriendTrack::GetCalibObject(Int_t index){
+ //
+ //
+ //
+ if (!fCalibContainer) return 0;
+ if (index>=fCalibContainer->GetEntriesFast()) return 0;
+ return fCalibContainer->At(index);
+}
class AliTrackPointArray;
class AliKalmanTrack;
-
+class TObjArrray;
//_____________________________________________________________________________
class AliESDfriendTrack : public TObject {
public:
void SetTRDtrack(AliKalmanTrack *t) {fTRDtrack=t;}
AliKalmanTrack *GetTRDtrack() {return fTRDtrack;}
AliKalmanTrack *GetITStrack() {return fITStrack;}
-
+ void AddCalibObject(TObject * calibObject);
+ TObject * GetCalibObject(Int_t index);
protected:
Float_t f1P; // 1/P (1/(GeV/c))
Int_t fITSindex[kMaxITScluster]; // indices of the ITS clusters
Int_t fTPCindex[kMaxTPCcluster]; // indices of the TPC clusters
Int_t fTRDindex[kMaxTRDcluster]; // indices of the TRD clusters
AliTrackPointArray *fPoints;//Array of track space points in the global frame
-
+ TObjArray *fCalibContainer; //Array of objects for calibration
AliKalmanTrack *fITStrack; //! pointer to the ITS track (debug purposes)
AliKalmanTrack *fTRDtrack; //! pointer to the TRD track (debug purposes)
- ClassDef(AliESDfriendTrack,1) //ESD friend track
+ ClassDef(AliESDfriendTrack,2) //ESD friend track
};
#endif
delete fPoints;
}
+void AliESDtrack::AddCalibObject(TObject * object){
+ //
+ // add calib object to the list
+ //
+ if (!fFriendTrack) fFriendTrack = new AliESDfriendTrack;
+ fFriendTrack->AddCalibObject(object);
+}
+
+TObject * AliESDtrack::GetCalibObject(Int_t index){
+ //
+ // return calib objct at given position
+ //
+ if (!fFriendTrack) return 0;
+ return fFriendTrack->GetCalibObject(index);
+}
+
+
//_______________________________________________________________________
void AliESDtrack::MakeMiniESDtrack(){
// Resets everything except
void SetFriendTrack(const AliESDfriendTrack *t) {
delete fFriendTrack; fFriendTrack=new AliESDfriendTrack(*t);
}
+ void AddCalibObject(TObject * object); // add calib object to the list
+ TObject * GetCalibObject(Int_t index); // return calib objct at given position
void MakeMiniESDtrack();
void SetID(Int_t id) { fID =id;}
Int_t GetID() const { return fID;}
for (Int_t i=0;i<4;i++) fTPCPoints[i]=points[i];
}
void SetTPCPointsF(UChar_t findable){fTPCnclsF = findable;}
+ Int_t GetTPCNcls() const { return fTPCncls;}
+ Int_t GetTPCNclsF() const { return fTPCnclsF;}
Float_t GetTPCPoints(Int_t i) const {return fTPCPoints[i];}
void SetKinkIndexes(Int_t points[3]) {
for (Int_t i=0;i<3;i++) fKinkIndexes[i] = points[i];
fTPCsignal = signal; fTPCsignalS = sigma; fTPCsignalN = npoints;
}
Float_t GetTPCsignal() const {return fTPCsignal;}
+ Float_t GetTPCsignalSigma() const {return fTPCsignalS;}
+ Float_t GetTPCsignalN() const {return fTPCsignalN;}
Float_t GetTPCchi2() const {return fTPCchi2;}
Int_t GetTPCclusters(Int_t *idx) const;
Float_t GetTPCdensity(Int_t row0, Int_t row1) const;
AliESDtrack & operator=(const AliESDtrack & ) {return *this;}
- ClassDef(AliESDtrack,28) //ESDtrack
+ ClassDef(AliESDtrack,29) //ESDtrack
};
#endif