Update master to aliroot
[u/mrichter/AliRoot.git] / STEER / AOD / AliAODTracklets.h
1 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 /* $Id$ */
5
6 //-------------------------------------------------------------------------
7 //     AOD class to store tracklets
8 //     Author: Jan Fiete Grosse-Oetringhaus, CERN
9 //     Class created from AliMultiplicity
10 //-------------------------------------------------------------------------
11
12 #ifndef ALIAODTRACKLETS_H
13 #define ALIAODTRACKLETS_H
14
15 #include "AliVMultiplicity.h"
16
17 class AliAODTracklets : public AliVMultiplicity
18 {
19  public:
20   AliAODTracklets();
21   AliAODTracklets(const char* name, const char* title);
22   AliAODTracklets(const AliAODTracklets& evt); 
23   AliAODTracklets& operator=(const AliAODTracklets& evt);
24
25   virtual ~AliAODTracklets();
26
27   void CreateContainer(Int_t nTracks);
28   void DeleteContainer();
29   virtual void Clear(Option_t* )         {AliVMultiplicity::Clear(); DeleteContainer();}
30
31   Bool_t SetTracklet(Int_t pos, Double32_t theta, Double32_t phi, Double32_t deltaPhi, Int_t labelL1, Int_t labelL2);
32
33
34   virtual Int_t    GetNumberOfTracklets() const { return fNTracks; }
35   virtual Double_t GetTheta(Int_t i)      const;
36   virtual Double_t GetPhi(Int_t i)        const;
37   virtual Double_t GetDeltaPhi(Int_t i)   const;
38   virtual Int_t    GetLabel(Int_t i, Int_t layer) const;
39   virtual void     SetLabel(Int_t i, Int_t layer,Int_t label);
40   //
41   virtual Double_t* GetTheta()       const {return (Double_t*)fTheta;}
42   virtual Double_t* GetPhi()         const {return (Double_t*)fPhi;}
43   virtual Double_t* GetDeltPhi()     const {return (Double_t*)fDeltaPhi;}
44   virtual Int_t*    GetLabels()      const {return (Int_t*)fLabels;}  
45   virtual Int_t*    GetLabels2()     const {return (Int_t*)fLabelsL2;}
46   virtual void Print(Option_t *opt="") const;
47
48  protected:
49   Int_t      fNTracks;       // Number of tracklets
50   Double32_t *fTheta;        //[fNTracks] array with theta values
51   Double32_t *fPhi;          //[fNTracks] array with phi values
52   Double32_t *fDeltaPhi;     //[fNTracks] array with delta phi values
53   Int_t      *fLabels;       //[fNTracks] array with labels of cluster in L1 used for the tracklet
54   Int_t      *fLabelsL2;     //[fNTracks] array with labels of cluster in L2 used for the tracklet
55
56
57   ClassDef(AliAODTracklets, 4);
58 };
59
60
61 #endif