]>
Commit | Line | Data |
---|---|---|
8918e700 | 1 | #ifndef ALIDETECTOR_H |
2 | #define ALIDETECTOR_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8494b010 | 8 | #include <AliModule.h> |
94de3818 | 9 | class AliHit; |
aab9c8d5 | 10 | class AliTrackReference; |
2ab0c725 | 11 | class TTree; |
9e1a0ddb | 12 | class TBranch; |
fe4da5cc | 13 | |
8494b010 | 14 | class AliDetector : public AliModule { |
fe4da5cc | 15 | |
fe4da5cc | 16 | public: |
17 | ||
18 | // Creators - distructors | |
19 | AliDetector(const char* name, const char *title); | |
20 | AliDetector(); | |
e2afb3b6 | 21 | AliDetector(const AliDetector &det); |
fe4da5cc | 22 | virtual ~AliDetector(); |
23 | ||
24 | // Inline functions | |
6644b9ca | 25 | void Copy(AliDetector &det) const; |
94de3818 | 26 | virtual int GetNdigits() const {return fNdigits;} |
27 | virtual int GetNhits() const {return fNhits;} | |
28 | TClonesArray *Digits() const {return fDigits;} | |
29 | TClonesArray *Hits() const {return fHits;} | |
aab9c8d5 | 30 | TClonesArray *TrackReferences() const {return fTrackReferences;} |
ae9676e4 | 31 | virtual void RemapTrackReferencesIDs(Int_t *map); //remaping track references MI |
aab9c8d5 | 32 | |
94de3818 | 33 | TObjArray *Points() const {return fPoints;} |
34 | Int_t GetIshunt() const {return fIshunt;} | |
8918e700 | 35 | void SetIshunt(Int_t ishunt) {fIshunt=ishunt;} |
ef42d733 | 36 | AliDetector &operator=(const AliDetector &det) |
8918e700 | 37 | {det.Copy(*this); return (*this);} |
fe4da5cc | 38 | |
fe4da5cc | 39 | // Other methods |
9e1a0ddb | 40 | virtual void Publish(const char *dir, void *c, const char *name=0); |
fe4da5cc | 41 | virtual void Browse(TBrowser *b); |
fe4da5cc | 42 | virtual void FinishRun(); |
fe4da5cc | 43 | virtual void LoadPoints(Int_t track); |
9e1a0ddb | 44 | virtual void MakeBranch(Option_t *opt=" ", const char *file=0 ); |
aab9c8d5 | 45 | virtual void MakeBranchTR(Option_t *opt=" ", const char *file=0 ); |
fe4da5cc | 46 | virtual void ResetDigits(); |
47 | virtual void ResetHits(); | |
aab9c8d5 | 48 | virtual void ResetTrackReferences(); |
49 | ||
fe4da5cc | 50 | virtual void ResetPoints(); |
51 | virtual void SetTreeAddress(); | |
52 | virtual void SetTimeGate(Float_t gate) {fTimeGate=gate;} | |
94de3818 | 53 | virtual Float_t GetTimeGate() const {return fTimeGate;} |
8494b010 | 54 | virtual void StepManager() {} |
55 | virtual void DrawModule() {} | |
8918e700 | 56 | virtual AliHit* FirstHit(Int_t track); |
fe4da5cc | 57 | virtual AliHit* NextHit(); |
aab9c8d5 | 58 | virtual AliTrackReference * FirstTrackReference(Int_t track); |
59 | virtual AliTrackReference * NextTrackReference(); | |
fe4da5cc | 60 | virtual void SetBufferSize(Int_t bufsize=8000) {fBufferSize = bufsize;} |
9e1a0ddb | 61 | virtual TBranch* MakeBranchInTree(TTree *tree, const char* cname, void* address, Int_t size=32000, const char *file=0); |
d0f40f23 | 62 | virtual TBranch* MakeBranchInTree(TTree *tree, const char* cname, const char* name, void* address, Int_t size=32000, Int_t splitlevel=99, const char *file=0); |
9e1a0ddb | 63 | |
8918e700 | 64 | // Data members |
65 | protected: | |
66 | ||
67 | Float_t fTimeGate; //Time gate in seconds | |
68 | ||
69 | Int_t fIshunt; //1 if the hit is attached to the primary | |
2ab0c725 | 70 | Int_t fNhits; //!Number of hits |
71 | Int_t fNdigits; //!Number of digits | |
72 | Int_t fBufferSize; //!buffer size for Tree detector branches | |
8918e700 | 73 | TClonesArray *fHits; //List of hits for one track only |
74 | TClonesArray *fDigits; //List of digits for this detector | |
2ab0c725 | 75 | char *fDigitsFile; //!File to store branches of digits tree for detector |
76 | TObjArray *fPoints; //!Array of points for each track (all tracks in memory) | |
ae9676e4 | 77 | TClonesArray *fTrackReferences; //list of track references - for one primary track only -MI |
aab9c8d5 | 78 | Int_t fMaxIterTrackRef; //!for track refernce iterator routines |
79 | Int_t fCurrentIterTrackRef; //!for track refernce iterator routines | |
ae9676e4 | 80 | ClassDef(AliDetector,2) //Base class for ALICE detectors |
fe4da5cc | 81 | }; |
82 | #endif |