Add possibility to rotate event
[u/mrichter/AliRoot.git] / RALICE / AliSignal.h
index 3e94a7d..ee6bb95 100644 (file)
@@ -16,6 +16,7 @@
 #include "AliObjMatrix.h"
 
 class AliDevice;
+class AliTrack;
 
 class AliSignal : public TNamed,public AliPosition,public AliAttrib
 {
@@ -37,20 +38,23 @@ class AliSignal : public TNamed,public AliPosition,public AliAttrib
   virtual void ResetSignals(Int_t mode=0);                      // Selective reset of signal values and/or errors
   virtual void DeleteSignals(Int_t mode=0);                     // Selectie delete of signal values and/or errors
   virtual void Reset(Int_t mode=0);                             // Reset signal and position values and errors
-  virtual void Data(TString f="car") const;                     // Print all signal info for coord. frame f
+  virtual void Data(TString f="car",TString u="rad") const;     // Print all signal info for frame f and ang units u
   virtual void List(Int_t j=0) const;                           // Print signal info for the j-th (all) slot(s)
   virtual void List(TString name) const;                        // Print signal info for the name-specified slot
+  void ListWaveform(Int_t j=0) const;                           // Print info for the j-th (all) waveform(s)
+  void ListTrack(Int_t j=0) const;                              // Print info for the j-th (all) assoc. track(s)
   Int_t GetNvalues() const;                                     // Provide the number of signal values
   Int_t GetNerrors() const;                                     // Provide the number of specified errors
+  virtual Int_t GetNslots() const;                              // Provide the number of exising slots
   Int_t GetNwaveforms() const;                                  // Provide the number of specified waveforms
-  void SetWaveform(TH1F* waveform,Int_t j=1);                   // Set the waveform histogram for the j-th slot
-  void SetWaveform(TH1F* waveform,TString name);                // Set the waveform histo for the name-specified slot
-  TH1F* GetWaveform(Int_t j=1) const;                           // Pointer to the waveform histo of the j-th slot
-  TH1F* GetWaveform(TString name) const;                        // Pointer to the waveform of the name-specified slot
-  void ResetWaveform(Int_t j=1);                                // Reset the waveform histo of the j-th slot
-  void ResetWaveform(TString name);                             // Reset the waveform histo of the name-specified slot
-  void DeleteWaveform(Int_t j=1);                               // Delete waveform histo of the j-th slot
-  void DeleteWaveform(TString name);                            // Delete waveform histo of the name-specified slot
+  void SetWaveform(TH1F* waveform,Int_t j=1);                   // Set the histogram for the j-th waveform
+  TH1F* GetWaveform(Int_t j=1) const;                           // Pointer to the histo of the j-th waveform
+  TH1F* GetWaveform(TString name) const;                        // Pointer to the waveform with the specified name
+  Int_t GetWaveformIndex(TString name) const;                   // Index of the waveform with the specified name
+  void ResetWaveform(Int_t j=1);                                // Reset the histo of the j-th waveform
+  void ResetWaveform(TString name);                             // Reset the waveform histo with the specified name
+  void DeleteWaveform(Int_t j=1);                               // Delete histo of the j-th waveform
+  void DeleteWaveform(TString name);                            // Delete waveform histo with the specified name
   Int_t GetNlinks(TObject* obj=0,Int_t j=0) const;              // Number of links for the specified object
   Int_t GetNlinks(TObject* obj,TString name) const;             // Number of links for the specified object
   void SetLink(TObject* obj,Int_t j=1,Int_t k=1);               // Link object to the j-th slot at position k
@@ -71,14 +75,27 @@ class AliSignal : public TNamed,public AliPosition,public AliAttrib
   Int_t GetSwapMode() const;                                    // Provide swapmode flag for the link storage
   void SetDevice(TObject* dev);                                 // Store pointer to the device that owns this signal
   AliDevice* GetDevice() const;                                 // Provide pointer to the owning device 
+  void AddTrack(AliTrack& t,Int_t mode=1);                      // Relate an AliTrack to this signal
+  void RemoveTrack(AliTrack& t,Int_t mode=1);                   // Remove related AliTrack from this signal
+  void RemoveTracks(Int_t mode=1);                              // Remove all related AliTracks from this signal
+  Int_t GetNtracks(AliTrack* t=0) const;                        // Provide number of related AliTracks
+  AliTrack* GetTrack(Int_t j) const;                            // Access to the related AliTrack number j
+  AliTrack* GetIdTrack(Int_t id) const;                         // Access to the related AliTrack with ID=id
+  Int_t GetSignalFlag(Int_t j=1) const;                         // Provide signal value flag of the j-th slot
+  Int_t GetSignalFlag(TString name) const;                      // Provide signal value flag of the name specified slot
+  Int_t GetErrorFlag(Int_t j=1) const;                          // Provide error value flag of the j-th slot
+  Int_t GetErrorFlag(TString name) const;                       // Provide error value flag of the name specified slot
 
  protected:
+  void SetSigFlags(Int_t is,Int_t ie,Int_t j); // Set flags for signal and/or error value settings
   TArrayF* fSignals;                           // Signal values
   TArrayF* fDsignals;                          // Errors on signal values
+  TArrayI* fSigflags;                          // Flags to mark setting of signal and/or error values 
   TObjArray* fWaveforms;                       // The 1D histograms containing the signal waveforms
   AliObjMatrix* fLinks;                        // Pointers of objects related to the various slots
   TObject* fDevice;                            // Pointer to the device that owns this signal
+  TObjArray* fTracks;                          // Pointers to associated tracks
 
- ClassDef(AliSignal,13) // Generic handling of (extrapolated) detector signals.
+ ClassDef(AliSignal,16) // Generic handling of (extrapolated) detector signals.
 };
 #endif