]>
Commit | Line | Data |
---|---|---|
8f359d7b | 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: | |
a4b1ccc5 | 20 | enum {kCrvTPC,kCrvTPCErr,kCrvGlo,kCrvGloErr,kTPCInX,kTPCInY,kTPCInZ,kNVarPerTrack}; |
8f359d7b | 21 | // |
22 | AliITSSumTP() : fTracks(0),fVertex(),fNVars(0),fCrvVars(0) {fTracks.SetOwner(kTRUE);} | |
23 | AliITSSumTP(const AliITSSumTP& src); | |
24 | virtual ~AliITSSumTP() {Reset();} | |
25 | AliITSSumTP &operator=(const AliITSSumTP& src); | |
6fe97dd9 | 26 | virtual void Print(Option_t* opt="") const; |
8f359d7b | 27 | // |
28 | AliESDVertex& GetVertex() const {return (AliESDVertex&)fVertex;} | |
29 | AliTrackPointArray* GetTrack(Int_t i) const {return (AliTrackPointArray*)fTracks[i];} | |
30 | TObjArray& GetTracks() const {return (TObjArray&) fTracks;} | |
31 | Int_t GetNTracks() const {return fNVars/kNVarPerTrack;} | |
32 | Double_t GetCrvTPC(Int_t i) const {return fCrvVars[i*kNVarPerTrack+kCrvTPC];} | |
33 | Double_t GetCrvTPCErr(Int_t i) const {return fCrvVars[i*kNVarPerTrack+kCrvTPCErr];} | |
34 | Double_t GetCrvGlo(Int_t i) const {return fCrvVars[i*kNVarPerTrack+kCrvGlo];} | |
35 | Double_t GetCrvGloErr(Int_t i) const {return fCrvVars[i*kNVarPerTrack+kCrvGloErr];} | |
a4b1ccc5 | 36 | void GetTPCInnerXYZ(int i, double* xyz) const; |
37 | void SetTPCInnerXYZ(int i, const double* xyz); | |
8f359d7b | 38 | // |
39 | void Reset(); | |
40 | void BookNTracks(Int_t n); | |
41 | void SetCrvTPC(Int_t i, Double_t v) {fCrvVars[i*kNVarPerTrack+kCrvTPC] = v;} | |
42 | void SetCrvTPCErr(Int_t i, Double_t v) {fCrvVars[i*kNVarPerTrack+kCrvTPCErr] = v;} | |
43 | void SetCrvGlo(Int_t i, Double_t v) {fCrvVars[i*kNVarPerTrack+kCrvGlo] = v;} | |
44 | void SetCrvGloErr(Int_t i, Double_t v) {fCrvVars[i*kNVarPerTrack+kCrvGloErr] = v;} | |
45 | void AddTrack(AliTrackPointArray* trc) {fTracks.AddLast((TObject*)trc);} | |
46 | void SetVertex(const AliESDVertex* vtx) {fVertex = *vtx;} | |
47 | // | |
48 | protected: | |
49 | // | |
50 | TObjArray fTracks; // TrackPoints | |
51 | AliESDVertex fVertex; // ESD Vertex | |
52 | Int_t fNVars; // Ntracks*kNVarPerTrack | |
53 | Double32_t* fCrvVars; //[fNVars]; | |
54 | ||
55 | ClassDef(AliITSSumTP,1) | |
56 | }; | |
57 | ||
a4b1ccc5 | 58 | |
59 | //--------------------------------------------------------------- | |
60 | inline void AliITSSumTP::GetTPCInnerXYZ(int i, double* xyz) const | |
61 | { | |
62 | // get tpc inner coordinates | |
63 | xyz[0] = fCrvVars[i*kNVarPerTrack+kTPCInX]; | |
64 | xyz[1] = fCrvVars[i*kNVarPerTrack+kTPCInY]; | |
65 | xyz[2] = fCrvVars[i*kNVarPerTrack+kTPCInZ]; | |
66 | } | |
67 | ||
68 | //--------------------------------------------------------------- | |
69 | inline void AliITSSumTP::SetTPCInnerXYZ(int i, const double* xyz) | |
70 | { | |
71 | // Set tpc inner coordinates | |
72 | fCrvVars[i*kNVarPerTrack+kTPCInX] = xyz[0]; | |
73 | fCrvVars[i*kNVarPerTrack+kTPCInY] = xyz[1]; | |
74 | fCrvVars[i*kNVarPerTrack+kTPCInZ] = xyz[2]; | |
75 | } | |
76 | ||
77 | ||
8f359d7b | 78 | #endif |
79 |