]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/AliESDfriend.h
Update master to aliroot
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDfriend.h
1 #ifndef ALIESDFRIEND_H
2 #define ALIESDFRIEND_H
3
4 //-------------------------------------------------------------------------
5 //                     Class AliESDfriend
6 //               This class contains ESD additions
7 //       Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch 
8 //-------------------------------------------------------------------------
9
10 #include <TObject.h>
11 #include <TClonesArray.h>
12
13 #include "AliESDfriendTrack.h"
14 #include "AliVfriendEvent.h"
15
16 class AliESDVZEROfriend;
17 class AliESDTZEROfriend;
18 class AliESDADfriend;
19
20 //_____________________________________________________________________________
21 class AliESDfriend : public AliVfriendEvent {
22 public:
23   AliESDfriend();
24   AliESDfriend(const AliESDfriend &);
25   AliESDfriend& operator=(const AliESDfriend& esd);  
26   virtual ~AliESDfriend();
27
28   Int_t GetNumberOfTracks() const {return fTracks.GetEntriesFast();}
29   AliESDfriendTrack *GetTrack(Int_t i) const {
30      return (AliESDfriendTrack *)fTracks.At(i);
31   }
32   Int_t GetEntriesInTracks() const {return fTracks.GetEntries();}
33   void AddTrack(const AliESDfriendTrack *t) {
34      new(fTracks[fTracks.GetEntriesFast()]) AliESDfriendTrack(*t);
35   }
36
37   void AddTrackAt(const AliESDfriendTrack *t, Int_t i) {
38      new(fTracks[i]) AliESDfriendTrack(*t);
39   }
40
41   void SetVZEROfriend(AliESDVZEROfriend * obj);
42   AliESDVZEROfriend *GetVZEROfriend(){ return fESDVZEROfriend; }
43   void SetTZEROfriend(AliESDTZEROfriend * obj);
44   AliESDTZEROfriend *GetTZEROfriend(){ return fESDTZEROfriend; }
45   void SetADfriend(AliESDADfriend * obj);
46   AliESDADfriend *GetADfriend(){ return fESDADfriend; }
47
48   void Ls() const {
49           return fTracks.ls();
50   }
51
52   void Reset();
53   // bit manipulation for filtering
54   void SetSkipBit(Bool_t skip){SetBit(23,skip);}
55   Bool_t TestSkipBit() const { return TestBit(23); }
56
57   //TPC cluster occupancy
58   Int_t GetNclustersTPC(UInt_t sector) const {return (sector<72)?fNclustersTPC[sector]:0;}
59   Int_t GetNclustersTPCused(UInt_t sector) const {return (sector<72)?fNclustersTPCused[sector]:0;}
60   void SetNclustersTPC(UInt_t sector, Int_t occupancy) {if (sector<72) fNclustersTPC[sector]=occupancy;}
61   void SetNclustersTPCused(UInt_t sector, Int_t occupancy) {if (sector<72) fNclustersTPCused[sector]=occupancy;}
62
63 protected:
64   TClonesArray fTracks;    // ESD friend tracks
65   AliESDVZEROfriend *fESDVZEROfriend; // VZERO object containing complete raw data
66   AliESDTZEROfriend *fESDTZEROfriend; // TZERO calibration object
67   AliESDADfriend *fESDADfriend; // AD object containing complete raw data
68   
69   Int_t fNclustersTPC[72]; //cluster occupancy per sector per sector
70   Int_t fNclustersTPCused[72]; //number of clusters used in tracking per sector
71
72   ClassDef(AliESDfriend,5) // ESD friend
73 };
74
75 #endif
76
77