-void AliITSCalibrationSDD::SetDeadChannels(Int_t nchip, Int_t nchan){
- // Set fGain to zero to simulate a random distribution of
- // dead modules, dead chips and single dead channels
-
- for( Int_t m=0; m<fgkWings; m++ )
- for( Int_t n=0; n<fgkChips; n++ )
- for( Int_t p=0; p<fgkChannels; p++ )
- fGain[m][n][p] = 1.;
-
- //fDeadModules = nmod;
- fDeadChips = nchip;
- fDeadChannels = nchan;
- fBadChannels.Set(fDeadChannels);
- // nothing to do
- //if( nmod == 0 && nchip == 0 && nchan == 0 ) return;
-
- if( nchip == 0 && nchan == 0 ) return;
- // if( nmod < 0 || nmod > fgkModules )
- // {
- // cout << "Wrong number of dead modules: " << nmod << endl;
- // return;
- // }
-
- Int_t nmax = fgkWings*fgkChips;
- if( nchip < 0 || nchip > nmax )
- {
- cout << "Wrong number of dead chips: " << nchip << endl;
- return;
- }
- nmax = (fgkWings*fgkChips - nchip)*fgkChannels;
- if( nchan < 0 || nchan > nmax )
- {
- cout << "Wrong number of dead channels: " << nchan << endl;
- return;
- }
-
- TRandom *gran = new TRandom();
- // cout << "chips" << endl;
- Int_t * chip = new Int_t[nchip];
- Int_t i = 0;
- while( i < nchip )
- {
- Int_t wing = (Int_t) (fgkWings*gran->Uniform() + 1.);
- if( wing <=0 || wing > fgkWings ) Error("SetDeadChannels","Wrong wing");
-
- Int_t chi = (Int_t) (fgkChips*gran->Uniform() + 1.);
- if( chi <=0 || chi > fgkChips ) Error("SetDeadChannels","Wrong chip:%d\n",chi);
- i++;
- chip[i-1] = chi;
- for( Int_t m=0; m<fgkChannels; m++ )
- fGain[wing-1][chi-1][m] = 0.;
- }
-
- Int_t * channel = new Int_t[nchan];
- Int_t * channelChip = new Int_t[nchan];
- i = 0;
- while( i < nchan )
- {
- Int_t k; //loop variable
- Int_t wing = (Int_t) (fgkWings*gran->Uniform() + 1.);
- if( wing <=0 || wing > fgkWings ) Error("SetDeadChannels","Wrong wing:%d\n",wing);
- Int_t chipp = (Int_t) (fgkChips*gran->Uniform() + 1.);
- if( chipp <=0 || chipp > fgkChips ) Error("SetDeadChannels","Wrong chip:%d",chipp);
- Int_t flagChip = 0;
- for( k=0; k<nchip; k++)
- if( chipp == chip[k] ) {
- flagChip = 1; break; }
- if( flagChip == 1 ) continue;
- i++;
- channel[i-1] = (Int_t) (fgkChannels*gran->Uniform() + 1.);
- if( channel[i-1] <=0 || channel[i-1] > fgkChannels )
- Error("SetDeadChannels","Wrong channel:%d\n",channel[i-1]);
- channelChip[i-1] = chipp;
- fGain[wing-1][chipp-1][channel[i-1]-1] = 0.;
- }
-
- delete [] chip;
- delete [] channel;
- delete [] channelChip;
+void AliITSCalibrationSDD::GetCorrections(Float_t z, Float_t x, Float_t &devz, Float_t &devx, AliITSsegmentationSDD* seg){
+ //correction of coordinates using the maps stored in the DB
+ Int_t nSide=seg->GetSideFromLocalX(x);
+ devz=0;
+// if(nSide==0) devz=fMapAW0->GetCorrection(z,x,seg);
+// else devz=fMapAW1->GetCorrection(z,x,seg);
+ devx=0;
+ if(nSide==0) devx=fMapTW0->GetCorrection(z,x,seg);
+ else devx=fMapTW1->GetCorrection(z,x,seg);
+ return;
+}
+//______________________________________________________________________
+void AliITSCalibrationSDD::GetShiftsForSimulation(Float_t z, Float_t x, Float_t &devz, Float_t &devx, AliITSsegmentationSDD* seg){
+ //correction of coordinates using the maps stored in the DB
+ Int_t nSide=seg->GetSideFromLocalX(x);
+ devz=0;
+// if(nSide==0) devz=fMapAW0->GetCorrection(z,x,seg);
+// else devz=fMapAW1->GetCorrection(z,x,seg);
+ devx=0;
+ if(nSide==0) devx=fMapTW0->GetShiftForSimulation(z,x,seg);
+ else devx=fMapTW1->GetShiftForSimulation(z,x,seg);
+ return;