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