04-apr-2004 NvE SetMass() invoked from AliTrack::Set3Momentum to get also the energy...
[u/mrichter/AliRoot.git] / RALICE / AliSignal.h
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 AliSignal : public TNamed,public AliPosition,public AliAttrib
19 {
20  public:
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
53
54  protected:
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
59
60  ClassDef(AliSignal,12) // Generic handling of (extrapolated) detector signals.
61 };
62 #endif