X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSCalibrationSDD.cxx;h=8704e18aa6f0b4b9d459fdbe2d5cb46980c68761;hb=c0fc8108e5ce86afca140bfe938325bd220705ed;hp=ddd407a88ec84822dc80c953b5fe22a62b3e2d25;hpb=c2bd28b6cfabe8180c864a6df6586a4b8c36470a;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSCalibrationSDD.cxx b/ITS/AliITSCalibrationSDD.cxx index ddd407a88ec..8704e18aa6f 100644 --- a/ITS/AliITSCalibrationSDD.cxx +++ b/ITS/AliITSCalibrationSDD.cxx @@ -29,24 +29,26 @@ ////////////////////////////////////////////////////// const Float_t AliITSCalibrationSDD::fgkTemperatureDefault = 296.; -const Float_t AliITSCalibrationSDD::fgkNoiseDefault = 10.; +const Float_t AliITSCalibrationSDD::fgkNoiseDefault = 2.38; const Float_t AliITSCalibrationSDD::fgkGainDefault = 1.; const Float_t AliITSCalibrationSDD::fgkBaselineDefault = 20.; -const Float_t AliITSCalibrationSDD::fgkMinValDefault = 4; //______________________________________________________________________ ClassImp(AliITSCalibrationSDD) AliITSCalibrationSDD::AliITSCalibrationSDD(): AliITSCalibration(), +fZeroSupp(kTRUE), +fAMAt20MHz(kFALSE), fDeadChips(0), fDeadChannels(0), -fMinVal(fgkMinValDefault), -fIsDead(kFALSE), +fIsBad(kFALSE), fBadChannels(), fMapAW0(0), fMapAW1(0), fMapTW0(0), -fMapTW1(0) +fMapTW1(0), +fDrSpeed0(0), +fDrSpeed1(0) { // default constructor @@ -54,60 +56,56 @@ fMapTW1(0) for(Int_t ian=0;ianfgkChannels*fgkChips*fgkWings-1)AliError("Wrong anode number"); - Int_t wing=0; - Int_t chip,channel; - chip=anode/fgkChannels; - channel=anode-(chip*fgkChannels); - if(anode>=fgkChips*fgkChannels) wing=1; - if(wing==1)chip-=fgkChips; - fBadChannels[i]=anode; - fGain[wing][chip][channel]=0; -} -//_____________________________________________________________________ -void AliITSCalibrationSDD::SetDriftSpeedParam(Int_t iWing, Float_t* p){ - // Sets coefficients of pol3 fit to drift speed vs. anode - if(iWing==0){ - for(Int_t i=0;i<4;i++) fDriftVelParW0[i]=p[i]; - }else{ - for(Int_t i=0;i<4;i++) fDriftVelParW1[i]=p[i]; + if(anode<0 || anode >fgkChannels*fgkChips*fgkWings-1){ + AliError("Wrong anode number"); + return; } + fBadChannels[i]=anode; + fGain[anode]=0; } - - - -//_____________________________________________________________________ -Bool_t AliITSCalibrationSDD::IsBadChannel(Int_t anode){ - //returns kTRUE if the anode i (0-512) has fGain=0 - if(anode<0 || anode >fgkChannels*fgkChips*fgkWings-1)AliError("Wrong anode number"); - Int_t wing=0; - Int_t chip,channel; - chip=anode/fgkChannels; - channel=anode-(chip*fgkChannels); - if(anode>=fgkChips*fgkChannels) wing=1; - if(wing==1)chip-=fgkChips; - if(fGain[wing][chip][channel]==0) return kTRUE; - else return kFALSE; -} -/* //______________________________________________________________________ -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 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; mUniform() + 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; kUniform() + 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::PrintGains() const{ // @@ -269,14 +164,9 @@ void AliITSCalibrationSDD::PrintGains() const{ cout << "**************************************************" << endl; // Print SDD electronic gains - for(Int_t t=0; t