technial fix to suppress the warning
[u/mrichter/AliRoot.git] / ITS / AliITSSumTP.h
1 #ifndef ALIITSSUMTP_H
2 #define ALIITSSUMTP_H
3
4 ///////////////////////////////////////////////////////////////////
5 //                                                               //
6 // Class for ITS trackpoints summary + some aux. info  )         //
7 // Author: Ruben Shahoian                                        //
8 //                                                               //
9 ///////////////////////////////////////////////////////////////////
10
11 /* $Id$ */
12
13 class AliTrackPointArray;
14 #include <TObjArray.h>
15 #include "AliESDVertex.h"
16
17 class AliITSSumTP : public TObject
18 {
19  public:
20   enum {kCrvTPC,kCrvTPCErr,kCrvGlo,kCrvGloErr,kNVarPerTrack};
21   enum {kTPCInX,kTPCInY,kTPCInZ,kTPCSpare};
22   //
23   AliITSSumTP() : fTracks(0),fVertex(),fNVars(0),fCrvVars(0),fTPCVars(0) {fTracks.SetOwner(kTRUE);}
24   AliITSSumTP(const AliITSSumTP& src);
25   virtual ~AliITSSumTP() {Reset();}
26   AliITSSumTP &operator=(const  AliITSSumTP& src);
27   virtual void Print(Option_t* opt="") const;
28   //
29   AliESDVertex& GetVertex()             const {return (AliESDVertex&)fVertex;}
30   AliTrackPointArray* GetTrack(Int_t i) const {return (AliTrackPointArray*)fTracks[i];}
31   TObjArray&   GetTracks()              const {return (TObjArray&) fTracks;}
32   Int_t        GetNTracks()             const {return fNVars/kNVarPerTrack;}
33   Double_t     GetCrvTPC(Int_t i)       const {return fCrvVars[i*kNVarPerTrack+kCrvTPC];}
34   Double_t     GetCrvTPCErr(Int_t i)    const {return fCrvVars[i*kNVarPerTrack+kCrvTPCErr];}
35   Double_t     GetCrvGlo(Int_t i)       const {return fCrvVars[i*kNVarPerTrack+kCrvGlo];}
36   Double_t     GetCrvGloErr(Int_t i)    const {return fCrvVars[i*kNVarPerTrack+kCrvGloErr];}
37   void         GetTPCInnerXYZ(int i, double* xyz) const;
38   void         SetTPCInnerXYZ(int i, const double* xyz);
39   //
40   void         Reset();
41   void         BookNTracks(Int_t n);
42   void         SetCrvTPC(Int_t i, Double_t v)       {fCrvVars[i*kNVarPerTrack+kCrvTPC] = v;}
43   void         SetCrvTPCErr(Int_t i, Double_t v)    {fCrvVars[i*kNVarPerTrack+kCrvTPCErr] = v;}
44   void         SetCrvGlo(Int_t i, Double_t v)       {fCrvVars[i*kNVarPerTrack+kCrvGlo] = v;}
45   void         SetCrvGloErr(Int_t i, Double_t v)    {fCrvVars[i*kNVarPerTrack+kCrvGloErr] = v;}
46   void         AddTrack(AliTrackPointArray* trc)    {fTracks.AddLast((TObject*)trc);}
47   void         SetVertex(const AliESDVertex* vtx)   {fVertex = *vtx;}
48   //
49  protected:
50   //
51   TObjArray    fTracks;               // TrackPoints
52   AliESDVertex fVertex;               // ESD Vertex
53   Int_t        fNVars;                // Ntracks*kNVarPerTrack
54   Double32_t*  fCrvVars;               //[fNVars];
55   Double32_t*  fTPCVars;               //[fNVars];
56
57
58   ClassDef(AliITSSumTP,2)
59 };
60
61
62 //---------------------------------------------------------------
63 inline void AliITSSumTP::GetTPCInnerXYZ(int i, double* xyz) const
64 {
65   // get tpc inner coordinates
66   if (!fTPCVars) {xyz[0]=xyz[1]=xyz[2]=0; return;}  // for BWD compatibility
67   xyz[0] = fTPCVars[i*kNVarPerTrack+kTPCInX];
68   xyz[1] = fTPCVars[i*kNVarPerTrack+kTPCInY];
69   xyz[2] = fTPCVars[i*kNVarPerTrack+kTPCInZ];
70 }
71
72 //---------------------------------------------------------------
73 inline void AliITSSumTP::SetTPCInnerXYZ(int i, const double* xyz)
74 {
75   // Set tpc inner coordinates
76   if (!fTPCVars) return; // for BWD compatibility
77   fTPCVars[i*kNVarPerTrack+kTPCInX] = xyz[0];
78   fTPCVars[i*kNVarPerTrack+kTPCInY] = xyz[1];
79   fTPCVars[i*kNVarPerTrack+kTPCInZ] = xyz[2];
80 }
81
82
83 #endif
84