Reading muon trigger scalers with the DA of the muon trigger and transfer
[u/mrichter/AliRoot.git] / FASTSIM / AliFastDetector.h
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         {fGeometry = geom;}
33     
34     virtual AliGeometry* GetGeometry() const  
35         {return fGeometry;}
36     //
37     // Add a new subdetector 
38     virtual void AddSubdetector(AliFastDetector *Detector, char* Name);
39     virtual TList* Subdetectors() {return fSubdetectors;}
40     //
41     // Add a new response
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);
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     ClassDef(AliFastDetector,1) // Base class for fast detector
65 };
66
67 #endif 
68
69
70