Line data Source code
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 : #include <TBits.h>
17 :
18 : class AliAODTracklets : public AliVMultiplicity
19 : {
20 : public:
21 : AliAODTracklets();
22 : AliAODTracklets(const char* name, const char* title);
23 : AliAODTracklets(const AliAODTracklets& evt);
24 : AliAODTracklets& operator=(const AliAODTracklets& evt);
25 :
26 : virtual ~AliAODTracklets();
27 :
28 : void CreateContainer(Int_t nTracks);
29 : void DeleteContainer();
30 0 : virtual void Clear(Option_t* ) {AliVMultiplicity::Clear(); DeleteContainer();}
31 :
32 : Bool_t SetTracklet(Int_t pos, Double32_t theta, Double32_t phi, Double32_t deltaPhi, Int_t labelL1, Int_t labelL2);
33 :
34 :
35 56 : virtual Int_t GetNumberOfTracklets() const { return fNTracks; }
36 : virtual Double_t GetTheta(Int_t i) const;
37 : virtual Double_t GetPhi(Int_t i) const;
38 : virtual Double_t GetDeltaPhi(Int_t i) const;
39 : virtual Int_t GetLabel(Int_t i, Int_t layer) const;
40 : virtual void SetLabel(Int_t i, Int_t layer,Int_t label);
41 : //
42 0 : virtual Double_t* GetTheta() const {return (Double_t*)fTheta;}
43 0 : virtual Double_t* GetPhi() const {return (Double_t*)fPhi;}
44 0 : virtual Double_t* GetDeltPhi() const {return (Double_t*)fDeltaPhi;}
45 0 : virtual Int_t* GetLabels() const {return (Int_t*)fLabels;}
46 0 : virtual Int_t* GetLabels2() const {return (Int_t*)fLabelsL2;}
47 : //
48 0 : virtual Short_t GetNumberOfFiredChips(Int_t layer) const {return fFiredChips[layer];}
49 32 : virtual void SetFiredChips(Int_t layer, Short_t firedChips) {fFiredChips[layer] = firedChips;}
50 : //
51 0 : virtual void SetFastOrFiredChips(UInt_t chipKey) {fFastOrFiredChips.SetBitNumber(chipKey);}
52 0 : virtual const TBits& GetFastOrFiredChips() const {return fFastOrFiredChips;}
53 16 : virtual void SetFastOrFiredChipMap(const TBits& fochips) {fFastOrFiredChips = fochips;}
54 0 : virtual Bool_t TestFastOrFiredChips(UInt_t chipKey) const {return fFastOrFiredChips.TestBitNumber(chipKey);}
55 : //
56 16 : virtual void SetFiredChipMap(const TBits & firedChips) {fClusterFiredChips = firedChips;}
57 0 : virtual void SetFiredChipMap(UInt_t chipKey) {fClusterFiredChips.SetBitNumber(chipKey);}
58 0 : virtual const TBits& GetFiredChipMap() const {return fClusterFiredChips;}
59 0 : virtual Bool_t TestFiredChipMap(UInt_t chipKey) const {return fClusterFiredChips.TestBitNumber(chipKey);}
60 :
61 : //
62 : virtual void Print(Option_t *opt="") const;
63 :
64 0 : virtual UInt_t GetNumberOfITSClusters(Int_t layer) const { return fITSClusters[layer];}
65 96 : virtual void SetITSClusters(Int_t layer, UInt_t clusters) { fITSClusters[layer] = clusters; }
66 :
67 : protected:
68 : Int_t fNTracks; // Number of tracklets
69 : Double32_t *fTheta; //[fNTracks] array with theta values
70 : Double32_t *fPhi; //[fNTracks] array with phi values
71 : Double32_t *fDeltaPhi; //[fNTracks] array with delta phi values
72 : Int_t *fLabels; //[fNTracks] array with labels of cluster in L1 used for the tracklet
73 : Int_t *fLabelsL2; //[fNTracks] array with labels of cluster in L2 used for the tracklet
74 :
75 : Short_t fFiredChips[2]; // Number of fired chips in the two SPD layers
76 : UInt_t fITSClusters[6]; // Number of ITS cluster per layer
77 : TBits fFastOrFiredChips; // Map of FastOr fired chips
78 : TBits fClusterFiredChips; // Map of fired chips (= at least one cluster)
79 :
80 218 : ClassDef(AliAODTracklets, 5);
81 : };
82 :
83 :
84 : #endif
|