ROOT logo
/**************************************************************************
 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
 *                                                                         *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
/* $Id$  */

#include "AliITSCalibrationSSD.h"
//////////////////////////////////////////////////////
//  Calibration class for set:ITS                   //
//  Specific subdetector implementation             //
//  for silicon strips detectors                    //
//                                                  //
//                                                  //
//////////////////////////////////////////////////////

const Int_t AliITSCalibrationSSD::fgkNParDefault = 6;

ClassImp(AliITSCalibrationSSD)

//______________________________________________________________________
AliITSCalibrationSSD::AliITSCalibrationSSD():
  fModule(0),
fNPar(0),
fDetPar(0),
fNoise(0),
fPedestal(),
fGain(0),
fBadChannels(0),
  fIsBad(kFALSE),
fSSDADCpereV(0.),
  fKeVperADC(0)
{
    // Default Constructor

    for(Int_t i=0;i<fgkChipsPerModule;i++){
      fIsChipBad[i]=kFALSE;
    }
  SetSSDADCpereV();
    SetKeVperADC();
}
//______________________________________________________________________
AliITSCalibrationSSD::AliITSCalibrationSSD(const char *dataType):
  fModule(0),
fNPar(0),
fDetPar(0),
fNoise(0),
fPedestal(0),
fGain(0),
fBadChannels(0),
fIsBad(kFALSE) ,
fSSDADCpereV(0.),
fKeVperADC(0){
    // constructor

    SetDataType(dataType);
    SetNDetParam(fgkNParDefault);   // Sets fNPar=6 by default.
    fDetPar = new Double_t[fNPar];
    if (fNPar==6) {
	fDetPar[0]=10.;
	fDetPar[1]=5.;
	fDetPar[2]=0.02;
	fDetPar[3]=0.02;
	fDetPar[4]=0.02;
	fDetPar[5]=0.03;
    } // end if
    for(Int_t i=0;i<fgkChipsPerModule;i++){
      fIsChipBad[i]=kFALSE;
    }
    SetSSDADCpereV();
    SetKeVperADC();
}
//______________________________________________________________________
AliITSCalibrationSSD::~AliITSCalibrationSSD(){
    // destructor
 
    delete [] fDetPar;
    if(fNoise)delete fNoise;
    if(fPedestal)delete fPedestal;
    if(fGain)delete fGain;
    if(fBadChannels)delete fBadChannels;
}
//______________________________________________________________________
void AliITSCalibrationSSD::SetDetParam(Double_t  *par){
    // set det param
    Int_t i;

    for (i=0; i<fNPar; i++) {
	fDetPar[i]=par[i];
	//printf("\n CompressPar %d %d \n",i,fCPar[i]);    
    } // end for i
}
//______________________________________________________________________
void AliITSCalibrationSSD::GetDetParam(Double_t  *par) const {
    // get det param
    Int_t i;

    for (i=0; i<fNPar; i++) {
	par[i]=fDetPar[i];
    } // end for i
}

