1 #ifndef ALIFASTDETECTOR_H
2 #define ALIFASTDETECTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 // Base class for fast simulation of a detctor
10 // or a system of subdetectors.
11 // The detector response is described by resolution and efficiency.
14 // andreas.morsch@cern.ch
19 class AliFastResponse;
20 class AliFastParticle;
23 class AliFastDetector : public TNamed {
27 AliFastDetector(char* Name, char* Title);
28 AliFastDetector(const AliFastDetector& det);
29 virtual ~AliFastDetector();
31 virtual void SetGeometry(AliGeometry* geom)
34 virtual AliGeometry* GetGeometry() const
37 // Add a new subdetector
38 virtual void AddSubdetector(AliFastDetector *Detector, char* Name);
39 virtual TList* Subdetectors() {return fSubdetectors;}
42 virtual void AddResponse(AliFastResponse *Response);
43 virtual TList* Responses() {return fResponses;}
44 virtual Float_t EvaluateEfficiency(AliFastParticle* part);
45 virtual Bool_t EvaluateAcceptance(AliFastParticle* part);
46 virtual void EvaluateResponse(AliFastParticle* part);
49 AliFastDetector* FirstSubdetector();
50 AliFastDetector* NextSubdetector();
51 AliFastResponse* FirstResponse();
52 AliFastResponse* NextResponse();
54 AliFastDetector& operator=(const AliFastDetector & rhs);
55 void Copy(TObject&) const;
57 TList *fSubdetectors; // List of Subdetectors
58 TList *fResponses; // Responses
59 TObjLink *fLnkD; // Pointer to detector in list
60 TObjLink *fLnkR; // Pointer to response in list
61 AliFastResponse *fEfficiency; // Efficiency Simulation
62 AliFastResponse *fResolution; // Resolution Simulation
63 AliGeometry *fGeometry; // Geometry
64 ClassDef(AliFastDetector,1) // Base class for fast detector