X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=ITS%2FAliITSdigit.h;h=953711dc4eea69d2dfbbd01d07d3291e71a1315c;hb=da08475ba84bafb79f44acfd5d000f246d6fce0e;hp=6664f44bfffc51af39414023c73d5e7b6a70deb0;hpb=92c19c36512433d19719aec230f26127453b2815;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSdigit.h b/ITS/AliITSdigit.h index 6664f44bfff..953711dc4ee 100644 --- a/ITS/AliITSdigit.h +++ b/ITS/AliITSdigit.h @@ -1,157 +1,65 @@ #ifndef ALIITSDIGIT_H #define ALIITSDIGIT_H +/* Copyright(c) 2004-2006, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +/* $Id$ */ //////////////////////////////////////////////// -// Digits classes for set:ITS // +// Digits classes for all ITS detectors // //////////////////////////////////////////////// -#include +#include +#include #include +class TObjArray; +class TArrayI; +class TArrayF; -//___________________________________________ -class AliITSdigit: public TObject { - -public: - - Int_t fCoord1; // Cell number on Z axis (SPD+SDD) , flag for side type (SSD) - Int_t fCoord2 ; // Cell number on X axis (SPD+SDD) , strip number (SSD) - Int_t fSignal; // Signal in ADC counts - -public: - AliITSdigit() { - // constructor - fSignal=fCoord1=fCoord2=0; - } - AliITSdigit(Int_t *digits); - virtual ~AliITSdigit() { - // destructor - } - - ClassDef(AliITSdigit,1) // Real data digit object for set:ITS - }; - -//___________________________________________ -class AliITSdigitSPD: public AliITSdigit { - -public: - - // debugging -- goes to the dictionary - Int_t fTracks[3]; // tracks making this digit - Int_t fHits[3]; // hits associated to the tracks - // 3 hits temporarily - it will be only 1 - -public: - - AliITSdigitSPD(); - AliITSdigitSPD(Int_t *digits); - AliITSdigitSPD(Int_t *digits, Int_t *tracks, Int_t *hits); - - virtual ~AliITSdigitSPD(){ - // destructor - } - virtual int *GetTracks() { - // returns pointer to the array of tracks which make this digit - return &fTracks[0]; - } - - ClassDef(AliITSdigitSPD,1) // Simulated digit object for SPD - }; - -//___________________________________________ -class AliITSdigitSDD: public AliITSdigit { - -public: - - // debugging -- goes to the dictionary - Int_t fTracks[3]; // tracks making this digit - Int_t fHits[3]; // hits associated to the tracks - // 3 hits temporarily - it will be only 1 - Float_t fTcharges[3]; // charge per track making this digit - Float_t fPhysics; // signal particles contribution to signal - -public: - AliITSdigitSDD(); - AliITSdigitSDD(Float_t phys,Int_t *digits); - AliITSdigitSDD( Float_t phys, Int_t *digits, Int_t *tracks, Int_t *hits, Float_t *charges); - - virtual ~AliITSdigitSDD(){ - // destructor - } - virtual int *GetTracks() { - // returns pointer to the array of tracks which make this digit - return &fTracks[0]; - } - - ClassDef(AliITSdigitSDD,1) // Simulated digit object for SDD - }; +//______________________________________________________________________ +class AliITSdigit: public TObject { -//_____________________________________________________________________________ + public: + AliITSdigit(); + //Standard Constructor. Fills class from array digits + AliITSdigit(const Int_t *digits); + //Destructor + virtual ~AliITSdigit() { } + // returns the array size used to store Tracks and Hits + // virtual Int_t GetNTracks() {return 0;} + //returns pointer to array of tracks numbers + virtual Int_t *GetTracks() {return 0;} + // returns pointer to array of hits numbers for this module (as given by + // AliITSmodule). + virtual Int_t *GetHits() {return 0;} + // returns track number kept in the array element i of fTracks + virtual Int_t GetTrack(Int_t) const {return 0;} + // returns hit number kept in the array element i of fHits + virtual Int_t GetHit(Int_t) const {return 0;} + virtual Int_t GetCoord1() const {return fCoord1;} // returns fCoord1 + virtual Int_t GetCoord2() const {return fCoord2;} // returns fCoord2 + virtual Int_t GetSignal() const {return fSignal;} // returns fSignal + virtual Int_t GetCompressedSignal() const {return GetSignal();} // overloaded in AliITSdigitSDD + virtual void SetCoord1(Int_t i){fCoord1 = i;} // Sets fCoord1 value + virtual void SetCoord2(Int_t i){fCoord2 = i;} // Sets fCoord12value + virtual void SetSignal(Int_t i){fSignal = i;} // Sets fSignal value -class AliITSTransientDigit : public AliITSdigitSDD { -public: - TObjArray *fTrackList; // track list -public: - AliITSTransientDigit() { - // constructor - fTrackList=0; - } - AliITSTransientDigit(Float_t phys,Int_t *digits); - virtual ~AliITSTransientDigit() { - // destructor - delete fTrackList; - } - AliITSTransientDigit(const AliITSTransientDigit &source); // copy constructor - AliITSTransientDigit& operator=(const AliITSTransientDigit &source); // ass. operator - TObjArray *TrackList() { - // returns pointer to the TObjArray of tracks and associated charges - return fTrackList; - } - - ClassDef(AliITSTransientDigit,1) // Transient digit for set: ITS - }; + virtual void Print(Option_t *option="") const {TObject::Print(option);} + virtual void Print(ostream *os); // Class ascii print function + virtual Int_t Read(const char *name) {return TObject::Read(name);} + virtual void Read(istream *os); // Class ascii read function -//___________________________________________ -class AliITSdigitSSD: public AliITSdigit { - -public: - - // debugging -- goes to the dictionary - Int_t fTracks[3]; // tracks making this digit - Int_t fHits[3]; // hits associated to the tracks - // 3 hits temporarily - it will be only 1 - -public: - AliITSdigitSSD(); - AliITSdigitSSD(Int_t *digits); - AliITSdigitSSD(Int_t *digits, Int_t *tracks, Int_t *hits); - - virtual ~AliITSdigitSSD(){ - // destructor - } - - Int_t GetSignal() const { - // returns signal - return fSignal; - } + protected: + Int_t fCoord1; // Cell number on Z axis (SPD+SDD), flag for side type (SSD) + Int_t fCoord2; // Cell number on X axis (SPD+SDD), strip number (SSD) + Int_t fSignal; // Signal in ADC counts - Int_t GetStripNumber() const { - // returns strip number - return fCoord2; - } - - Int_t IsSideP() const { - //returns 1 when side P and 0 when side N - return fCoord1; - } - - virtual int *GetTracks() { - // returns pointer to the array of tracks which make this digit - return &fTracks[0]; - } - - ClassDef(AliITSdigitSSD,1) // Simulated digit object for SSD - }; + ClassDef(AliITSdigit,1) // Real data digit object for set:ITS +}; +// Input and output functions for standard C++ input/output. +ostream &operator<<(ostream &os,AliITSdigit &source); +istream &operator>>(istream &os,AliITSdigit &source); #endif