b0f5e3fc |
1 | #ifndef ALIITSSIMULATION_H |
2 | #define ALIITSSIMULATION_H |
158283cd |
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 | **************************************************************************/ |
88cb7938 |
17 | |
158283cd |
18 | /* $Id$ */ |
b0f5e3fc |
19 | |
20 | #include <TObject.h> |
ac8cbb66 |
21 | #include "AliITSpList.h" |
b0f5e3fc |
22 | |
23 | class AliITSresponse; |
24 | class AliITSsegmentation; |
25 | class AliITSmodule; |
e8189707 |
26 | class TRandom; |
b361c75d |
27 | class TClonesArray; |
b0f5e3fc |
28 | |
158283cd |
29 | // This is the base class for ITS detector signal simulations. Data members |
30 | // include are a pointer to the detectors specific response and segmentation |
31 | // classes. See the detector specific implementations for the propper code. |
b0f5e3fc |
32 | |
33 | class AliITSsimulation : public TObject { |
34 | |
158283cd |
35 | public: |
36 | AliITSsimulation(); // Default constructor |
b361c75d |
37 | virtual ~AliITSsimulation(); // destructor |
158283cd |
38 | // copy constructor. See detector specific implementation. |
39 | AliITSsimulation(const AliITSsimulation &source); |
40 | // Assignment opporator. See detector specific implementation. |
41 | virtual AliITSsimulation& operator=(const AliITSsimulation &source); |
b361c75d |
42 | |
43 | // ***************** Hits -> SDigits ****************** |
c7a4dac0 |
44 | // digitize module using the "slow" detector simulator creating |
45 | // summable digits. |
ac74f489 |
46 | virtual void SDigitiseModule(AliITSmodule *,Int_t,Int_t){;} |
b361c75d |
47 | |
48 | // ***************** sum of SDigits -> Digits ********** |
49 | // Reset module arrays (maps), etc |
ac74f489 |
50 | virtual void InitSimulationModule(Int_t,Int_t){;} |
b361c75d |
51 | // add (sum) a new list of summable digits to module, |
d4a64099 |
52 | // add an offset (mask) to the track numbers. Returns kTRUE if there |
53 | // is a "good" signal in this module. |
54 | virtual Bool_t AddSDigitsToModule( TClonesArray *pItemArray, Int_t mask ); |
b361c75d |
55 | // digitize module using the "slow" detector simulator from |
56 | // the sum of summable digits. |
57 | virtual void FinishSDigitiseModule(){;} |
58 | |
59 | // **************** Hits -> Digits ********************* |
c7a4dac0 |
60 | // digitize module using the "slow" detector simulator creating digits. |
ac74f489 |
61 | virtual void DigitiseModule(AliITSmodule *,Int_t,Int_t) {;} |
158283cd |
62 | // digitizes module using the "fast" detector simulator. |
ac74f489 |
63 | virtual void CreateFastRecPoints(AliITSmodule *,Int_t, |
64 | TRandom *) {;} |
39f63301 |
65 | // Return pointer to Response model |
66 | virtual AliITSresponse* GetResponseModel(){return fResponse;} |
67 | // set pointer to Response model |
68 | virtual void SetResponseModel(AliITSresponse *res){fResponse = res;} |
69 | // Return pointer to Response model |
70 | virtual AliITSsegmentation* GetSegmentationModel(){return fSegmentation;} |
71 | // set pointer to Response model |
72 | virtual void SetSegmentationModel(AliITSsegmentation *seg){ |
ac8cbb66 |
73 | fSegmentation = seg;} |
74 | virtual AliITSpList* GetMap(){return fpList;} // Returns fpList, the map. |
75 | virtual void SetMap(AliITSpList *p){fpList = p;} // Sets fpList, the map. |
76 | virtual void ClearMap(){fpList->ClearMap();} // Clear fpList, map. |
77 | virtual void SetModuleNumber(Int_t mod){fModule=mod;} // Set Module number |
c135f70d |
78 | virtual Int_t GetModuleNumber()const {return fModule;}// Gets Module number |
ac8cbb66 |
79 | virtual void SetEventNumber(Int_t evnt){fEvent=evnt;} // Set Event number |
c135f70d |
80 | virtual Int_t GetEventNumber()const {return fEvent;}// Gets Event number |
81 | virtual Bool_t GetDebug() const {return fDebug;} |
82 | virtual void SetDebug(Bool_t db = kTRUE) {fDebug = db;} |
b0f5e3fc |
83 | |
b361c75d |
84 | protected: |
85 | AliITSresponse *fResponse; //! response |
86 | AliITSsegmentation *fSegmentation; //! segmentation |
87 | AliITSpList *fpList; //! |
88 | Int_t fModule; //! |
89 | Int_t fEvent; //! |
c135f70d |
90 | Bool_t fDebug; // debug flag |
b0f5e3fc |
91 | |
c135f70d |
92 | ClassDef(AliITSsimulation,2) // Simulation base class |
b0f5e3fc |
93 | |
94 | }; |
95 | |
b0f5e3fc |
96 | #endif |