Class now derived from TObject as required. Fixed copy constructor and
[u/mrichter/AliRoot.git] / ITS / AliITSsimulation.h
CommitLineData
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>
21
22class AliITSresponse;
23class AliITSsegmentation;
24class AliITSmodule;
e8189707 25class TRandom;
b361c75d 26class AliITSpList;
27class 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
33class 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.
46 virtual void SDigitiseModule(AliITSmodule *mod,Int_t module,Int_t event){;}
b361c75d 47
48 // ***************** sum of SDigits -> Digits **********
49 // Reset module arrays (maps), etc
50 virtual void InitSimulationModule( Int_t module, Int_t event ){;}
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.
158283cd 61 virtual void DigitiseModule(AliITSmodule *mod,Int_t module,Int_t event) {;}
62 // digitizes module using the "fast" detector simulator.
63 virtual void CreateFastRecPoints(AliITSmodule *mod,Int_t module,
64 TRandom *rndm) {}
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){
73 fSegmentation = seg;}
b0f5e3fc 74
b361c75d 75 protected:
76 AliITSresponse *fResponse; //! response
77 AliITSsegmentation *fSegmentation; //! segmentation
78 AliITSpList *fpList; //!
79 Int_t fModule; //!
80 Int_t fEvent; //!
b0f5e3fc 81
82 ClassDef(AliITSsimulation,1) // Simulation base class
83
84};
85
b0f5e3fc 86#endif