21-jun-2005 NvE Install scripts for gcc corrected to also include the rdmc stuff
[u/mrichter/AliRoot.git] / RALICE / AliDevice.h
CommitLineData
7a086578 1#ifndef ALIDEVICE_H
2#define ALIDEVICE_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
965bd237 8#include "TPolyMarker3D.h"
9
7a086578 10#include "AliSignal.h"
11
12class AliDevice : public AliSignal
13{
14 public:
15 AliDevice(); // Default constructor
16 virtual ~AliDevice(); // Default destructor
17 AliDevice(const AliDevice& dev); // Copy constructor
18 virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer
9e6577df 19 void SetStatus(Int_t word); // Set the status word (user definable)
20 Int_t GetStatus() const; // Provide the status word
7a086578 21 void SetHitCopy(Int_t j); // (De)activate creation of private copies of hits
22 Int_t GetHitCopy() const; // Provide HitCopy flag value
23 void AddHit(AliSignal& s); // Register an AliSignal object as a hit to this module
b055c99d 24 void AddHit(AliSignal* s) { if (s) AddHit(*s); }
7a086578 25 void RemoveHit(AliSignal& s); // Remove AliSignal object as hit from this module
b055c99d 26 void RemoveHit(AliSignal* s) { if (s) RemoveHit(*s); }
7a086578 27 void RemoveHits(); // Remove all AliSignals as hits from this module
28 Int_t GetNhits() const; // Provide number of registered hits
29 AliSignal* GetHit(Int_t j) const; // Access to the AliSignal registered as hit number j
4f368c8c 30 AliSignal* GetIdHit(Int_t id) const; // Provide the hit with unique identifier "id"
7a086578 31 TObjArray* GetHits(); // Provide the references to all the registered hits
32 virtual void Reset(Int_t mode=0); // Reset registered hits and AliSignal attributes
33 void ShowHit(Int_t j=0) const; // Show data of the j-th hit (j=0 means all hits)
34 virtual void Data(TString f="car") const; // Print device and all signal info for coord. frame f
965bd237 35 void GetExtremes(Float_t& vmin,Float_t& vmax,Int_t idx=1,TObjArray* hits=0) const; // Get min. and max. signal value
36 void GetExtremes(Float_t& vmin,Float_t& vmax,TString name,TObjArray* hits=0) const;// Get min. and max. signal value
7b825f44 37 TObjArray* SortHits(TString name,Int_t mode=-1,TObjArray* hits=0); // Sort hits by named signal value
38 TObjArray* SortHits(Int_t idx=1,Int_t mode=-1,TObjArray* hits=0); // Sort hits by indexed signal value
965bd237 39 void DisplayHits(TString name,Float_t scale=-1,TObjArray* hits=0,Int_t dp=0,Int_t mstyle=8,Int_t mcol=4);// Hit disp.
40 void DisplayHits(Int_t idx=1,Float_t scale=-1,TObjArray* hits=0,Int_t dp=0,Int_t mstyle=8,Int_t mcol=4); // Hit disp.
7a086578 41
42 protected:
9e6577df 43 Int_t fStatus; // User definable status word
7b825f44 44 Int_t fHitCopy; // Flag to denote making private copies of added hits
45 TObjArray* fHits; // Array to hold the registered hits
46 TObjArray* fOrdered; //! Temp. array to hold the ordered hits
965bd237 47 TObjArray* fMarkers; //! Temp. array to hold the 3D markers for the hit display
7a086578 48
9e6577df 49 ClassDef(AliDevice,6) // Signal (Hit) handling of a generic device.
7a086578 50};
51#endif