/* $Id$ */
-#include <AliModule.h>
+//
+// This is the basic detector class from which
+// all ALICE detector derive.
+// This class is the base for the implementation of all detectors
+// in ALICE
+//
+
+#include "AliModule.h"
+
class AliHit;
class TTree;
+class TBranch;
+class AliLoader;
class AliDetector : public AliModule {
// Creators - distructors
AliDetector(const char* name, const char *title);
AliDetector();
- AliDetector(const AliDetector &det) {det.Copy(*this);}
virtual ~AliDetector();
// Inline functions
- void Copy(AliDetector &det) const;
virtual int GetNdigits() const {return fNdigits;}
virtual int GetNhits() const {return fNhits;}
TClonesArray *Digits() const {return fDigits;}
TClonesArray *Hits() const {return fHits;}
- TObjArray *Points() const {return fPoints;}
+ virtual Bool_t IsModule() const {return kFALSE;}
+ virtual Bool_t IsDetector() const {return kTRUE;}
+
Int_t GetIshunt() const {return fIshunt;}
void SetIshunt(Int_t ishunt) {fIshunt=ishunt;}
- AliDetector &operator=(const AliDetector &det)
- {det.Copy(*this); return (*this);}
// Other methods
+ virtual void Publish(const char *dir, void *c, const char *name=0) const;
virtual void Browse(TBrowser *b);
virtual void FinishRun();
- virtual void LoadPoints(Int_t track);
- virtual void MakeBranch(Option_t *opt=" ", char *file=0 );
+ virtual void MakeBranch(Option_t *opt=" ");
virtual void ResetDigits();
virtual void ResetHits();
- virtual void ResetPoints();
+ virtual void AddAlignableVolumes() const;
+
virtual void SetTreeAddress();
virtual void SetTimeGate(Float_t gate) {fTimeGate=gate;}
virtual Float_t GetTimeGate() const {return fTimeGate;}
virtual void StepManager() {}
- virtual void DrawModule() {}
+ virtual void DrawModule() const {}
virtual AliHit* FirstHit(Int_t track);
virtual AliHit* NextHit();
virtual void SetBufferSize(Int_t bufsize=8000) {fBufferSize = bufsize;}
-
- // Data members
+ virtual TBranch* MakeBranchInTree(TTree *tree, const char* cname, void* address, Int_t size=32000, const char *file=0);
+ 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);
+
+ void MakeTree(Option_t *option); //skowron
+ virtual void RemapTrackHitIDs(Int_t *) {}
+
+ virtual AliLoader* MakeLoader(const char* topfoldername); //builds standard getter (AliLoader type)
+ void SetLoader(AliLoader* loader){fLoader = loader;}
+ AliLoader* GetLoader() const {return fLoader;} //skowron
+ // Data members
protected:
Float_t fTimeGate; //Time gate in seconds
Int_t fNhits; //!Number of hits
Int_t fNdigits; //!Number of digits
Int_t fBufferSize; //!buffer size for Tree detector branches
- TClonesArray *fHits; //List of hits for one track only
- TClonesArray *fDigits; //List of digits for this detector
- char *fDigitsFile; //!File to store branches of digits tree for detector
- TObjArray *fPoints; //!Array of points for each track (all tracks in memory)
+ Int_t fMaxIterHit; //!Limit for the hit iterator
+ Int_t fCurIterHit; //!Counter for the hit iterator
+ TClonesArray *fHits; //!List of hits for one track only
+ TClonesArray *fDigits; //!List of digits for this detector
+
+ AliLoader* fLoader;//! pointer to getter for this module skowron
+
+ private:
+ AliDetector(const AliDetector &det);
+ AliDetector &operator=(const AliDetector &det);
- ClassDef(AliDetector,1) //Base class for ALICE detectors
+ ClassDef(AliDetector,5) //Base class for ALICE detectors
};
#endif