]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSCalibrationSSD.cxx
first steps to set the covariance matrix from the errors calculated in conformal...
[u/mrichter/AliRoot.git] / ITS / AliITSCalibrationSSD.cxx
index 44410cd14c4c41a9a8f0e915aad5cb15b969d594..30c1cc43e17b6eb4b13b514e32c6333b4b5120c0 100644 (file)
@@ -40,12 +40,16 @@ fNoiseN(0),
 fSigmaP(0),
 fSigmaN(0),
 fNoise(0),
+fPedestal(),
 fGain(0),
 fBadChannels(0),
+fIsBad(kFALSE),
 fGainP(0),
 fGainN(0),
 fNoisP(0),
 fNoisN(0),
+fPedP(),
+fPedN(),
 fNoisePThreshold(0),
 fNoisyPChannelsList(0),
 fNoiseNThreshold(0),
@@ -55,6 +59,9 @@ fDeadPChannelsList(0){
     // Default Constructor
 
     SetNoiseParam(fgkNoisePDefault,fgkNoiseNDefault);
+    for(Int_t i=0;i<fgkChipsPerModule;i++){
+      fIsChipBad[i]=kFALSE;
+    }
 }
 //______________________________________________________________________
 AliITSCalibrationSSD::AliITSCalibrationSSD(const char *dataType):
@@ -68,6 +75,7 @@ fNoise(0),
 fPedestal(0),
 fGain(0),
 fBadChannels(0),
+fIsBad(kFALSE),
 fGainP(0),
 fGainN(0),
 fNoisP(0),
@@ -95,11 +103,14 @@ fDeadPChannelsList(0){
        fDetPar[4]=0.02;
        fDetPar[5]=0.03;
     } // end if
+    for(Int_t i=0;i<fgkChipsPerModule;i++){
+      fIsChipBad[i]=kFALSE;
+    }
 }
 //______________________________________________________________________
 AliITSCalibrationSSD::~AliITSCalibrationSSD(){
     // destructor
-
     delete [] fDetPar;
 }
 //______________________________________________________________________
@@ -121,3 +132,30 @@ void AliITSCalibrationSSD::GetDetParam(Double_t  *par) const {
        par[i]=fDetPar[i];
     } // end for i
 }
+
+//______________________________________________________________________
+void AliITSCalibrationSSD::FillBadChipMap() {
+
+  Int_t mc=0;
+  Int_t cc[12];
+
+  // P-side
+  for(Int_t i=0; i<6; i++){
+    cc[i]=0;
+    for(Int_t j=0; j<ChannelsPerChip(); j++) {
+      if(IsPChannelBad(i*ChannelsPerChip()+j)) cc[i]++;
+    }
+    if(cc[i]==ChannelsPerChip()) { SetChipBad(i); mc++; }
+  }
+  
+  // N-side
+  for(Int_t i=6; i<11; i++){
+    cc[i]=0;
+    for(Int_t j=0; j<ChannelsPerChip(); j++) {
+      if(IsNChannelBad(1535-i*ChannelsPerChip()-j)) cc[i]++;      
+    }
+    if(cc[i]==ChannelsPerChip()) { SetChipBad(i); mc++; }
+  }
+  
+  if(mc==ChannelsPerChip()) fIsBad=kTRUE;
+}