LCOV - code coverage report
Current view: top level - ITS/ITSbase - AliITSCalibrationSSD.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 25 40 62.5 %
Date: 2016-06-14 17:26:59 Functions: 22 38 57.9 %

          Line data    Source code
       1             : #ifndef ALIITSCALIBRATIONSSD_H
       2             : #define ALIITSCALIBRATIONSSD_H
       3             : /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */ 
       5             : #include "AliITSCalibration.h"
       6             : #include "AliITSNoiseSSDv2.h"
       7             : #include "AliITSPedestalSSDv2.h"
       8             : #include "AliITSGainSSDv2.h"
       9             : #include "AliITSBadChannelsSSDv2.h"
      10             : 
      11             : /* $Id$ */
      12             : //////////////////////////////////////////////
      13             : // Calibration class for SSD                   //
      14             : //                                          //
      15             : //////////////////////////////////////////////
      16             : class AliITSCalibrationSSD : public AliITSCalibration {
      17             : 
      18             :  public:
      19             :     AliITSCalibrationSSD();
      20             :     AliITSCalibrationSSD(const char *dataType);
      21             :     virtual ~AliITSCalibrationSSD();
      22             : 
      23    20243124 :     Float_t GetNoiseP(Int_t n) {return fNoise->GetNoiseP(fModule,n); }
      24    20265278 :     Float_t GetNoiseN(Int_t n) {return fNoise->GetNoiseN(fModule,n); }
      25           8 :     void SetNoise( AliITSNoiseSSDv2* noise) {fNoise=noise;}
      26             : 
      27           0 :     Float_t GetPedestalP(Int_t n) {return fPedestal->GetPedestalP(fModule,n); }
      28           0 :     Float_t GetPedestalN(Int_t n) {return fPedestal->GetPedestalN(fModule,n); }
      29           0 :     void SetPedestal( AliITSPedestalSSDv2* pedestal) {fPedestal=pedestal;}
      30             : 
      31    30673888 :     Float_t GetGainP(Int_t n) {return fGain->GetGainP(fModule,n); }
      32    30696158 :     Float_t GetGainN(Int_t n) {return fGain->GetGainN(fModule,n); }
      33      654280 :     void SetGainP(Int_t n, Float_t value) {fGain->AddGainP(fModule,n,value);}
      34      638776 :     void SetGainN(Int_t n, Float_t value) {fGain->AddGainN(fModule,n,value);}
      35           8 :     void SetGain( AliITSGainSSDv2* gain) {fGain=gain;}
      36             : 
      37             :     void   SetBad() {
      38           0 :       fIsBad = kTRUE;
      39           0 :       for(Int_t i=0;i<fgkChipsPerModule;i++) fIsChipBad[i]=kTRUE;
      40           0 :     }
      41        6792 :     virtual Bool_t IsBad() const { return fIsBad; }
      42             :     void   SetChipBad(Int_t nChip) {
      43        3668 :       fIsChipBad[nChip] = kTRUE;
      44        1834 :     }
      45             :     void FillBadChipMap();
      46             :     virtual Bool_t IsChipBad(Int_t nChip) const {
      47       81504 :       return fIsChipBad[nChip];
      48             :     }
      49           0 :     Int_t ChipsPerModule() const{return fgkChipsPerModule;} // # chips/module
      50    21028032 :     Int_t ChannelsPerChip() const{ return fgkChannelsPerChip;}// #channels/chip
      51             : 
      52             :     void SetBadChannels( AliITSBadChannelsSSDv2* badchannels) {
      53           8 :       fBadChannels=badchannels;}
      54             :     Char_t GetBadPChannel(Int_t n) {
      55           0 :       return fBadChannels->GetBadChannelP(fModule,n); }
      56             :     Char_t GetBadNChannel(Int_t n) {
      57           0 :       return fBadChannels->GetBadChannelN(fModule,n); }
      58             :     Bool_t IsPChannelBad(Int_t n) {
      59    20865024 :       return fBadChannels->GetBadChannelP(fModule,n)&1; }
      60             :     Bool_t IsNChannelBad(Int_t n) {
      61    20865024 :       return fBadChannels->GetBadChannelN(fModule,n)&1; }
      62             : 
      63             :     //
      64             :     virtual  void   SetNDetParam(Int_t npar) {
      65             :         // set number of param
      66           0 :         fNPar=npar;
      67           0 :     }
      68             :     virtual  void   SetDetParam(Double_t *par);
      69             : 
      70             :     // Parameters options
      71             :     virtual Int_t   NDetParam() const {
      72             :         // number of param
      73           0 :         return fNPar;
      74             :     }
      75             :     virtual void    GetDetParam(Double_t *dpar) const; 
      76             : 
      77             :     virtual void    SetSigmaSpread(Double_t, Double_t) {
      78           0 :       NotImplemented("SetSigmaSpread");}
      79             :     
      80             :     virtual void    SigmaSpread(Double_t &, Double_t &) const {
      81           0 :       NotImplemented("SetSigmaSpread");}
      82             :     
      83       78710 :     void SetModule(Int_t mod){fModule = mod;}
      84             :     void SetModuleIndex(Int_t modId){
      85        6792 :       fModule=modId-500; // temporary patch, 500 is n. of SPD+SDD modules
      86        3396 :       FillBadChipMap();
      87        3396 :     }
      88          30 :     void SetKeVperADC(Double_t a=86.4/120.){fKeVperADC = a;}
      89       64560 :     Double_t ADCToKeV(Double_t adc) const {return adc*fKeVperADC;}
      90             : 
      91          30 :     void SetSSDADCpereV(Double_t a=(120./24888.9)*(85.0/77.0)){fSSDADCpereV = a;}
      92    40436992 :     Double_t GetSSDDEvToADC(Double_t eV) const {return eV*fSSDADCpereV;}
      93             :     Int_t GetSSDIEvToADC(Double_t eV) const { 
      94           0 :                                   return ((Int_t) GetSSDDEvToADC(eV)); }
      95             : 
      96             : 
      97             :  protected:
      98             : 
      99             :     static const Int_t fgkChipsPerModule  = 12;    // Number of chips/module
     100             :     static const Int_t fgkChannelsPerChip = 128;   // Number of channels/chip
     101             : 
     102             :     static const Int_t fgkNParDefault; // default for fNPar
     103             : 
     104             :     Int_t fModule;          //! module number (range 0 -> 1697)
     105             :     
     106             :     Int_t   fNPar;            // Number of detector param 
     107             :     Double_t *fDetPar;         //[fNPar] Array of parameters
     108             : 
     109             :     AliITSNoiseSSDv2 *fNoise; // pointer to noise calib object    
     110             :     AliITSPedestalSSDv2 *fPedestal; // pointer to pedestal calib object
     111             :     AliITSGainSSDv2 *fGain; // pointer to gain calib object
     112             :     AliITSBadChannelsSSDv2 *fBadChannels; // pointer to bad channels calib object
     113             : 
     114             :     Bool_t   fIsBad;                         // module is dead or alive ?
     115             :     Bool_t   fIsChipBad[fgkChipsPerModule];  // chip is dead or alive ?
     116             : 
     117             :     Double_t fSSDADCpereV;    // Constant to convert eV to ADC for SSD.
     118             :     Double_t fKeVperADC;       // Constant to convert ADC to keV
     119             : 
     120             :  private:
     121             :     AliITSCalibrationSSD(const AliITSCalibrationSSD &source); // copy constructor
     122             :     AliITSCalibrationSSD& operator=(const AliITSCalibrationSSD &source); // ass. op.
     123             : 
     124         118 :     ClassDef(AliITSCalibrationSSD,6) //Response class for SSD
     125             :       };
     126             : #endif

Generated by: LCOV version 1.11