]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/ESD/AliESDfriend.h
Updates in event mixing code for low-pt code
[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
19 //_____________________________________________________________________________
20 class AliESDfriend : public AliVfriendEvent {
21 public:
22   AliESDfriend();
23   AliESDfriend(const AliESDfriend &);
24   AliESDfriend& operator=(const AliESDfriend& esd);  
25   virtual ~AliESDfriend();
26
27   Int_t GetNumberOfTracks() const {return fTracks.GetEntriesFast();}
28   AliESDfriendTrack *GetTrack(Int_t i) const {
29      return (AliESDfriendTrack *)fTracks.At(i);
30   }
31   Int_t GetEntriesInTracks() const {return fTracks.GetEntries();}
32   void AddTrack(const AliESDfriendTrack *t) {
33      new(fTracks[fTracks.GetEntriesFast()]) AliESDfriendTrack(*t);
34   }
35
36   void AddTrackAt(const AliESDfriendTrack *t, Int_t i) {
37      new(fTracks[i]) AliESDfriendTrack(*t);
38   }
39
40   void SetVZEROfriend(AliESDVZEROfriend * obj);
41   AliESDVZEROfriend *GetVZEROfriend(){ return fESDVZEROfriend; }
42   void SetTZEROfriend(AliESDTZEROfriend * obj);
43   AliESDTZEROfriend *GetTZEROfriend(){ return fESDTZEROfriend; }
44
45   void Ls() const {
46           return fTracks.ls();
47   }
48
49   void Reset();
50   // bit manipulation for filtering
51   void SetSkipBit(Bool_t skip){SetBit(23,skip);}
52   Bool_t TestSkipBit() const { return TestBit(23); }
53
54   //TPC cluster occupancy
55   Int_t GetNclustersTPC(UInt_t sector) const {return (sector<72)?fNclustersTPC[sector]:0;}
56   Int_t GetNclustersTPCused(UInt_t sector) const {return (sector<72)?fNclustersTPCused[sector]:0;}
57   void SetNclustersTPC(UInt_t sector, Int_t occupancy) {if (sector<72) fNclustersTPC[sector]=occupancy;}
58   void SetNclustersTPCused(UInt_t sector, Int_t occupancy) {if (sector<72) fNclustersTPCused[sector]=occupancy;}
59
60 protected:
61   TClonesArray fTracks;    // ESD friend tracks
62   AliESDVZEROfriend *fESDVZEROfriend; // VZERO object containing complete raw data
63   AliESDTZEROfriend *fESDTZEROfriend; // TZERO calibration object
64   
65   Int_t fNclustersTPC[72]; //cluster occupancy per sector per sector
66   Int_t fNclustersTPCused[72]; //number of clusters used in tracking per sector
67
68   ClassDef(AliESDfriend,5) // ESD friend
69 };
70
71 #endif
72
73