]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliDetector.h
Code clean-up (F.Carminati)
[u/mrichter/AliRoot.git] / STEER / AliDetector.h
CommitLineData
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 9class AliHit;
aab9c8d5 10class AliTrackReference;
2ab0c725 11class TTree;
9e1a0ddb 12class TBranch;
fe4da5cc 13
8494b010 14class AliDetector : public AliModule {
fe4da5cc 15
fe4da5cc 16public:
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
65protected:
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