3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
11 #include "TObjArray.h"
14 #include "AliPosition.h"
15 #include "AliAttrib.h"
16 #include "AliObjMatrix.h"
18 class AliSignal : public TNamed,public AliPosition,public AliAttrib
21 AliSignal(); // Default constructor
22 virtual ~AliSignal(); // Destructor
23 AliSignal(const AliSignal& s); // Copy constructor
24 virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer
25 virtual void SetSignal(Double_t sig,Int_t j=1); // Store j-th signal value
26 virtual void AddSignal(Double_t sig,Int_t j=1); // Add value to j-th signal value
27 virtual Float_t GetSignal(Int_t j=1,Int_t mode=0) const; // Provide j-th (corrected) signal value
28 virtual void SetSignalError(Double_t dsig,Int_t j=1); // Store error on j-th signal value
29 virtual Float_t GetSignalError(Int_t j=1) const; // Provide error j-th signal value
30 virtual void ResetSignals(Int_t mode=0); // Selective reset of signal values and/or errors
31 virtual void DeleteSignals(Int_t mode=0); // Selectie delete of signal values and/or errors
32 virtual void Reset(Int_t mode=0); // Reset signal and position values and errors
33 virtual void Data(TString f="car") const; // Print all signal info for coord. frame f
34 virtual void List(Int_t j=0) const; // Print signal info for the j-th (all) slot(s)
35 Int_t GetNvalues() const; // Provide the number of signal values
36 Int_t GetNerrors() const; // Provide the number of specified errors
37 Int_t GetNwaveforms() const; // Provide the number of specified waveforms
38 void SetWaveform(TH1F* waveform,Int_t j=1); // Set the j-th waveform histogram
39 TH1F* GetWaveform(Int_t j=1) const; // Pointer of the j-th waveform histogram
40 void ResetWaveform(Int_t j=1); // Reset the j-th waveform histogram
41 void DeleteWaveform(Int_t j=1); // Delete the j-th waveform histogram
42 Int_t GetNlinks(TObject* obj=0,Int_t j=0) const; // Number of links for the specified object
43 void SetLink(TObject* obj,Int_t j=1,Int_t k=1); // Link object to the j-th slot at position k
44 void AddLink(TObject* obj,Int_t j=1); // Link obj to the j-th slot at 1st free position
45 TObject* GetLink(Int_t j=1,Int_t k=1) const; // Pointer of the object linked to the j-th slot
46 Int_t GetIndices(TObject* obj,TArrayI& js,TArrayI& ks) const; // Slot and pos. indices for linked objects
47 Int_t GetIndices(TObject* obj,Int_t j,TArrayI& ks) const; // Pos. indices for linked objects of j-th slot
48 Int_t GetIndices(TObject* obj,TArrayI& js,Int_t k) const; // Slot indices for linked objects at pos. k
49 void ResetLink(Int_t j=1,Int_t k=1); // Reset the link(s) of the j-th slot
50 void ResetLinks(TObject* obj,Int_t j=0,Int_t k=0); // Reset link(s) to object obj for j-th slot
51 void SetSwapMode(Int_t swap=1); // Set swapmode flag for the link storage
52 Int_t GetSwapMode() const; // Provide swapmode flag for the link storage
55 TArrayF* fSignals; // Signal values
56 TArrayF* fDsignals; // Errors on signal values
57 TObjArray* fWaveforms; // The 1D histograms containing the signal waveforms
58 AliObjMatrix* fLinks; // Pointers of objects related to the various slots
60 ClassDef(AliSignal,12) // Generic handling of (extrapolated) detector signals.