- static Int_t GetMapTimeNBin() {return fgkMapTimeNBin;}
-
- virtual void SetElectronics(Int_t p1=1) {((AliITSresponseSDD*)fResponse)->SetElectronics(p1);}
- virtual Int_t GetElectronics() const {return ((AliITSresponseSDD*)fResponse)->Electronics();}
- virtual void SetMaxAdc(Double_t p1) {((AliITSresponseSDD*)fResponse)->SetMaxAdc(p1);}
- virtual Float_t GetMaxAdc() const {return ((AliITSresponseSDD*)fResponse)->MaxAdc();}
- virtual void SetChargeLoss(Double_t p1) {((AliITSresponseSDD*)fResponse)->SetChargeLoss(p1);}
- virtual Float_t GetChargeLoss() const {return ((AliITSresponseSDD*)fResponse)->ChargeLoss();}
- virtual void SetDynamicRange(Double_t p1) {((AliITSresponseSDD*)fResponse)->SetDynamicRange(p1);}
- virtual Float_t GetDynamicRange() const {return ((AliITSresponseSDD*)fResponse)->DynamicRange();}
- virtual void SetDriftSpeed(Double_t p1) {((AliITSresponseSDD*)fResponse)->SetDriftSpeed(p1);}
- virtual Float_t GetDriftSpeed() const {return ((AliITSresponseSDD*)fResponse)->DriftSpeed();}
- virtual void SetParamOptions(const char *opt1,const char *opt2) {((AliITSresponseSDD*)fResponse)->SetParamOptions(opt1,opt2);}
- virtual void GetParamOptions(char *opt1,char *opt2) const {((AliITSresponseSDD*)fResponse)->ParamOptions(opt1,opt2);}
- virtual Bool_t Do10to8() const {return ((AliITSresponseSDD*)fResponse)->Do10to8();}
- virtual void SetZeroSupp (const char *opt) {((AliITSresponseSDD*)fResponse)->SetZeroSupp(opt);}
- virtual const char *GetZeroSuppOption() const {return ((AliITSresponseSDD*)fResponse)->ZeroSuppOption();}
- virtual void SetNSigmaIntegration(Double_t p1) {((AliITSresponseSDD*)fResponse)->SetNSigmaIntegration(p1);}
- virtual Float_t GetNSigmaIntegration() const {return ((AliITSresponseSDD*)fResponse)->NSigmaIntegration();}
- virtual void SetNLookUp(Int_t p1) {((AliITSresponseSDD*)fResponse)->SetNLookUp(p1);}
- virtual Int_t GetGausNLookUp() const {return ((AliITSresponseSDD*)fResponse)->GausNLookUp();}
- virtual Float_t GetGausLookUp(Int_t i) const {return ((AliITSresponseSDD*)fResponse)->GausLookUp(i);}
- virtual Int_t Convert8to10(Int_t signal) const {return ((AliITSresponseSDD*)fResponse)->Convert8to10(signal);}
- virtual void SetJitterError(Double_t jitter=20) {((AliITSresponseSDD*)fResponse)->SetJitterError(jitter);}
- virtual Float_t GetJitterError() const {return ((AliITSresponseSDD*)fResponse)->JitterError();}
- virtual Float_t GetDriftPath(Float_t time,Float_t /*anodecoord*/) const {return time*GetDriftSpeed();}
- virtual Float_t GetThresholdAnode(Int_t anode,Int_t nsigma=3) const {
+
+ virtual void SetDriftSpeed(Int_t wing, AliITSDriftSpeedArraySDD* arr){
+ if(wing==0) fDrSpeed0=arr;
+ else fDrSpeed1=arr;
+ }
+
+
+ virtual Float_t GetDriftSpeedAtAnode(Float_t nAnode) const{
+ if(fDrSpeed0==0 || fDrSpeed1==0) AliFatal("Drift speed not set\n");
+ if(nAnode<256) return fDrSpeed0->GetDriftSpeed(0,nAnode);
+ else return fDrSpeed1->GetDriftSpeed(0,nAnode-256);
+ }
+
+ virtual void SetZeroSupp(Bool_t opt=kTRUE) {fZeroSupp=opt;}
+ virtual Bool_t GetZeroSupp() const {return fZeroSupp;}
+
+ virtual void SetAMAt40MHz() {fAMAt20MHz=kFALSE;}
+ virtual void SetAMAt20MHz() {fAMAt20MHz=kTRUE;}
+ virtual Bool_t IsAMAt20MHz() const {return fAMAt20MHz;}
+
+ void GetCorrections(Float_t z, Float_t x, Float_t &devz, Float_t &devx, AliITSsegmentationSDD* seg);
+ void GetShiftsForSimulation(Float_t z, Float_t x, Float_t &devz, Float_t &devx, AliITSsegmentationSDD* seg);
+ virtual Float_t GetThresholdAnode(Int_t anode, Double_t nsigma=2.2) const {