/* $Id$ */
#include <TObject.h>
+#include "AliITSDetTypeSim.h"
+#include "AliITSpList.h"
-class AliITSresponse;
+class AliITSCalibration;
class AliITSsegmentation;
class AliITSmodule;
class TRandom;
-class AliITSpList;
class TClonesArray;
// This is the base class for ITS detector signal simulations. Data members
class AliITSsimulation : public TObject {
- public:
+ public:
AliITSsimulation(); // Default constructor
+ // Standard constructor
+ AliITSsimulation(AliITSDetTypeSim *dettyp);
virtual ~AliITSsimulation(); // destructor
// copy constructor. See detector specific implementation.
AliITSsimulation(const AliITSsimulation &source);
// Assignment opporator. See detector specific implementation.
- virtual AliITSsimulation& operator=(const AliITSsimulation &source);
+ AliITSsimulation& operator=(const AliITSsimulation &source);
+ // Initialize simulation
+ virtual void Init() {};
// ***************** Hits -> SDigits ******************
// digitize module using the "slow" detector simulator creating
// summable digits.
- virtual void SDigitiseModule(AliITSmodule *mod,Int_t module,Int_t event){;}
+ virtual void SDigitiseModule(AliITSmodule *,Int_t,Int_t){;}
// ***************** sum of SDigits -> Digits **********
// Reset module arrays (maps), etc
- virtual void InitSimulationModule( Int_t module, Int_t event ){;}
+ virtual void InitSimulationModule(Int_t,Int_t){;}
// add (sum) a new list of summable digits to module,
// add an offset (mask) to the track numbers. Returns kTRUE if there
// is a "good" signal in this module.
// **************** Hits -> Digits *********************
// digitize module using the "slow" detector simulator creating digits.
- virtual void DigitiseModule(AliITSmodule *mod,Int_t module,Int_t event) {;}
+ virtual void DigitiseModule(AliITSmodule *,Int_t,Int_t) {;}
// digitizes module using the "fast" detector simulator.
- virtual void CreateFastRecPoints(AliITSmodule *mod,Int_t module,
- TRandom *rndm) {}
- // Return pointer to Response model
- virtual AliITSresponse* GetResponseModel(){return fResponse;}
- // set pointer to Response model
- virtual void SetResponseModel(AliITSresponse *res){fResponse = res;}
- // Return pointer to Response model
- virtual AliITSsegmentation* GetSegmentationModel(){return fSegmentation;}
- // set pointer to Response model
- virtual void SetSegmentationModel(AliITSsegmentation *seg){
- fSegmentation = seg;}
+ virtual void CreateFastRecPoints(AliITSmodule *,Int_t,
+ TRandom *,TClonesArray* /*recp*/) {;}
+ // Return pointer to Response model
+ virtual AliITSCalibration* GetCalibrationModel(Int_t mod = 0){return fDetType->GetCalibrationModel(mod);}
+ // set pointer to Response model
+ virtual void SetCalibrationModel(Int_t mod, AliITSCalibration *res){fDetType->SetCalibrationModel(mod,res);}
+ // Return pointer to Segmentation object
+ virtual AliITSsegmentation* GetSegmentationModel(Int_t dt) = 0;
+ // set pointer to Segmentation object
+ virtual void SetSegmentationModel(Int_t dt,AliITSsegmentation *seg) = 0;
+ virtual AliITSpList* GetMap(){return fpList;} // Returns fpList, the map.
+ virtual void SetMap(AliITSpList *p){fpList = p;} // Sets fpList, the map.
+ virtual void ClearMap(){fpList->ClearMap();} // Clear fpList, map.
+ virtual void SetModuleNumber(Int_t mod){fModule=mod;} // Set Module number
+ virtual Int_t GetModuleNumber()const {return fModule;}// Gets Module number
+ virtual void SetEventNumber(Int_t evnt){fEvent=evnt;} // Set Event number
+ virtual Int_t GetEventNumber()const {return fEvent;}// Gets Event number
+ // Sets the debug flag for debugging output
+ void SetDebug(Int_t level=5){fDebug=level;}
+ // Clears the debug flag so no debugging output will be generated
+ void SetNoDebug(){fDebug=0;}
+ // Returns the debug flag value
+ Bool_t GetDebug(Int_t level=1)const {return fDebug>=level;}
+ void SetDetType(AliITSDetTypeSim* dettyp) {fDetType=dettyp;}
protected:
- AliITSresponse *fResponse; //! response
- AliITSsegmentation *fSegmentation; //! segmentation
+ AliITSDetTypeSim *fDetType; //! Access resp and segm via this obj
AliITSpList *fpList; //!
Int_t fModule; //!
Int_t fEvent; //!
+ Int_t fDebug; // debug flag
- ClassDef(AliITSsimulation,1) // Simulation base class
+ ClassDef(AliITSsimulation,4) // Simulation base class
};