3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
10 class AliTrackReference;
14 class AliDetector : public AliModule {
18 // Creators - distructors
19 AliDetector(const char* name, const char *title);
21 AliDetector(const AliDetector &det) {det.Copy(*this);}
22 virtual ~AliDetector();
25 void Copy(AliDetector &det) const;
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;}
30 TClonesArray *TrackReferences() const {return fTrackReferences;}
32 TObjArray *Points() const {return fPoints;}
33 Int_t GetIshunt() const {return fIshunt;}
34 void SetIshunt(Int_t ishunt) {fIshunt=ishunt;}
35 AliDetector &operator=(const AliDetector &det)
36 {det.Copy(*this); return (*this);}
39 virtual void Publish(const char *dir, void *c, const char *name=0);
40 virtual void Browse(TBrowser *b);
41 virtual void FinishRun();
42 virtual void LoadPoints(Int_t track);
43 virtual void MakeBranch(Option_t *opt=" ", const char *file=0 );
44 virtual void MakeBranchTR(Option_t *opt=" ", const char *file=0 );
45 virtual void ResetDigits();
46 virtual void ResetHits();
47 virtual void ResetTrackReferences();
49 virtual void ResetPoints();
50 virtual void SetTreeAddress();
51 virtual void SetTimeGate(Float_t gate) {fTimeGate=gate;}
52 virtual Float_t GetTimeGate() const {return fTimeGate;}
53 virtual void StepManager() {}
54 virtual void DrawModule() {}
55 virtual AliHit* FirstHit(Int_t track);
56 virtual AliHit* NextHit();
57 virtual AliTrackReference * FirstTrackReference(Int_t track);
58 virtual AliTrackReference * NextTrackReference();
59 virtual void SetBufferSize(Int_t bufsize=8000) {fBufferSize = bufsize;}
60 virtual TBranch* MakeBranchInTree(TTree *tree, const char* cname, void* address, Int_t size=32000, const char *file=0);
61 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);
66 Float_t fTimeGate; //Time gate in seconds
68 Int_t fIshunt; //1 if the hit is attached to the primary
69 Int_t fNhits; //!Number of hits
70 Int_t fNdigits; //!Number of digits
71 Int_t fBufferSize; //!buffer size for Tree detector branches
72 TClonesArray *fHits; //List of hits for one track only
73 TClonesArray *fDigits; //List of digits for this detector
74 char *fDigitsFile; //!File to store branches of digits tree for detector
75 TObjArray *fPoints; //!Array of points for each track (all tracks in memory)
76 TClonesArray *fTrackReferences; //!list of track references - for one primary track only -MI
77 Int_t fMaxIterTrackRef; //!for track refernce iterator routines
78 Int_t fCurrentIterTrackRef; //!for track refernce iterator routines
79 ClassDef(AliDetector,1) //Base class for ALICE detectors