]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSsimulation.h
Introduced Getters and setters for ResponseModel and SegmentationModel
[u/mrichter/AliRoot.git] / ITS / AliITSsimulation.h
1 #ifndef ALIITSSIMULATION_H
2 #define ALIITSSIMULATION_H
3 /**************************************************************************
4  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  *                                                                        *
6  * Author: The ALICE Off-line Project.                                    *
7  * Contributors are mentioned in the code where appropriate.              *
8  *                                                                        *
9  * Permission to use, copy, modify and distribute this software and its   *
10  * documentation strictly for non-commercial purposes is hereby granted   *
11  * without fee, provided that the above copyright notice appears in all   *
12  * copies and that both the copyright notice and this permission notice   *
13  * appear in the supporting documentation. The authors make no claims     *
14  * about the suitability of this software for any purpose. It is          *
15  * provided "as is" without express or implied warranty.                  *
16  **************************************************************************/
17 /* $Id$ */
18
19 #include <TObject.h>
20
21 class AliITSresponse;
22 class AliITSsegmentation;
23 class AliITSmodule;
24 class TRandom;
25 class AliITSpList;
26 class TClonesArray;
27
28 // This is the base class for ITS detector signal simulations. Data members
29 // include are a pointer to the detectors specific response and segmentation
30 // classes. See the detector specific implementations for the propper code.
31
32 class AliITSsimulation : public TObject {
33
34  public:
35     AliITSsimulation(); // Default constructor
36     virtual ~AliITSsimulation(); // destructor
37     // copy constructor. See detector specific implementation.
38     AliITSsimulation(const AliITSsimulation &source);
39     // Assignment opporator. See detector specific implementation.
40     virtual AliITSsimulation& operator=(const AliITSsimulation &source);
41
42     // *****************  Hits -> SDigits ******************
43     // digitize module using the "slow" detector simulator creating
44     // summable digits.
45     virtual void SDigitiseModule(AliITSmodule *mod,Int_t module,Int_t event){;}
46
47     // ***************** sum of SDigits -> Digits **********
48     // Reset module arrays (maps), etc
49     virtual void InitSimulationModule( Int_t module, Int_t event ){;}
50     // add (sum) a new list of summable digits to module, 
51     // add an offset (mask) to the track numbers. Returns kTRUE if there
52     // is a "good" signal in this module.
53     virtual Bool_t AddSDigitsToModule( TClonesArray *pItemArray, Int_t mask );
54     // digitize module using the "slow" detector simulator from
55     // the sum of summable digits.
56     virtual void FinishSDigitiseModule(){;}
57
58     // **************** Hits -> Digits *********************
59     // digitize module using the "slow" detector simulator creating digits.
60     virtual void DigitiseModule(AliITSmodule *mod,Int_t module,Int_t event) {;}
61     // digitizes module using the "fast" detector simulator.
62     virtual void CreateFastRecPoints(AliITSmodule *mod,Int_t module,
63                                      TRandom *rndm) {}
64     // Return pointer to Response model
65     virtual AliITSresponse* GetResponseModel(){return fResponse;}
66     // set pointer to Response model
67     virtual void SetResponseModel(AliITSresponse *res){fResponse = res;}
68     // Return pointer to Response model
69     virtual AliITSsegmentation* GetSegmentationModel(){return fSegmentation;}
70     // set pointer to Response model
71     virtual void SetSegmentationModel(AliITSsegmentation *seg){
72         fSegmentation = seg;}
73
74  protected:
75     AliITSresponse      *fResponse;       //! response
76     AliITSsegmentation  *fSegmentation;   //! segmentation 
77     AliITSpList         *fpList;          //!
78     Int_t                fModule;         //!
79     Int_t                fEvent;          //!
80
81   ClassDef(AliITSsimulation,1)  // Simulation base class 
82     
83 };
84
85 #endif