]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - ITS/AliITSChannelDaSSD.h
Adding ruleckecher files into the distribbution
[u/mrichter/AliRoot.git] / ITS / AliITSChannelDaSSD.h
... / ...
CommitLineData
1#ifndef ALIITSCHANNELDASSD_H
2#define ALIITSCHANNELDASSD_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///
11/// This class provides storage container ITS SSD channel callibration data
12/// used by DA.
13///
14///////////////////////////////////////////////////////////////////////////////
15
16#include "TObject.h"
17
18
19class AliITSChannelDaSSD : public TObject {
20 public :
21 AliITSChannelDaSSD();
22 explicit AliITSChannelDaSSD(const UShort_t stripId);
23 AliITSChannelDaSSD(const UShort_t stripId, const Long_t eventsnumber);
24 AliITSChannelDaSSD(const AliITSChannelDaSSD& strip);
25 AliITSChannelDaSSD& operator = (const AliITSChannelDaSSD& strip);
26 virtual ~AliITSChannelDaSSD();
27
28 UShort_t GetStripId() const { return fStripId; }
29 Long_t GetEventsNumber() const { return fEventsNumber; }
30 Short_t* GetSignal() const { return fSignal; }
31 Short_t GetSignal(const Long_t eventnumber) const
32 { return (eventnumber < fEventsNumber && fSignal) ? *(fSignal+eventnumber) : fgkDefaultSignal; }
33
34 Float_t GetPedestal() const { return fPedestal; }
35 Float_t GetNoise() const { return fNoise; }
36 Float_t GetNoiseCM() const { return fNoiseCM; }
37 Long_t GetOverflowNumber() const { return fNOverflowEv; }
38 Bool_t CheckNoise() const { return (fNoise < fgkUndefinedValue) ? kTRUE : kFALSE; }
39 Bool_t CheckNoiseCM() const { return (fNoiseCM < fgkUndefinedValue) ? kTRUE : kFALSE; }
40
41 Bool_t SetEvenetsNumber(const Long_t eventsnumber);
42 Bool_t SetSignal(const Long_t eventnumber, const Short_t signal);
43 void SetStripId(const UShort_t stripId) { fStripId = stripId; }
44
45 void SetPedestal(Float_t pedestal) { fPedestal = pedestal; }
46 void SetNoise(Float_t noise) { fNoise = noise; }
47 void SetNoiseCM(Float_t noise) { fNoiseCM = noise; }
48 void SetOverflowNumber(Long_t ovn) {fNOverflowEv = ovn; }
49 void ClearNoise() { if (fNoise < fgkUndefinedValue) fNoise = fgkUndefinedValue; }
50 void ClearNoiseCM() { if (fNoiseCM < fgkUndefinedValue) fNoiseCM = fgkUndefinedValue; }
51 void ClearPedestal() { if (fPedestal < fgkUndefinedValue) fPedestal = fgkUndefinedValue; }
52 void ClearSignal() { if (fSignal) for (Int_t i = 0; i < fEventsNumber; i++)
53 fSignal[i] = 0x100 * fgkDefaultSignal + fgkDefaultSignal; }
54 void DeleteSignal() { if (fSignal) { delete [] fSignal; fSignal = NULL; fEventsNumber = 0;} }
55
56 static Short_t GetOverflowConst() { return fgkSignalOverflow; }
57 static Short_t GetUnderflowConst() { return fgkSignalUnderflow; }
58 static Float_t GetUndefinedValue() { return fgkUndefinedValue; }
59 static Short_t GetMaxStripIdConst(){ return fgkMaxStripId; }
60
61 protected :
62 static const Short_t fgkMinStripId; // minimum strip id
63 static const Short_t fgkMaxStripId; // maximum strip id
64
65 static const Short_t fgkSignalOverflow; // ADC overflow value
66 static const Short_t fgkSignalUnderflow; // ADC underflow value
67 static const UShort_t fgkDefaultSignal; // initialization value for fNoise, fPedestal, fSignal[i]
68 static const Float_t fgkUndefinedValue; // constant value which indicates that fNoise, fPedestal is undefined
69
70 UShort_t fStripId; // channel = strip number within SSD module 0-1535
71 Long_t fEventsNumber; // number of events for fSignal memory allocation
72 Short_t *fSignal; //! array of signal data
73
74 Float_t fPedestal; // pedestal
75 Float_t fNoise; // noise
76 Float_t fNoiseCM; // noise with CM correction
77 Long_t fNOverflowEv; // Number of events which exceed the pedestal calculation threshold
78
79 ClassDef(AliITSChannelDaSSD, 3)
80};
81
82#endif