X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliDetector.h;h=95fe6a2cc460a2ac73a779616a010ea470c4f560;hb=4e815361d6e05c9d2b2431057ca10ba147cf9b23;hp=fb556a553d94995344644a04bd79c7a6bb9029cf;hpb=fe4da5cc22f890b04843f1aebec0f1bf4f9c3fc9;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliDetector.h b/STEER/AliDetector.h index fb556a553d9..95fe6a2cc46 100644 --- a/STEER/AliDetector.h +++ b/STEER/AliDetector.h @@ -1,105 +1,71 @@ -#ifndef AliDetector_H -#define AliDetector_H -#include -#include -#include -#include -#include -#include -#include -#include +#ifndef ALIDETECTOR_H +#define ALIDETECTOR_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ -class AliDetector : public TNamed , public TAttLine, public TAttMarker { +/* $Id$ */ - // Data members -protected: - - TString fEuclidMaterial; //Name of the Euclid file for materials (if any) - TString fEuclidGeometry; //Name of the Euclid file for geometry (if any) - - TArrayI *fIdtmed; //List of tracking medium numbers - TArrayI *fIdmate; //List of material numbers - Int_t fLoMedium; //Minimum tracking medium ID for this detector - Int_t fHiMedium; //Maximum tracking medium ID for this detector - - Float_t fTimeGate; //Time gate in seconds +#include +class AliHit; +class TTree; +class TBranch; - Bool_t fActive; //Detector activity flag - Int_t fIshunt; //1 if the hit is attached to the primary - Int_t fNhits; //Number of hits - Int_t fNdigits; //Number of digits - Int_t fBufferSize; //buffer size for Tree detector branches - TList *fHistograms; //List of histograms - TList *fNodes; //List of geometry nodes - TClonesArray *fHits; //List of hits for one track only - TClonesArray *fDigits; //List of digits for this detector - TObjArray *fPoints; //Array of points for each track (all tracks in memory) +class AliDetector : public AliModule { public: // Creators - distructors AliDetector(const char* name, const char *title); AliDetector(); + AliDetector(const AliDetector &det) {det.Copy(*this);} virtual ~AliDetector(); // Inline functions - inline virtual int GetNdigits() {return fNdigits;} - inline virtual int GetNhits() {return fNhits;} - inline TList *Histograms() {return fHistograms;} - inline TList *Nodes() {return fNodes;} - inline TClonesArray *Digits() {return fDigits;} - inline TClonesArray *Hits() {return fHits;} - inline TObjArray *Points() {return fPoints;} - inline Int_t GetIshunt() {return fIshunt;} - inline void SetIshunt(Int_t ishunt) {fIshunt=ishunt;} - inline Bool_t IsActive() {return fActive;} - inline Bool_t IsFolder() {return kTRUE;} - inline Int_t& LoMedium() {return fLoMedium;} - inline Int_t& HiMedium() {return fHiMedium;} - - // Detector composition - virtual void AliMaterial(Int_t, const char*, Float_t, Float_t, Float_t, Float_t, - Float_t, Float_t* buf=0, Int_t nwbuf=0) const; - virtual void AliMixture(Int_t, const char*, Float_t*, Float_t*, Float_t, Int_t, Float_t*) const; - virtual void AliMedium(Int_t, const char*, Int_t, Int_t, Int_t, Float_t, Float_t, - Float_t, Float_t, Float_t, Float_t, Float_t* ubuf=0, Int_t nbuf=0) const; - virtual void AliMatrix(Int_t&, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t) const; + 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;} + Int_t GetIshunt() const {return fIshunt;} + void SetIshunt(Int_t ishunt) {fIshunt=ishunt;} + AliDetector &operator=(const AliDetector &det) + {det.Copy(*this); return (*this);} - // Virtual methods - virtual void BuildGeometry()=0; - virtual Int_t IsVersion() const =0; - // Other methods - virtual void AddDigit(Int_t*, Int_t*){} - virtual void AddHit(Int_t, Int_t*, Float_t *) {} + virtual void Publish(const char *dir, void *c, const char *name=0); virtual void Browse(TBrowser *b); - virtual void CreateGeometry() {} - virtual void CreateMaterials() {} - virtual void Disable(); - virtual Int_t DistancetoPrimitive(Int_t px, Int_t py); - virtual void Enable(); - virtual inline void PreTrack(){} - virtual inline void PostTrack(){} - virtual inline void FinishEvent() {} virtual void FinishRun(); - virtual void Hits2Digits() {} - virtual void Init() {} virtual void LoadPoints(Int_t track); - virtual void MakeBranch(Option_t *opt=" "); - virtual void Paint(Option_t *) {} + virtual void MakeBranch(Option_t *opt=" ", const char *file=0 ); virtual void ResetDigits(); virtual void ResetHits(); virtual void ResetPoints(); virtual void SetTreeAddress(); virtual void SetTimeGate(Float_t gate) {fTimeGate=gate;} - virtual Float_t GetTimeGate() {return fTimeGate;} - virtual void StepManager(); - virtual void DrawDetector() {} - virtual AliHit* FirstHit(Int_t); + virtual Float_t GetTimeGate() const {return fTimeGate;} + virtual void StepManager() {} + virtual void DrawModule() {} + virtual AliHit* FirstHit(Int_t track); virtual AliHit* NextHit(); virtual void SetBufferSize(Int_t bufsize=8000) {fBufferSize = bufsize;} - virtual void SetEuclidFile(char*,char*geometry=0); - + 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); + + // Data members +protected: + + Float_t fTimeGate; //Time gate in seconds + + Int_t fIshunt; //1 if the hit is attached to the primary + 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) + ClassDef(AliDetector,1) //Base class for ALICE detectors }; #endif