]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIDETECTOR_H | |
2 | #define ALIDETECTOR_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | // | |
9 | // This is the basic detector class from which | |
10 | // all ALICE detector derive. | |
11 | // This class is the base for the implementation of all detectors | |
12 | // in ALICE | |
13 | // | |
14 | ||
15 | #include "AliModule.h" | |
16 | ||
17 | class AliHit; | |
18 | class TTree; | |
19 | class TBranch; | |
20 | class AliLoader; | |
21 | ||
22 | class AliDetector : public AliModule { | |
23 | ||
24 | public: | |
25 | ||
26 | // Creators - distructors | |
27 | AliDetector(const char* name, const char *title); | |
28 | AliDetector(); | |
29 | virtual ~AliDetector(); | |
30 | ||
31 | // Inline functions | |
32 | virtual int GetNdigits() const {return fNdigits;} | |
33 | virtual int GetNhits() const {return fNhits;} | |
34 | TClonesArray *Digits() const {return fDigits;} | |
35 | TClonesArray *Hits() const {return fHits;} | |
36 | ||
37 | TObjArray *Points() const {return fPoints;} | |
38 | Int_t GetIshunt() const {return fIshunt;} | |
39 | void SetIshunt(Int_t ishunt) {fIshunt=ishunt;} | |
40 | ||
41 | // Other methods | |
42 | virtual void Publish(const char *dir, void *c, const char *name=0) const; | |
43 | virtual void Browse(TBrowser *b); | |
44 | virtual void FinishRun(); | |
45 | virtual void LoadPoints(Int_t track); | |
46 | virtual void MakeBranch(Option_t *opt=" "); | |
47 | virtual void ResetDigits(); | |
48 | virtual void ResetHits(); | |
49 | virtual void AddAlignableVolumes() const; | |
50 | ||
51 | virtual void ResetPoints(); | |
52 | virtual void SetTreeAddress(); | |
53 | virtual void SetTimeGate(Float_t gate) {fTimeGate=gate;} | |
54 | virtual Float_t GetTimeGate() const {return fTimeGate;} | |
55 | virtual void StepManager() {} | |
56 | virtual void DrawModule() const {} | |
57 | virtual AliHit* FirstHit(Int_t track); | |
58 | virtual AliHit* NextHit(); | |
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); | |
62 | ||
63 | void MakeTree(Option_t *option); //skowron | |
64 | virtual void RemapTrackHitIDs(Int_t *) {} | |
65 | ||
66 | virtual AliLoader* MakeLoader(const char* topfoldername); //builds standard getter (AliLoader type) | |
67 | void SetLoader(AliLoader* loader){fLoader = loader;} | |
68 | AliLoader* GetLoader() const {return fLoader;} //skowron | |
69 | TTree* TreeH() const; //shorcut method for accessing treeH from folder | |
70 | // Data members | |
71 | protected: | |
72 | ||
73 | Float_t fTimeGate; //Time gate in seconds | |
74 | ||
75 | Int_t fIshunt; //1 if the hit is attached to the primary | |
76 | Int_t fNhits; //!Number of hits | |
77 | Int_t fNdigits; //!Number of digits | |
78 | Int_t fBufferSize; //!buffer size for Tree detector branches | |
79 | Int_t fMaxIterHit; //!Limit for the hit iterator | |
80 | Int_t fCurIterHit; //!Counter for the hit iterator | |
81 | TClonesArray *fHits; //!List of hits for one track only | |
82 | TClonesArray *fDigits; //!List of digits for this detector | |
83 | TObjArray *fPoints; //!Array of points for each track (all tracks in memory) | |
84 | ||
85 | AliLoader* fLoader;//! pointer to getter for this module skowron | |
86 | ||
87 | private: | |
88 | AliDetector(const AliDetector &det); | |
89 | AliDetector &operator=(const AliDetector &det); | |
90 | ||
91 | ClassDef(AliDetector,5) //Base class for ALICE detectors | |
92 | }; | |
93 | #endif |