]>
Commit | Line | Data |
---|---|---|
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> | |
8ba39da9 | 21 | #include "AliITSDetTypeSim.h" |
ac8cbb66 | 22 | #include "AliITSpList.h" |
b0f5e3fc | 23 | |
fcf95fc7 | 24 | class AliITSCalibration; |
b0f5e3fc | 25 | class AliITSsegmentation; |
26 | class AliITSmodule; | |
e8189707 | 27 | class TRandom; |
b361c75d | 28 | class TClonesArray; |
b0f5e3fc | 29 | |
158283cd | 30 | // This is the base class for ITS detector signal simulations. Data members |
31 | // include are a pointer to the detectors specific response and segmentation | |
32 | // classes. See the detector specific implementations for the propper code. | |
b0f5e3fc | 33 | |
34 | class AliITSsimulation : public TObject { | |
35 | ||
aacedc3e | 36 | public: |
158283cd | 37 | AliITSsimulation(); // Default constructor |
aacedc3e | 38 | // Standard constructor |
8ba39da9 | 39 | AliITSsimulation(AliITSDetTypeSim *dettyp); |
b361c75d | 40 | virtual ~AliITSsimulation(); // destructor |
158283cd | 41 | // copy constructor. See detector specific implementation. |
42 | AliITSsimulation(const AliITSsimulation &source); | |
43 | // Assignment opporator. See detector specific implementation. | |
85f5e9c2 | 44 | AliITSsimulation& operator=(const AliITSsimulation &source); |
aacedc3e | 45 | // Initialize simulation |
46 | virtual void Init() {}; | |
b361c75d | 47 | |
48 | // ***************** Hits -> SDigits ****************** | |
c7a4dac0 | 49 | // digitize module using the "slow" detector simulator creating |
50 | // summable digits. | |
ac74f489 | 51 | virtual void SDigitiseModule(AliITSmodule *,Int_t,Int_t){;} |
b361c75d | 52 | |
53 | // ***************** sum of SDigits -> Digits ********** | |
54 | // Reset module arrays (maps), etc | |
ac74f489 | 55 | virtual void InitSimulationModule(Int_t,Int_t){;} |
b361c75d | 56 | // add (sum) a new list of summable digits to module, |
d4a64099 | 57 | // add an offset (mask) to the track numbers. Returns kTRUE if there |
58 | // is a "good" signal in this module. | |
59 | virtual Bool_t AddSDigitsToModule( TClonesArray *pItemArray, Int_t mask ); | |
b361c75d | 60 | // digitize module using the "slow" detector simulator from |
61 | // the sum of summable digits. | |
62 | virtual void FinishSDigitiseModule(){;} | |
63 | ||
64 | // **************** Hits -> Digits ********************* | |
c7a4dac0 | 65 | // digitize module using the "slow" detector simulator creating digits. |
ac74f489 | 66 | virtual void DigitiseModule(AliITSmodule *,Int_t,Int_t) {;} |
158283cd | 67 | // digitizes module using the "fast" detector simulator. |
ac74f489 | 68 | virtual void CreateFastRecPoints(AliITSmodule *,Int_t, |
7d62fb64 | 69 | TRandom *,TClonesArray* /*recp*/) {;} |
8ba39da9 | 70 | // Return pointer to Response model |
fcf95fc7 | 71 | virtual AliITSCalibration* GetCalibrationModel(Int_t mod = 0){return fDetType->GetCalibrationModel(mod);} |
8ba39da9 | 72 | // set pointer to Response model |
fcf95fc7 | 73 | virtual void SetCalibrationModel(Int_t mod, AliITSCalibration *res){fDetType->SetCalibrationModel(mod,res);} |
8ba39da9 | 74 | // Return pointer to Segmentation object |
75 | virtual AliITSsegmentation* GetSegmentationModel(Int_t dt) = 0; | |
76 | // set pointer to Segmentation object | |
77 | virtual void SetSegmentationModel(Int_t dt,AliITSsegmentation *seg) = 0; | |
ac8cbb66 | 78 | virtual AliITSpList* GetMap(){return fpList;} // Returns fpList, the map. |
79 | virtual void SetMap(AliITSpList *p){fpList = p;} // Sets fpList, the map. | |
80 | virtual void ClearMap(){fpList->ClearMap();} // Clear fpList, map. | |
81 | virtual void SetModuleNumber(Int_t mod){fModule=mod;} // Set Module number | |
c135f70d | 82 | virtual Int_t GetModuleNumber()const {return fModule;}// Gets Module number |
ac8cbb66 | 83 | virtual void SetEventNumber(Int_t evnt){fEvent=evnt;} // Set Event number |
c135f70d | 84 | virtual Int_t GetEventNumber()const {return fEvent;}// Gets Event number |
aacedc3e | 85 | // Sets the debug flag for debugging output |
86 | void SetDebug(Int_t level=5){fDebug=level;} | |
87 | // Clears the debug flag so no debugging output will be generated | |
88 | void SetNoDebug(){fDebug=0;} | |
89 | // Returns the debug flag value | |
90 | Bool_t GetDebug(Int_t level=1)const {return fDebug>=level;} | |
7dc65edb | 91 | void SetDetType(AliITSDetTypeSim* dettyp) {fDetType=dettyp;} |
b0f5e3fc | 92 | |
b361c75d | 93 | protected: |
8ba39da9 | 94 | AliITSDetTypeSim *fDetType; //! Access resp and segm via this obj |
b361c75d | 95 | AliITSpList *fpList; //! |
96 | Int_t fModule; //! | |
97 | Int_t fEvent; //! | |
aacedc3e | 98 | Int_t fDebug; // debug flag |
b0f5e3fc | 99 | |
8ba39da9 | 100 | ClassDef(AliITSsimulation,4) // Simulation base class |
b0f5e3fc | 101 | |
102 | }; | |
103 | ||
b0f5e3fc | 104 | #endif |