X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSresponseSDD.cxx;h=f7577582aea7f20b085274485558a962dd0790e9;hb=532dd8d883222c817a36f67e97617bb51ab98cd8;hp=421e69c002ce31df966f9f6127b92ac8a3951782;hpb=05f403a00b6670c620e3d52a8d286596a6aa4177;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSresponseSDD.cxx b/ITS/AliITSresponseSDD.cxx index 421e69c002c..f7577582aea 100644 --- a/ITS/AliITSresponseSDD.cxx +++ b/ITS/AliITSresponseSDD.cxx @@ -27,99 +27,79 @@ #include #include "AliITSresponseSDD.h" +#include -const Int_t AliITSresponseSDD::fgkMaxAdcDefault = 1024; -const Float_t AliITSresponseSDD::fgkDynamicRangeDefault = 132.; -const Float_t AliITSresponseSDD::fgkfChargeLossDefault = 0; -const Float_t AliITSresponseSDD::fgkDiffCoeffDefault = 3.23; -const Float_t AliITSresponseSDD::fgkDiffCoeff1Default = 30.; -const TString AliITSresponseSDD::fgkParam1Default = "same"; -const TString AliITSresponseSDD::fgkParam2Default = "same"; -const TString AliITSresponseSDD::fgkOptionDefault = "1D"; -const Float_t AliITSresponseSDD::fgkDriftSpeedDefault = 7.3; -const Float_t AliITSresponseSDD::fgkTimeOffsetDefault = 55.07; -const Float_t AliITSresponseSDD::fgkADC2keVDefault = 5.243; -const Float_t AliITSresponseSDD::fgkNsigmasDefault = 3.; -const Int_t AliITSresponseSDD::fgkNcompsDefault = 121; - +const Float_t AliITSresponseSDD::fgkTimeOffsetDefault = 54.30; +const Float_t AliITSresponseSDD::fgkADC2keVDefault = 3.34; +const Float_t AliITSresponseSDD::fgkChargevsTimeDefault = 0.00355; +const Float_t AliITSresponseSDD::fgkCarlosRXClockPeriod = 25.; ClassImp(AliITSresponseSDD) //_________________________________________________________________________ AliITSresponseSDD::AliITSresponseSDD(): -AliITSresponse(), -fJitterError(0.), -fDynamicRange(0.), -fChargeLoss(0.), -fTimeOffset(fgkTimeOffsetDefault), -fADC2keV(fgkADC2keVDefault), -fElectronics(0), -fMaxAdc(fgkMaxAdcDefault), -fNsigmas(fgkNsigmasDefault), -fGaus(), -fNcomps(fgkNcompsDefault), -fBitComp(kFALSE), -fOption(), -fParam1(), -fParam2() { +TObject(), + fTimeOffset(fgkTimeOffsetDefault), + fADC2keV(fgkADC2keVDefault), + fChargevsTime(fgkChargevsTimeDefault){ // default constructor - fGaus = 0; - SetDiffCoeff(fgkDiffCoeffDefault,fgkDiffCoeff1Default); - // SetNLookUp(fgkNcompsDefault); - - SetJitterError(); - SetElectronics(); - SetDynamicRange(fgkDynamicRangeDefault); - SetChargeLoss(fgkfChargeLossDefault); - SetParamOptions(fgkParam1Default.Data(),fgkParam2Default.Data()); - SetZeroSupp(fgkOptionDefault); - SetDo10to8(); - SetOutputOption(); + for(Int_t i=0; i 255) { - Warning("Convert8to10","out of range signal=%d",signal); - return 0; - } // end if signal <0 || signal >255 - - if (signal < 128) return signal; - if (signal < 192) { - if (TMath::Odd(signal)) return (128+((signal-128)<<1)); - else return (128+((signal-128)<<1)+1); - } // end if signal < 192 - if (signal < 224) { - if (TMath::Odd(signal)) return (256+((signal-192)<<3)+3); - else return (256+((signal-192)<<3)+4); - } // end if signal < 224 - if (TMath::Odd(signal)) return (512+((signal-224)<<4)+7); - return (512+((signal-224)<<4)+8); +//_________________________________________________________________________ +void AliITSresponseSDD::SetHalfLadderATimeZero(Int_t lay, Int_t lad, Float_t tzero){ + // Sets time Zero for all modules of a ladder on side A (Z>0) + Int_t minMod,maxMod; + if(lay==3){ + minMod=1; + maxMod=3; + if(lad>kNLaddersLay3){ + AliError(Form("Ladder number %d out of range",lad)); + return; + } + }else if(lay==4){ + minMod=1; + maxMod=4; + if(lad>kNLaddersLay4){ + AliError(Form("Ladder number %d out of range",lad)); + return; + } + }else{ + AliError(Form("Layer number %d out of range",lay)); + return; } - else { - return signal; + for(Int_t iMod=minMod; iMod<=maxMod; iMod++){ + Int_t modIndex=AliITSgeomTGeo::GetModuleIndex(lay,lad,iMod); + SetModuleTimeZero(modIndex,tzero); } } - -//________________________________________________________________________ -void AliITSresponseSDD::SetNLookUp(Int_t p1){ - // Set number of sigmas over which cluster disintegration is performed - fNcomps=p1; - if (fGaus) delete fGaus; - fGaus = new TArrayF(fNcomps+1); - for(Int_t i=0; i<=fNcomps; i++) { - Float_t x = -fNsigmas + (2.*i*fNsigmas)/(fNcomps-1); - (*fGaus)[i] = exp(-((x*x)/2)); +//_________________________________________________________________________ +void AliITSresponseSDD::SetHalfLadderCTimeZero(Int_t lay, Int_t lad, Float_t tzero){ + // Sets time Zero for all modules of a ladder on side C (Z<0) + Int_t minMod,maxMod; + if(lay==3){ + minMod=4; + maxMod=6; + if(lad>kNLaddersLay3){ + AliError(Form("Ladder number %d out of range",lad)); + return; + } + }else if(lay==4){ + minMod=5; + maxMod=8; + if(lad>kNLaddersLay4){ + AliError(Form("Ladder number %d out of range",lad)); + return; + } + }else{ + AliError(Form("Layer number %d out of range",lay)); + return; + } + for(Int_t iMod=minMod; iMod<=maxMod; iMod++){ + Int_t modIndex=AliITSgeomTGeo::GetModuleIndex(lay,lad,iMod); + SetModuleTimeZero(modIndex,tzero); } }