ROOT logo
#ifndef ALIFASTDETECTOR_H
#define ALIFASTDETECTOR_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//
// Base class for fast simulation of a detctor
// or a system of subdetectors.
// The detector response is described by resolution and efficiency.
// Author:
// Andreas Morsch
// andreas.morsch@cern.ch

#include <TNamed.h>
class TList;
class TObjLink;
class AliFastResponse;
class AliFastParticle;
class AliGeometry;

class AliFastDetector : public TNamed {
    
 public:
    AliFastDetector();
    AliFastDetector(char* Name, char* Title);
    AliFastDetector(const AliFastDetector& det);    
    virtual ~AliFastDetector();
    virtual void Init();
    virtual void SetGeometry(AliGeometry* geom) 
	{fGeometry = geom;}
    
    virtual AliGeometry* GetGeometry() const  
	{return fGeometry;}
    //
    // Add a new subdetector 
    virtual void AddSubdetector(AliFastDetector *Detector, char* Name);
    virtual TList* Subdetectors() {return fSubdetectors;}
    //
    // Add a new response
    virtual void AddResponse(AliFastResponse *Response);
    virtual TList* Responses() {return fResponses;}
    virtual Float_t EvaluateEfficiency(AliFastParticle* part);
    virtual Bool_t  EvaluateAcceptance(AliFastParticle* part);
    virtual void    EvaluateResponse(AliFastParticle* part);
    
    // Iterators
    AliFastDetector*  FirstSubdetector();
    AliFastDetector*  NextSubdetector();
    AliFastResponse*  FirstResponse();
    AliFastResponse*  NextResponse();
    // Copy
    AliFastDetector& operator=(const AliFastDetector & rhs);
    void Copy(TObject&) const;
 protected:
    TList            *fSubdetectors;      // List of Subdetectors
    TList            *fResponses;         // Responses
    TObjLink         *fLnkD;              // Pointer to detector in list 
    TObjLink         *fLnkR;              // Pointer to response in list
    AliFastResponse  *fEfficiency;        // Efficiency Simulation
    AliFastResponse  *fResolution;        // Resolution Simulation
    AliGeometry      *fGeometry;          // Geometry 
    ClassDef(AliFastDetector,1) // Base class for fast detector
};

#endif 



 AliFastDetector.h:1
 AliFastDetector.h:2
 AliFastDetector.h:3
 AliFastDetector.h:4
 AliFastDetector.h:5
 AliFastDetector.h:6
 AliFastDetector.h:7
 AliFastDetector.h:8
 AliFastDetector.h:9
 AliFastDetector.h:10
 AliFastDetector.h:11
 AliFastDetector.h:12
 AliFastDetector.h:13
 AliFastDetector.h:14
 AliFastDetector.h:15
 AliFastDetector.h:16
 AliFastDetector.h:17
 AliFastDetector.h:18
 AliFastDetector.h:19
 AliFastDetector.h:20
 AliFastDetector.h:21
 AliFastDetector.h:22
 AliFastDetector.h:23
 AliFastDetector.h:24
 AliFastDetector.h:25
 AliFastDetector.h:26
 AliFastDetector.h:27
 AliFastDetector.h:28
 AliFastDetector.h:29
 AliFastDetector.h:30
 AliFastDetector.h:31
 AliFastDetector.h:32
 AliFastDetector.h:33
 AliFastDetector.h:34
 AliFastDetector.h:35
 AliFastDetector.h:36
 AliFastDetector.h:37
 AliFastDetector.h:38
 AliFastDetector.h:39
 AliFastDetector.h:40
 AliFastDetector.h:41
 AliFastDetector.h:42
 AliFastDetector.h:43
 AliFastDetector.h:44
 AliFastDetector.h:45
 AliFastDetector.h:46
 AliFastDetector.h:47
 AliFastDetector.h:48
 AliFastDetector.h:49
 AliFastDetector.h:50
 AliFastDetector.h:51
 AliFastDetector.h:52
 AliFastDetector.h:53
 AliFastDetector.h:54
 AliFastDetector.h:55
 AliFastDetector.h:56
 AliFastDetector.h:57
 AliFastDetector.h:58
 AliFastDetector.h:59
 AliFastDetector.h:60
 AliFastDetector.h:61
 AliFastDetector.h:62
 AliFastDetector.h:63
 AliFastDetector.h:64
 AliFastDetector.h:65
 AliFastDetector.h:66
 AliFastDetector.h:67
 AliFastDetector.h:68
 AliFastDetector.h:69
 AliFastDetector.h:70