1 #ifndef ALIITSSIMULATIONSPDDUBNA_H
2 #define ALIITSSIMULATIONSPDDUBNA_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 #include "AliITSsimulation.h"
8 #include "AliITSresponseSPDdubna.h"
9 #include "AliITSsegmentationSPD.h"
13 //-------------------------------------------------------------------
15 class AliITSsimulationSPDdubna : public AliITSsimulation {
17 AliITSsimulationSPDdubna();
18 AliITSsimulationSPDdubna(AliITSsegmentation *seg, AliITSresponse *res);
19 virtual ~AliITSsimulationSPDdubna();
21 AliITSsimulationSPDdubna(const AliITSsimulationSPDdubna &source);
23 AliITSsimulationSPDdubna& operator=(const AliITSsimulationSPDdubna &s);
24 // Initilizes the variables
25 void Init(AliITSsegmentation *seg, AliITSresponse *resp);
27 void InitSimulationModule(Int_t module, Int_t event);
28 void SDigitiseModule(AliITSmodule *mod, Int_t mask, Int_t event);
30 void FinishSDigitiseModule();
31 void SDigitsToDigits();
32 void DigitiseModule(AliITSmodule *mod,Int_t module,Int_t dummy);
33 void UpdateMapSignal(Int_t i,Int_t j,Int_t trk,Int_t ht,Double_t signal);
34 void UpdateMapNoise(Int_t ix,Int_t iz,Float_t noise);
35 void HitToDigit(AliITSmodule *mod);
36 void HitToSDigit(AliITSmodule *mod);
37 void HitToSDigitOld(AliITSmodule *mod);
38 void ChargeToSignal();
39 void CreateHistograms();
40 void ResetHistograms();
41 TObjArray* GetHistArray() {return fHis;}// get hist array
44 void SpreadCharge(Double_t x0,Double_t z0,Int_t ix0,Int_t iz0,
45 Double_t el,Double_t sig,Int_t t,Int_t hi);
46 AliITSsegmentationSPD* GetSeg(){ // Return pointer to Segmentation class
47 return (AliITSsegmentationSPD*)fSegmentation;}
48 AliITSresponseSPDdubna* GetResp(){ // Return pointer to Responce class
49 return (AliITSresponseSPDdubna*)fResponse;}
50 //Double_t * CreateFindCellEdges(Double_t x0,Double_t x1,Double_t z0,
51 // Double_t z1,Int_t &n);
52 void SetCoupling(Int_t row,Int_t col,Int_t ntrack,Int_t idhit);
53 void SetCouplingOld(Int_t row, Int_t col,Int_t ntrack,Int_t idhit);
54 // Getters for data kept in fSegmentation and fResponse.
55 // Returns the Threshold in electrons
56 Double_t GetThreshold(){ return GetResp()->GetThreshold();}
57 // Returns the couplings Columb and Row.
58 void GetCouplings(Float_t &cc,Float_t &cr){
59 ((AliITSresponseSPDdubna*)GetResp())->GetNoiseParam(cc,cr);}
60 // Returns the number of pixels in x
61 Int_t GetNPixelsX(){return GetSeg()->Npx();}
62 // Returns the number of pixels in z
63 Int_t GetNPixelsZ(){return GetSeg()->Npz();}
65 ClassDef(AliITSsimulationSPDdubna,2) // Simulation of SPD clusters
67 TObjArray *fHis; //! just in case for histogramming