]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSTriggerConditions.h
more suggestions from valgrind
[u/mrichter/AliRoot.git] / ITS / AliITSTriggerConditions.h
CommitLineData
ad7f2bfa 1#ifndef AliITSTriggerConditions_H
2#define AliITSTriggerConditions_H
3
4////////////////////////////////////////////////////////////////////////////////////
5// Author: Henrik Tydesjo //
6// //
7// Implementation of conditions data from Pixel Trigger (PIT) //
8// //
9// The information is propagated from pixel trigger system to DCS file exchange //
10// server (text file format). The ReadFromTextFile method will populate this //
11// object with the values from the text file. Via a Preprocessor, this object //
12// can be stored in OCDB. //
13// //
14// One can also manually create conditions data that may be interesting for //
15// simulation. //
16// //
17////////////////////////////////////////////////////////////////////////////////////
18
19#include <TObject.h>
20#include <TObjArray.h>
21#include <TString.h>
22#include <TBits.h>
23
24class AliITSTriggerConditions : public TObject{
25 public:
26 AliITSTriggerConditions();
27 AliITSTriggerConditions(const AliITSTriggerConditions& cond);
28 virtual ~AliITSTriggerConditions();
29 AliITSTriggerConditions& operator=(const AliITSTriggerConditions& cond);
30
31 virtual Bool_t IsEqualTo(AliITSTriggerConditions *cond) const;
32
33 virtual void DumpAll() const;
ed041840 34 virtual void PrintAsInPIT() const;
ad7f2bfa 35 virtual void ResetAll();
36
37 virtual void SetRunNumber(UInt_t num) {fRunNumber=num;}
38 virtual UInt_t GetRunNumber() const {return fRunNumber;}
39 virtual void SetFirmWareVersion(UShort_t num) {fFirmWareVersion=num;}
40 virtual UShort_t GetFirmWareVersion() const {return fFirmWareVersion;}
41 virtual void SetGlobalDescription(const Char_t* descr) {fGlobalDescription=descr;}
42 virtual const Char_t* GetGlobalDescription() const {return fGlobalDescription.Data();}
43 virtual void SetVersionRegister(UShort_t num) {fVersionRegister=num;}
44 virtual UShort_t GetVersionRegister() const {return fVersionRegister;}
45 virtual void SetInputConditionsVersion(UShort_t num) {fInputConditionsVersion=num;}
46 virtual UShort_t GetInputConditionsVersion() const {return fInputConditionsVersion;}
47 virtual void SetParametersVersion(UShort_t num) {fParametersVersion=num;}
48 virtual UShort_t GetParametersVersion() const {return fParametersVersion;}
49
50 virtual void SetInActiveChip(UInt_t eq, UInt_t hs, UInt_t chip)
51 {fInActiveChips.SetBitNumber(GetChipKey(eq,hs,chip));}
52 virtual void ResetInActiveChips() {fInActiveChips.ResetAllBits();}
53 virtual void SetActiveChip(UInt_t eq, UInt_t hs, UInt_t chip)
54 {fInActiveChips.SetBitNumber(GetChipKey(eq,hs,chip),kFALSE);}
55 virtual void DumpInActiveChips() const;
56
57 virtual Bool_t IsChipActive(UInt_t eq, UInt_t hs, UInt_t chip) const
58 {return !IsChipInActive(eq,hs,chip);}
59 virtual Bool_t IsChipInActive(UInt_t eq, UInt_t hs, UInt_t chip) const
60 {return fInActiveChips.TestBitNumber(GetChipKey(eq,hs,chip));}
61 virtual Bool_t GetNextInActiveChip(Int_t& eq, Int_t& hs, Int_t& chip) const;
62
63 virtual void ClearAlgorithms();
64 virtual void ClearAlgoParamsI(UShort_t aIndex);
65 virtual void ClearAlgoParamsL(const Char_t* aLabel);
66
67 virtual void AddAlgo(UShort_t id, const Char_t* aLabel, const Char_t* aDescr);
68 virtual void AddAlgoParam(UShort_t id, const Char_t* pName, Int_t pValue);
69
70 virtual UShort_t GetNumAlgo() const {return fNumAlgo;}
71 virtual Short_t GetAlgoIndexL(const Char_t* aLabel) const;
72 virtual Short_t GetAlgoIDI(UShort_t aIndex) const;
73 virtual const Char_t* GetAlgoLabelI(UShort_t aIndex) const;
74 virtual const Char_t* GetAlgoDescriptionI(UShort_t aIndex) const;
75
76 virtual Short_t GetNumAlgoParamI(UShort_t aIndex) const;
77 virtual const Char_t* GetAlgoParamNameII(UShort_t aIndex, UShort_t pIndex) const;
78 virtual Int_t GetAlgoParamValueII(UShort_t aIndex, UShort_t pIndex) const;
79 virtual Int_t GetAlgoParamValueIN(UShort_t aIndex, const Char_t* pName) const;
80 virtual Short_t GetNumAlgoParamL(const Char_t* aLabel) const;
81 virtual const Char_t* GetAlgoParamNameLI(const Char_t* aLabel, UShort_t pIndex) const;
82 virtual Int_t GetAlgoParamValueLI(const Char_t* aLabel, UShort_t pIndex) const;
83 virtual Int_t GetAlgoParamValueLN(const Char_t* aLabel, const Char_t* pName) const;
84
85 virtual void ReadFromTextFile(const Char_t* fileName);
86
87 protected:
88 UInt_t fRunNumber; // Run number
89 UShort_t fFirmWareVersion; // PIT Processing firmware version
90 TString fGlobalDescription; // PIT Global description
91 UShort_t fVersionRegister; // PIT Version register value
92 UShort_t fInputConditionsVersion; // PIT Input configuration version
93 UShort_t fParametersVersion; // PIT Parameters version
94 TBits fInActiveChips; // Map of PIT de-activated chips
95 UShort_t fNumAlgo; // Number of algorithms used
96 TObjArray fAlgoList; // List of conditions for each algorithm used
97
98 UInt_t GetChipKey(Int_t eq, Int_t hs, Int_t chip) const;
99 void GetChipFromKey(UInt_t key, Int_t& eq, Int_t& hs, Int_t& chip) const;
100 Bool_t SplitStringIn2(TString orig, TString& word1, TString& word2, Char_t sep);
101 TString GetStringBetween(TString orig, Char_t sep1, Char_t sep2);
102
103 ClassDef(AliITSTriggerConditions,1) // Trigger conditions class
104};
105
106#endif