+ public:
+ AliITSsimulationSSD(); // Default constructor
+ AliITSsimulationSSD(const AliITSsimulationSSD &source); // copy constructor
+ // operator =
+ AliITSsimulationSSD& operator=(const AliITSsimulationSSD &source);
+ // virtual AliITSsimulation& operator=(const AliITSsimulation &source);
+ //Standard Constructor
+ AliITSsimulationSSD(AliITSDetTypeSim* dettyp);
+ //Destructor
+ virtual ~AliITSsimulationSSD();
+ // Get a pointer to the segmentation object
+ virtual AliITSsegmentation* GetSegmentationModel(Int_t /*dt*/){return fDetType->GetSegmentationModel(2);}
+ // set pointer to segmentation objec
+ virtual void SetSegmentationModel(Int_t /*dt*/, AliITSsegmentation *seg){fDetType->SetSegmentationModel(2,seg);}
+ // Initilize variables for this simulation
+ void Init();
+ // Initilize variables for this simulation
+ //void Init(AliITSsegmentationSSD *seg,AliITSCalibrationSSD *resp);
+ // Create maps to build the lists of tracks for each summable digit
+ void InitSimulationModule(Int_t module,Int_t events);
+ // Digitize module from the sum of summable digits.
+ void FinishSDigitiseModule();
+ //Digitizes all of the hits in a module
+ void DigitiseModule(AliITSmodule *mod,Int_t dummy0,Int_t dummy1);
+ // Computes the Summable Digits
+ void SDigitiseModule(AliITSmodule *mod,Int_t module,Int_t dummy);
+ // Computes the Charge on each Strip/ Analog/summable digits
+ void HitsToAnalogDigits(AliITSmodule *mod,AliITSpList *pList);
+ //Computes the signal from one hit
+ void HitToDigit(Int_t module,Double_t x0,Double_t y0,Double_t z0,
+ Double_t x,Double_t y,Double_t z,Double_t de,
+ AliITSTableSSD *tav);
+ //returns a pointer to the SSD segmentation.
+ /*AliITSsegmentationSSD *GetSegmentation() {
+ return (AliITSsegmentationSSD*) fSegmentation;}
+ */
+ //Returns the ionization energy for Si in GeV.
+ Double_t GetIonizeE() const {return fIonE;}
+ //Sets the ionization energy for Si in GeV.
+ void SetIonizeE(Double_t e=3.62E-09){fIonE = e;}
+ //Returns the Diffusion constant h in cm**2/sec
+ Double_t GetDiffConst(Int_t i) const {return fDifConst[i];}
+ //Sets the Diffusion constant h in cm**2/sec
+ void SetDiffConst(Double_t h=11.0,Double_t e=30.0)
+ {fDifConst[0] = h;fDifConst[1]=e;}
+ //Returns the Drift velocity for the side i
+ Double_t GetDriftVelocity(Int_t i) const {return fDriftVel[i];}
+ //Sets the Drift velocity for the P and N sides
+ void SetDriftVelocity(Double_t v0=0.86E+06,Double_t v1=2.28E+06)
+ {fDriftVel[0] = v0;fDriftVel[1] = v1;}
+ // Standard ascii class print function
+ void Print(ostream *os);
+ // Standard ascii class read function
+ void Read(istream *is);
+ virtual void Print(Option_t *option="") const {TObject::Print(option);}
+ virtual Int_t Read(const char *name) {return TObject::Read(name);}
+ // Data members
+ protected: