]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSsimulationSPDdubna.h
readers updated (mini header -> data header)
[u/mrichter/AliRoot.git] / ITS / AliITSsimulationSPDdubna.h
1 #ifndef ALIITSSIMULATIONSPDDUBNA_H
2 #define ALIITSSIMULATIONSPDDUBNA_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 #include "AliITSsimulation.h"
8 #include "AliITSresponseSPDdubna.h"
9 #include "AliITSsegmentationSPD.h"
10
11 class AliITSmodule;
12
13 //-------------------------------------------------------------------
14
15 class AliITSsimulationSPDdubna : public AliITSsimulation {
16  public:
17     AliITSsimulationSPDdubna();
18     AliITSsimulationSPDdubna(AliITSsegmentation *seg, AliITSresponse *res);
19     virtual ~AliITSsimulationSPDdubna();
20     // copy constructor
21     AliITSsimulationSPDdubna(const AliITSsimulationSPDdubna &source); 
22      // ass. operator
23     AliITSsimulationSPDdubna& operator=(const AliITSsimulationSPDdubna &s);
24     // Initilizes the variables
25     void Init(AliITSsegmentation *seg, AliITSresponse *resp);
26
27     void InitSimulationModule(Int_t module, Int_t event);
28     void SDigitiseModule(AliITSmodule *mod, Int_t mask, Int_t event);
29     void WriteSDigits();
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
42
43  private:
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();}
64
65     ClassDef(AliITSsimulationSPDdubna,2)  // Simulation of SPD clusters
66
67     TObjArray    *fHis;          //! just in case for histogramming
68
69 };
70 #endif