]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSsimulation.h
Fixes for Febr. 2008 run
[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>
8ba39da9 21#include "AliITSDetTypeSim.h"
ac8cbb66 22#include "AliITSpList.h"
b0f5e3fc 23
fcf95fc7 24class AliITSCalibration;
b0f5e3fc 25class AliITSsegmentation;
26class AliITSmodule;
e8189707 27class TRandom;
b361c75d 28class 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
34class 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.
44 virtual 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