]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSSumTP.h
Fixes for invalid write, detected by valgrind
[u/mrichter/AliRoot.git] / ITS / AliITSSumTP.h
index f91b3888a3657c608f8c4bd6356474c73b61133a..8cf88dc6320d6f2f09a69944c1c10f229d5ec84e 100644 (file)
@@ -18,11 +18,13 @@ class AliITSSumTP : public TObject
 {
  public:
   enum {kCrvTPC,kCrvTPCErr,kCrvGlo,kCrvGloErr,kNVarPerTrack};
+  enum {kTPCInX,kTPCInY,kTPCInZ,kTPCSpare};
   //
-  AliITSSumTP() : fTracks(0),fVertex(),fNVars(0),fCrvVars(0) {fTracks.SetOwner(kTRUE);}
+  AliITSSumTP() : fTracks(0),fVertex(),fNVars(0),fCrvVars(0),fTPCVars(0) {fTracks.SetOwner(kTRUE);}
   AliITSSumTP(const AliITSSumTP& src);
   virtual ~AliITSSumTP() {Reset();}
   AliITSSumTP &operator=(const  AliITSSumTP& src);
+  virtual void Print(Option_t* opt="") const;
   //
   AliESDVertex& GetVertex()             const {return (AliESDVertex&)fVertex;}
   AliTrackPointArray* GetTrack(Int_t i) const {return (AliTrackPointArray*)fTracks[i];}
@@ -32,6 +34,8 @@ class AliITSSumTP : public TObject
   Double_t     GetCrvTPCErr(Int_t i)    const {return fCrvVars[i*kNVarPerTrack+kCrvTPCErr];}
   Double_t     GetCrvGlo(Int_t i)       const {return fCrvVars[i*kNVarPerTrack+kCrvGlo];}
   Double_t     GetCrvGloErr(Int_t i)    const {return fCrvVars[i*kNVarPerTrack+kCrvGloErr];}
+  void         GetTPCInnerXYZ(int i, double* xyz) const;
+  void         SetTPCInnerXYZ(int i, const double* xyz);
   //
   void         Reset();
   void         BookNTracks(Int_t n);
@@ -48,9 +52,33 @@ class AliITSSumTP : public TObject
   AliESDVertex fVertex;               // ESD Vertex
   Int_t        fNVars;                // Ntracks*kNVarPerTrack
   Double32_t*  fCrvVars;               //[fNVars];
+  Double32_t*  fTPCVars;               //[fNVars];
 
-  ClassDef(AliITSSumTP,1)
+
+  ClassDef(AliITSSumTP,2)
 };
 
+
+//---------------------------------------------------------------
+inline void AliITSSumTP::GetTPCInnerXYZ(int i, double* xyz) const
+{
+  // get tpc inner coordinates
+  if (!fTPCVars) {xyz[0]=xyz[1]=xyz[2]=0; return;}  // for BWD compatibility
+  xyz[0] = fTPCVars[i*kNVarPerTrack+kTPCInX];
+  xyz[1] = fTPCVars[i*kNVarPerTrack+kTPCInY];
+  xyz[2] = fTPCVars[i*kNVarPerTrack+kTPCInZ];
+}
+
+//---------------------------------------------------------------
+inline void AliITSSumTP::SetTPCInnerXYZ(int i, const double* xyz)
+{
+  // Set tpc inner coordinates
+  if (!fTPCVars) return; // for BWD compatibility
+  fTPCVars[i*kNVarPerTrack+kTPCInX] = xyz[0];
+  fTPCVars[i*kNVarPerTrack+kTPCInY] = xyz[1];
+  fTPCVars[i*kNVarPerTrack+kTPCInZ] = xyz[2];
+}
+
+
 #endif