Line data Source code
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 */
5 :
6 : /* $Id$ */
7 :
8 : //
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.
12 : // Author:
13 : // Andreas Morsch
14 : // andreas.morsch@cern.ch
15 :
16 : #include <TNamed.h>
17 : class TList;
18 : class TObjLink;
19 : class AliFastResponse;
20 : class AliFastParticle;
21 : class AliGeometry;
22 :
23 : class AliFastDetector : public TNamed {
24 :
25 : public:
26 : AliFastDetector();
27 : AliFastDetector(char* Name, char* Title);
28 : AliFastDetector(const AliFastDetector& det);
29 : virtual ~AliFastDetector();
30 : virtual void Init();
31 : virtual void SetGeometry(AliGeometry* geom)
32 0 : {fGeometry = geom;}
33 :
34 : virtual AliGeometry* GetGeometry() const
35 0 : {return fGeometry;}
36 : //
37 : // Add a new subdetector
38 : virtual void AddSubdetector(AliFastDetector *Detector, char* Name);
39 0 : virtual TList* Subdetectors() {return fSubdetectors;}
40 : //
41 : // Add a new response
42 : virtual void AddResponse(AliFastResponse *Response);
43 0 : 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);
47 :
48 : // Iterators
49 : AliFastDetector* FirstSubdetector();
50 : AliFastDetector* NextSubdetector();
51 : AliFastResponse* FirstResponse();
52 : AliFastResponse* NextResponse();
53 : // Copy
54 : AliFastDetector& operator=(const AliFastDetector & rhs);
55 : void Copy(TObject&) const;
56 : protected:
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 12 : ClassDef(AliFastDetector,1) // Base class for fast detector
65 : };
66 :
67 : #endif
68 :
69 :
70 :
|