#ifndef ALIITSSIMULATIONSSD_H
#define ALIITSSIMULATIONSSD_H
#include "AliITSsimulation.h"
#include "AliITSsegmentationSSD.h"
class AliITSMapA2;
class AliITSpList;
class AliITSTableSSD;
class AliITSsegmentationSSD;
class AliITSCalibrationSSD;
class TF1;
class AliITSsimulationSSD: public AliITSsimulation {
public:
AliITSsimulationSSD();
AliITSsimulationSSD(const AliITSsimulationSSD &source);
AliITSsimulationSSD& operator=(const AliITSsimulationSSD &source);
AliITSsimulationSSD(AliITSDetTypeSim* dettyp);
virtual ~AliITSsimulationSSD();
virtual AliITSsegmentation* GetSegmentationModel(Int_t ){return fDetType->GetSegmentationModel(2);}
virtual void SetSegmentationModel(Int_t , AliITSsegmentation *seg){fDetType->SetSegmentationModel(2,seg);}
void Init();
void InitSimulationModule(Int_t module,Int_t events);
void FinishSDigitiseModule();
void DigitiseModule(AliITSmodule *mod,Int_t dummy0,Int_t dummy1);
void SDigitiseModule(AliITSmodule *mod,Int_t module,Int_t dummy);
void HitsToAnalogDigits(AliITSmodule *mod,AliITSpList *pList);
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);
Double_t GetIonizeE() const {return fIonE;}
void SetIonizeE(Double_t e=3.62E-09){fIonE = e;}
Double_t GetDiffConst(Int_t i) const {return fDifConst[i];}
void SetDiffConst(Double_t h=11.0,Double_t e=30.0)
{fDifConst[0] = h;fDifConst[1]=e;}
Double_t GetDriftVelocity(Int_t i) const {return fDriftVel[i];}
void SetDriftVelocity(Double_t v0=0.86E+06,Double_t v1=2.28E+06)
{fDriftVel[0] = v0;fDriftVel[1] = v1;}
void SetLorentzDrift(Bool_t b=kFALSE)
{fLorentz=b; if(fLorentz) SetTanLorAngle();};
Bool_t SetTanLorAngle();
Double_t GetTanLorAngleP() const {return fTanLorAngP;};
Double_t GetTanLorAngleN() const {return fTanLorAngN;};
void Print(ostream *os);
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);}
protected:
private:
Int_t NumOfSteps(Double_t x,Double_t y,Double_t z,
Double_t &dex,Double_t &dey,Double_t &dez);
void GetList(Int_t trk,Int_t ht,Int_t mod,AliITSpList *pLt,
AliITSTableSSD *tav);
void ChargeToSignal(Int_t module,const AliITSpList *pList);
void WriteSDigits(AliITSpList *pList);
void SDigitToDigit(Int_t module,AliITSpList *pList);
void FillMapFrompList(AliITSpList *pList);
void IntegrateGaussian(Int_t k,Double_t par,Double_t av,Double_t sigma,
Double_t inf, Double_t sup,
AliITSTableSSD *tav);
void ApplyNoise(AliITSpList *pList,Int_t mod);
void ApplyCoupling(AliITSpList *pList,Int_t mod);
void ApplyDeadChannels(Int_t mod);
Float_t F(Float_t av, Float_t x, Float_t s);
Int_t GetNStrips() {AliITSsegmentationSSD* seg = (AliITSsegmentationSSD*)GetSegmentationModel(2);return seg->Npx();}
Float_t GetStripPitch() {AliITSsegmentationSSD* seg = (AliITSsegmentationSSD*)GetSegmentationModel(2);return seg->Dpx(0);}
AliITSMapA2 *fMapA2;
Double_t fIonE;
Double_t fDifConst[2];
Double_t fDriftVel[2];
TF1 *fTimeResponse;
Bool_t fLorentz;
Double_t fTanLorAngP;
Double_t fTanLorAngN;
ClassDef(AliITSsimulationSSD,3)
};
ostream &operator<<(ostream &os,AliITSsimulationSSD &source);
istream &operator>>(istream &is,AliITSsimulationSSD &source);
#endif
AliITSsimulationSSD.h:100 AliITSsimulationSSD.h:101 AliITSsimulationSSD.h:102 AliITSsimulationSSD.h:103 AliITSsimulationSSD.h:104 AliITSsimulationSSD.h:105 AliITSsimulationSSD.h:106 AliITSsimulationSSD.h:107 AliITSsimulationSSD.h:108 AliITSsimulationSSD.h:109 AliITSsimulationSSD.h:110 AliITSsimulationSSD.h:111 AliITSsimulationSSD.h:112 AliITSsimulationSSD.h:113 AliITSsimulationSSD.h:114 AliITSsimulationSSD.h:115 AliITSsimulationSSD.h:116 AliITSsimulationSSD.h:117 AliITSsimulationSSD.h:118 AliITSsimulationSSD.h:119 AliITSsimulationSSD.h:120 AliITSsimulationSSD.h:121 AliITSsimulationSSD.h:122 AliITSsimulationSSD.h:123 AliITSsimulationSSD.h:124 AliITSsimulationSSD.h:125 AliITSsimulationSSD.h:126 AliITSsimulationSSD.h:127 AliITSsimulationSSD.h:128 AliITSsimulationSSD.h:129 AliITSsimulationSSD.h:130 AliITSsimulationSSD.h:131 AliITSsimulationSSD.h:132 AliITSsimulationSSD.h:133 AliITSsimulationSSD.h:134 AliITSsimulationSSD.h:135 AliITSsimulationSSD.h:136 AliITSsimulationSSD.h:137 AliITSsimulationSSD.h:138 AliITSsimulationSSD.h:139 AliITSsimulationSSD.h:140 AliITSsimulationSSD.h:141 AliITSsimulationSSD.h:142 AliITSsimulationSSD.h:143 AliITSsimulationSSD.h:144 AliITSsimulationSSD.h:145 AliITSsimulationSSD.h:146 AliITSsimulationSSD.h:147 AliITSsimulationSSD.h:148 AliITSsimulationSSD.h:149 AliITSsimulationSSD.h:150 AliITSsimulationSSD.h:151 AliITSsimulationSSD.h:152 AliITSsimulationSSD.h:153 AliITSsimulationSSD.h:154 AliITSsimulationSSD.h:155