//______________________________________________________________________
void AliITSCalibrationSSD::FillBadChipMap() {

  // reset
  fIsBad=kFALSE;
  for(Int_t i=0;i<fgkChipsPerModule;i++){
    fIsChipBad[i]=kFALSE;
  }


  Int_t mc=0;
  Int_t cc[fgkChipsPerModule];

  // P-side
  for(Int_t i=0; i<fgkChipsPerModule/2; 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=fgkChipsPerModule/2; i<fgkChipsPerModule; 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==fgkChipsPerModule) fIsBad=kTRUE;
}
 AliITSCalibrationSSD.cxx:1
 AliITSCalibrationSSD.cxx:2
 AliITSCalibrationSSD.cxx:3
 AliITSCalibrationSSD.cxx:4
 AliITSCalibrationSSD.cxx:5
 AliITSCalibrationSSD.cxx:6
 AliITSCalibrationSSD.cxx:7
 AliITSCalibrationSSD.cxx:8
 AliITSCalibrationSSD.cxx:9
 AliITSCalibrationSSD.cxx:10
 AliITSCalibrationSSD.cxx:11
 AliITSCalibrationSSD.cxx:12
 AliITSCalibrationSSD.cxx:13
 AliITSCalibrationSSD.cxx:14
 AliITSCalibrationSSD.cxx:15
 AliITSCalibrationSSD.cxx:16
 AliITSCalibrationSSD.cxx:17
 AliITSCalibrationSSD.cxx:18
 AliITSCalibrationSSD.cxx:19
 AliITSCalibrationSSD.cxx:20
 AliITSCalibrationSSD.cxx:21
 AliITSCalibrationSSD.cxx:22
 AliITSCalibrationSSD.cxx:23
 AliITSCalibrationSSD.cxx:24
 AliITSCalibrationSSD.cxx:25
 AliITSCalibrationSSD.cxx:26
 AliITSCalibrationSSD.cxx:27
 AliITSCalibrationSSD.cxx:28
 AliITSCalibrationSSD.cxx:29
 AliITSCalibrationSSD.cxx:30
 AliITSCalibrationSSD.cxx:31
 AliITSCalibrationSSD.cxx:32
 AliITSCalibrationSSD.cxx:33
 AliITSCalibrationSSD.cxx:34
 AliITSCalibrationSSD.cxx:35
 AliITSCalibrationSSD.cxx:36
 AliITSCalibrationSSD.cxx:37
 AliITSCalibrationSSD.cxx:38
 AliITSCalibrationSSD.cxx:39
 AliITSCalibrationSSD.cxx:40
 AliITSCalibrationSSD.cxx:41
 AliITSCalibrationSSD.cxx:42
 AliITSCalibrationSSD.cxx:43
 AliITSCalibrationSSD.cxx:44
 AliITSCalibrationSSD.cxx:45
 AliITSCalibrationSSD.cxx:46
 AliITSCalibrationSSD.cxx:47
 AliITSCalibrationSSD.cxx:48
 AliITSCalibrationSSD.cxx:49
 AliITSCalibrationSSD.cxx:50
 AliITSCalibrationSSD.cxx:51
 AliITSCalibrationSSD.cxx:52
 AliITSCalibrationSSD.cxx:53
 AliITSCalibrationSSD.cxx:54
 AliITSCalibrationSSD.cxx:55
 AliITSCalibrationSSD.cxx:56
 AliITSCalibrationSSD.cxx:57
 AliITSCalibrationSSD.cxx:58
 AliITSCalibrationSSD.cxx:59
 AliITSCalibrationSSD.cxx:60
 AliITSCalibrationSSD.cxx:61
 AliITSCalibrationSSD.cxx:62
 AliITSCalibrationSSD.cxx:63
 AliITSCalibrationSSD.cxx:64
 AliITSCalibrationSSD.cxx:65
 AliITSCalibrationSSD.cxx:66
 AliITSCalibrationSSD.cxx:67
 AliITSCalibrationSSD.cxx:68
 AliITSCalibrationSSD.cxx:69
 AliITSCalibrationSSD.cxx:70
 AliITSCalibrationSSD.cxx:71
 AliITSCalibrationSSD.cxx:72
 AliITSCalibrationSSD.cxx:73
 AliITSCalibrationSSD.cxx:74
 AliITSCalibrationSSD.cxx:75
 AliITSCalibrationSSD.cxx:76
 AliITSCalibrationSSD.cxx:77
 AliITSCalibrationSSD.cxx:78
 AliITSCalibrationSSD.cxx:79
 AliITSCalibrationSSD.cxx:80
 AliITSCalibrationSSD.cxx:81
 AliITSCalibrationSSD.cxx:82
 AliITSCalibrationSSD.cxx:83
 AliITSCalibrationSSD.cxx:84
 AliITSCalibrationSSD.cxx:85
 AliITSCalibrationSSD.cxx:86
 AliITSCalibrationSSD.cxx:87
 AliITSCalibrationSSD.cxx:88
 AliITSCalibrationSSD.cxx:89
 AliITSCalibrationSSD.cxx:90
 AliITSCalibrationSSD.cxx:91
 AliITSCalibrationSSD.cxx:92
 AliITSCalibrationSSD.cxx:93
 AliITSCalibrationSSD.cxx:94
 AliITSCalibrationSSD.cxx:95
 AliITSCalibrationSSD.cxx:96
 AliITSCalibrationSSD.cxx:97
 AliITSCalibrationSSD.cxx:98
 AliITSCalibrationSSD.cxx:99
 AliITSCalibrationSSD.cxx:100
 AliITSCalibrationSSD.cxx:101
 AliITSCalibrationSSD.cxx:102
 AliITSCalibrationSSD.cxx:103
 AliITSCalibrationSSD.cxx:104
 AliITSCalibrationSSD.cxx:105
 AliITSCalibrationSSD.cxx:106
 AliITSCalibrationSSD.cxx:107
 AliITSCalibrationSSD.cxx:108
 AliITSCalibrationSSD.cxx:109
 AliITSCalibrationSSD.cxx:110
 AliITSCalibrationSSD.cxx:111
 AliITSCalibrationSSD.cxx:112
 AliITSCalibrationSSD.cxx:113
 AliITSCalibrationSSD.cxx:114
 AliITSCalibrationSSD.cxx:115
 AliITSCalibrationSSD.cxx:116
 AliITSCalibrationSSD.cxx:117
 AliITSCalibrationSSD.cxx:118
 AliITSCalibrationSSD.cxx:119
 AliITSCalibrationSSD.cxx:120
 AliITSCalibrationSSD.cxx:121
 AliITSCalibrationSSD.cxx:122
 AliITSCalibrationSSD.cxx:123
 AliITSCalibrationSSD.cxx:124
 AliITSCalibrationSSD.cxx:125
 AliITSCalibrationSSD.cxx:126
 AliITSCalibrationSSD.cxx:127
 AliITSCalibrationSSD.cxx:128
 AliITSCalibrationSSD.cxx:129
 AliITSCalibrationSSD.cxx:130
 AliITSCalibrationSSD.cxx:131
 AliITSCalibrationSSD.cxx:132
 AliITSCalibrationSSD.cxx:133
 AliITSCalibrationSSD.cxx:134
 AliITSCalibrationSSD.cxx:135
 AliITSCalibrationSSD.cxx:136
 AliITSCalibrationSSD.cxx:137
 AliITSCalibrationSSD.cxx:138
 AliITSCalibrationSSD.cxx:139
 AliITSCalibrationSSD.cxx:140
 AliITSCalibrationSSD.cxx:141
 AliITSCalibrationSSD.cxx:142
 AliITSCalibrationSSD.cxx:143
 AliITSCalibrationSSD.cxx:144