LCOV - code coverage report
Current view: top level - ITS/ITSbase - AliITSDCSAnalyzerSDD.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 10 10.0 %
Date: 2016-06-14 17:26:59 Functions: 1 14 7.1 %

          Line data    Source code
       1             : #ifndef ALIITSDCSANALYZERSDD_H
       2             : #define ALIITSDCSANALYZERSDD_H
       3             : 
       4             : /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : /* $Id$ */
       8             : 
       9             : ///////////////////////////////////////////////////////////////////////
      10             : // Class for SDD dcs data analysis called by AliITSPreprocessorSDD   //
      11             : // Origin: F.Prino, Torino, prino@to.infn.it                         //
      12             : //         V.Pospisil, CTU Prague, gdermog@seznam.cz                 //
      13             : ///////////////////////////////////////////////////////////////////////
      14             : 
      15             : #include <TMap.h>
      16             : #include <TObjArray.h>
      17             : #include <TFile.h>
      18             : #include "AliITSDCSDataSDD.h"
      19             : #include "AliITSgeomTGeo.h"
      20             : 
      21             : class AliITSDCSAnalyzerSDD : public TObject 
      22             : {
      23             : 
      24             :  public:
      25             :   AliITSDCSAnalyzerSDD();
      26             :   ~AliITSDCSAnalyzerSDD();
      27             : 
      28             : 
      29           0 :   void SetVoltageDelays( Int_t HVDelay, Int_t MVDelay )     { fHVDelay = HVDelay; fMVDelay = MVDelay; }
      30           0 :   void SetTemperatureDelays( Int_t TLDelay, Int_t TRDelay ) { fTLDelay = TLDelay; fTRDelay = TRDelay; }
      31             :   void SetStatusDelays( Int_t StTLDelay, Int_t StTRDelay, Int_t OKDelay ) 
      32           0 :                                                             { fStTLDelay = StTLDelay; fStTRDelay = StTRDelay; fOKDelay = OKDelay; }
      33             :                         // There is some delay between variable readout and setting up the time stamp. Delays differs
      34             :                         //  in voltage and temperature readouts. So it is necessary to substract some value from time stamps
      35             :                         //  during the data processing 
      36             : 
      37           0 :   void SetHVThreshold( Float_t percent=0.1 ) { fHVThresholdFrac = percent / 100.0; };
      38           0 :   void SetMVThreshold( Float_t percent=0.1 ) { fMVThresholdFrac = percent / 100.0; };
      39           0 :   void SetTLThreshold( Float_t percent=0.1 ) { fTLThresholdFrac = percent / 100.0; };
      40           0 :   void SetTRThreshold( Float_t percent=0.1 ) { fTRThresholdFrac = percent / 100.0; };
      41             :                         // It is possible to keep value arrays condensed - new value is stored
      42             :                         //  only if it crosses a treshold. This threshold is determined from
      43             :                         //  last stored value by
      44             :                         //
      45             :                         //  low edge = value * (100 - percent) %
      46             :                         //  upper edge = value * (100 + percent) %
      47             :                         //
      48             :                         // These four Setters allows to tune tresholds for each DCS variable
      49             :                         //   independently. By default all tresholds are set to 0 % .
      50             : 
      51             : 
      52             :   void AnalyzeData( TMap* dcsMap );
      53             :                         // Processes the data
      54             : 
      55             :   void PrintDCSDPNames( FILE *output = stdout );
      56             :                         // Prints module identifications in text mode
      57             : 
      58           0 :   AliITSDCSDataSDD* GetDCSData( Int_t iModule ) const { return fDCSData[iModule]; }
      59             :                         // Returns data for module specified by its index in range 0..259
      60             : 
      61             :   AliITSDCSDataSDD* GetDCSData( Int_t iLayer, Int_t iLadder, Int_t iModule ) const
      62           0 :                                   { return fDCSData[AliITSgeomTGeo::GetModuleIndex( iLayer, iLadder, iModule ) - 240]; }
      63             :                         // Returns data for module specified by layer[3..4], ladder[1..22] and module number[1..8]
      64             : 
      65             :   void Export( char *outputDCSFileName );
      66             :                         // Exports all stored AliITSDCSDataSDD type object into specified root file. Objects are named as
      67             :                         //
      68             :                         // DCSDataSDD_module<number>
      69             :                         //
      70             :                         // where <number> is in range 0..256 and it is obtained by calling
      71             :                         //
      72             :                         // AliITSgeomTGeo::GetModuleIndex( layer, ladder, moduleInLadder ) - 240
      73             : 
      74             :  protected:
      75             :   AliITSDCSAnalyzerSDD(const AliITSDCSAnalyzerSDD& /* dcsa  */);
      76             :   AliITSDCSAnalyzerSDD& operator=(const AliITSDCSAnalyzerSDD& /* dcsa */);
      77             :                         // Copy constructor and assignment operator not allowed.
      78             :                         // They are protected to avoid misuse
      79             : 
      80             :   void Init();          // Creates module text identifications
      81             : 
      82             :  private:
      83             : 
      84             :   enum { kNmodules=260,
      85             :          kNladders3=14,
      86             :          kNladders4=22,
      87             :          kNmodLad3=6,
      88             :          kNmodLad4=8 };                   // Basic SDD geometry
      89             : 
      90             :   TString fHVDPNames[kNmodules];          // DCS DP names for High Voltage  
      91             :   TString fMVDPNames[kNmodules];          // DCS DP names for Medium Voltage
      92             :   TString fOKDPNames[kNmodules];          // DCS DP names for Medium Voltage
      93             :   TString fTLDPNames[kNmodules];          // DCS DP names for Temperature Left
      94             :   TString fTRDPNames[kNmodules];          // DCS DP names for Temperature Right
      95             :   TString fTLStDPNames[kNmodules];        // DCS DP names for status of Temperature Left
      96             :   TString fTRStDPNames[kNmodules];        // DCS DP names for status of Temperature Right
      97             :   AliITSDCSDataSDD *fDCSData[kNmodules];  // values of DCS data points
      98             : 
      99             :   Int_t fHVDelay;                         // There is some delay between variable readout
     100             :   Int_t fMVDelay;                         // and setting up the time stamp. Delays differs
     101             :   Int_t fTLDelay;                         // in voltage and temperature readouts. So it is
     102             :   Int_t fTRDelay;                         // necessary to substract some value from time stamp
     103             :   Int_t fStTLDelay;                       // during the data processing. 
     104             :   Int_t fStTRDelay;                       // Here are the values of delays stored
     105             :   Int_t fOKDelay;                         // for the 7 variables.
     106             : 
     107             :   Float_t fHVThresholdFrac;                // Value of HV won't be stored until it won't exceeds this fraction of last stored value
     108             :   Float_t fMVThresholdFrac;                // Same for MV
     109             :   Float_t fTLThresholdFrac;                // Same for TL
     110             :   Float_t fTRThresholdFrac;                // Same for TR
     111             : 
     112         118 :   ClassDef(AliITSDCSAnalyzerSDD, 3);
     113             : 
     114             : }; /*class AliITSDCSAnalyzerSDD*/
     115             : 
     116             : #endif

Generated by: LCOV version 1.11