]>
Commit | Line | Data |
---|---|---|
d88f97cc | 1 | #ifndef ALISIGNAL_H |
2 | #define ALISIGNAL_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
f531a546 | 6 | // $Id$ |
3da30618 | 7 | |
959fbac5 | 8 | #include "TObject.h" |
9 | #include "TArrayF.h" | |
c72198f1 | 10 | #include "TH1.h" |
1fbffa23 | 11 | #include "TObjArray.h" |
d0a8ef71 | 12 | #include "TArrayI.h" |
d88f97cc | 13 | |
14 | #include "AliPosition.h" | |
1fbffa23 | 15 | #include "AliAttrib.h" |
d0a8ef71 | 16 | #include "AliObjMatrix.h" |
d88f97cc | 17 | |
965bd237 | 18 | class AliDevice; |
19 | ||
1c01b4f8 | 20 | class AliSignal : public TNamed,public AliPosition,public AliAttrib |
d88f97cc | 21 | { |
22 | public: | |
261c0caf | 23 | AliSignal(); // Default constructor |
24 | virtual ~AliSignal(); // Destructor | |
25 | AliSignal(const AliSignal& s); // Copy constructor | |
26 | virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer | |
2cb7369d | 27 | virtual void SetSignal(Double_t sig,Int_t j=1); // Store signal value for the j-th slot |
28 | virtual void SetSignal(Double_t sig,TString name); // Store signal value for the name-specified slot | |
29 | virtual void AddSignal(Double_t sig,Int_t j=1); // Add value to the signal of the j-th slot | |
30 | virtual void AddSignal(Double_t sig,TString name); // Add value to the signal of the name-specified slot | |
261c0caf | 31 | virtual Float_t GetSignal(Int_t j=1,Int_t mode=0) const; // Provide j-th (corrected) signal value |
2cb7369d | 32 | virtual Float_t GetSignal(TString name,Int_t mode=0) const; // Provide name-specified (corrected) signal value |
33 | virtual void SetSignalError(Double_t dsig,Int_t j=1); // Store error on the signal of the j-th slot | |
34 | virtual void SetSignalError(Double_t dsig,TString name); // Store error on the signal of the name-specified slot | |
35 | virtual Float_t GetSignalError(Int_t j=1) const; // Provide error on the signal of the j-th slot | |
36 | virtual Float_t GetSignalError(TString name) const; // Provide err. on the sig. of the name-specified slot | |
261c0caf | 37 | virtual void ResetSignals(Int_t mode=0); // Selective reset of signal values and/or errors |
38 | virtual void DeleteSignals(Int_t mode=0); // Selectie delete of signal values and/or errors | |
39 | virtual void Reset(Int_t mode=0); // Reset signal and position values and errors | |
40 | virtual void Data(TString f="car") const; // Print all signal info for coord. frame f | |
41 | virtual void List(Int_t j=0) const; // Print signal info for the j-th (all) slot(s) | |
2cb7369d | 42 | virtual void List(TString name) const; // Print signal info for the name-specified slot |
6a8254a0 | 43 | void ListWaveform(Int_t j=0) const; // Print info for the j-th (all) waveform(s) |
261c0caf | 44 | Int_t GetNvalues() const; // Provide the number of signal values |
45 | Int_t GetNerrors() const; // Provide the number of specified errors | |
46 | Int_t GetNwaveforms() const; // Provide the number of specified waveforms | |
6a8254a0 | 47 | void SetWaveform(TH1F* waveform,Int_t j=1); // Set the histogram for the j-th waveform |
48 | TH1F* GetWaveform(Int_t j=1) const; // Pointer to the histo of the j-th waveform | |
49 | TH1F* GetWaveform(TString name) const; // Pointer to the waveform with the specified name | |
50 | Int_t GetWaveformIndex(TString name) const; // Index of the waveform with the specified name | |
51 | void ResetWaveform(Int_t j=1); // Reset the histo of the j-th waveform | |
52 | void ResetWaveform(TString name); // Reset the waveform histo with the specified name | |
53 | void DeleteWaveform(Int_t j=1); // Delete histo of the j-th waveform | |
54 | void DeleteWaveform(TString name); // Delete waveform histo with the specified name | |
261c0caf | 55 | Int_t GetNlinks(TObject* obj=0,Int_t j=0) const; // Number of links for the specified object |
2cb7369d | 56 | Int_t GetNlinks(TObject* obj,TString name) const; // Number of links for the specified object |
261c0caf | 57 | void SetLink(TObject* obj,Int_t j=1,Int_t k=1); // Link object to the j-th slot at position k |
2cb7369d | 58 | void SetLink(TObject* obj,TString name,Int_t k=1); // Link object to the name-specified slot at pos. k |
261c0caf | 59 | void AddLink(TObject* obj,Int_t j=1); // Link obj to the j-th slot at 1st free position |
2cb7369d | 60 | void AddLink(TObject* obj,TString name); // Link obj to the name-specified slot at 1st free pos. |
261c0caf | 61 | TObject* GetLink(Int_t j=1,Int_t k=1) const; // Pointer of the object linked to the j-th slot |
2cb7369d | 62 | TObject* GetLink(TString name,Int_t k=1) const; // Pointer of object linked to the name-specified slot |
261c0caf | 63 | Int_t GetIndices(TObject* obj,TArrayI& js,TArrayI& ks) const; // Slot and pos. indices for linked objects |
64 | Int_t GetIndices(TObject* obj,Int_t j,TArrayI& ks) const; // Pos. indices for linked objects of j-th slot | |
2cb7369d | 65 | Int_t GetIndices(TObject* obj,TString name,TArrayI& ks) const;// Pos. indices for linked objects of name-spec. slot |
261c0caf | 66 | Int_t GetIndices(TObject* obj,TArrayI& js,Int_t k) const; // Slot indices for linked objects at pos. k |
67 | void ResetLink(Int_t j=1,Int_t k=1); // Reset the link(s) of the j-th slot | |
2cb7369d | 68 | void ResetLink(TString name,Int_t k=1); // Reset the link(s) of the name-specified slot |
261c0caf | 69 | void ResetLinks(TObject* obj,Int_t j=0,Int_t k=0); // Reset link(s) to object obj for j-th slot |
2cb7369d | 70 | void ResetLinks(TObject* obj,TString name,Int_t k=0); // Reset link(s) to object obj for name-specified slot |
261c0caf | 71 | void SetSwapMode(Int_t swap=1); // Set swapmode flag for the link storage |
72 | Int_t GetSwapMode() const; // Provide swapmode flag for the link storage | |
965bd237 | 73 | void SetDevice(TObject* dev); // Store pointer to the device that owns this signal |
74 | AliDevice* GetDevice() const; // Provide pointer to the owning device | |
c72198f1 | 75 | |
d88f97cc | 76 | protected: |
1fbffa23 | 77 | TArrayF* fSignals; // Signal values |
78 | TArrayF* fDsignals; // Errors on signal values | |
1fbffa23 | 79 | TObjArray* fWaveforms; // The 1D histograms containing the signal waveforms |
d0a8ef71 | 80 | AliObjMatrix* fLinks; // Pointers of objects related to the various slots |
965bd237 | 81 | TObject* fDevice; // Pointer to the device that owns this signal |
d88f97cc | 82 | |
6a8254a0 | 83 | ClassDef(AliSignal,14) // Generic handling of (extrapolated) detector signals. |
d88f97cc | 84 | }; |
85 | #endif |