]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSsimulation.h
replaces AliPHOSAliEnFile: references to AliEn removed
[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
18 /* $Id$ */
19
20 #include <TObject.h>
21 #include "AliITSpList.h"
22
23 class AliITSresponse;
24 class AliITSsegmentation;
25 class AliITSmodule;
26 class TRandom;
27 class TClonesArray;
28
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.
32
33 class AliITSsimulation : public TObject {
34
35  public:
36     AliITSsimulation(); // Default constructor
37     virtual ~AliITSsimulation(); // destructor
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);
42
43     // *****************  Hits -> SDigits ******************
44     // digitize module using the "slow" detector simulator creating
45     // summable digits.
46     virtual void SDigitiseModule(AliITSmodule *,Int_t,Int_t){;}
47
48     // ***************** sum of SDigits -> Digits **********
49     // Reset module arrays (maps), etc
50     virtual void InitSimulationModule(Int_t,Int_t){;}
51     // add (sum) a new list of summable digits to module, 
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 );
55     // digitize module using the "slow" detector simulator from
56     // the sum of summable digits.
57     virtual void FinishSDigitiseModule(){;}
58
59     // **************** Hits -> Digits *********************
60     // digitize module using the "slow" detector simulator creating digits.
61     virtual void DigitiseModule(AliITSmodule *,Int_t,Int_t) {;}
62     // digitizes module using the "fast" detector simulator.
63     virtual void CreateFastRecPoints(AliITSmodule *,Int_t,
64                                      TRandom *) {;}
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){
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
78     virtual Int_t GetModuleNumber()const {return fModule;}// Gets Module number
79     virtual void SetEventNumber(Int_t evnt){fEvent=evnt;} // Set Event number
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;}
83
84  protected:
85     AliITSresponse      *fResponse;       //! response
86     AliITSsegmentation  *fSegmentation;   //! segmentation 
87     AliITSpList         *fpList;          //!
88     Int_t                fModule;         //!
89     Int_t                fEvent;          //!
90     Bool_t               fDebug;          //  debug flag
91
92   ClassDef(AliITSsimulation,2)  // Simulation base class 
93     
94 };
95
96 #endif