- fixing warnings/coverity
[u/mrichter/AliRoot.git] / ITS / AliITSDCSAnalyzerSDD.h
CommitLineData
cfaccd71 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
dc5eacf8 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///////////////////////////////////////////////////////////////////////
cfaccd71 14
cfaccd71 15#include <TMap.h>
e22bf775 16#include <TObjArray.h>
dc5eacf8 17#include <TFile.h>
cfaccd71 18#include "AliITSDCSDataSDD.h"
e22bf775 19#include "AliITSgeomTGeo.h"
cfaccd71 20
e22bf775 21class AliITSDCSAnalyzerSDD : public TObject
22{
cfaccd71 23
24 public:
25 AliITSDCSAnalyzerSDD();
26 ~AliITSDCSAnalyzerSDD();
27
28
e22bf775 29 void SetVoltageDelays( Int_t HVDelay, Int_t MVDelay ) { fHVDelay = HVDelay; fMVDelay = MVDelay; }
30 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 { 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
dc5eacf8 37 void SetHVThreshold( Float_t percent=0.1 ) { fHVThresholdFrac = percent / 100.0; };
38 void SetMVThreshold( Float_t percent=0.1 ) { fMVThresholdFrac = percent / 100.0; };
39 void SetTLThreshold( Float_t percent=0.1 ) { fTLThresholdFrac = percent / 100.0; };
40 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
e22bf775 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 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 { 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]
cfaccd71 64
dc5eacf8 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
cfaccd71 74 protected:
cfaccd71 75 AliITSDCSAnalyzerSDD(const AliITSDCSAnalyzerSDD& /* dcsa */);
76 AliITSDCSAnalyzerSDD& operator=(const AliITSDCSAnalyzerSDD& /* dcsa */);
e22bf775 77 // Copy constructor and assignment operator not allowed.
78 // They are protected to avoid misuse
cfaccd71 79
e22bf775 80 void Init(); // Creates module text identifications
cfaccd71 81
e22bf775 82 private:
cfaccd71 83
e22bf775 84 enum { kNmodules=260,
85 kNladders3=14,
86 kNladders4=22,
87 kNmodLad3=6,
dc5eacf8 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
e22bf775 97 AliITSDCSDataSDD *fDCSData[kNmodules]; // values of DCS data points
98
dc5eacf8 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
e22bf775 111
dc5eacf8 112 ClassDef(AliITSDCSAnalyzerSDD, 3);
cfaccd71 113
e22bf775 114}; /*class AliITSDCSAnalyzerSDD*/
cfaccd71 115
116#endif