X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSdigit.h;h=b76d02772b8a77c50592fda91b8f0db18edabfd5;hb=1e2b8bb712d3ba6657f8d744e70a1fcd12df4fb1;hp=02d3884e5cef5f2bd48e01420aea2eaa296c0a9f;hpb=3bd79107e15b5ec1800d2907936bc2220ad71c6d;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSdigit.h b/ITS/AliITSdigit.h index 02d3884e5ce..b76d02772b8 100644 --- a/ITS/AliITSdigit.h +++ b/ITS/AliITSdigit.h @@ -1,165 +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 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 - -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 TObjArray; +class TArrayI; +class TArrayF; -//___________________________________________ -class AliITSdigitSPD: public AliITSdigit { - -public: - - // debugging -- goes to the dictionary - Int_t fTracks[3]; // tracks making this digit - -public: - AliITSdigitSPD() { - // constructor - fSignal=fCoord1=fCoord2=0; - fTracks[0]=fTracks[1]=fTracks[2]=0; - } - - AliITSdigitSPD(Int_t *digits); - AliITSdigitSPD(Int_t *digits, Int_t *tracks); - - 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 - Float_t fTcharges[3]; // charge per track making this digit - Float_t fPhysics; // signal particles contribution to signal - -public: - AliITSdigitSDD() { - // constructor - fSignal=fCoord1=fCoord2=0; - fTracks[0]=fTracks[1]=fTracks[2]=0; - fPhysics=0; fTcharges[0]=fTcharges[1]=fTcharges[2]=0; - } - - AliITSdigitSDD(Float_t phys,Int_t *digits); - AliITSdigitSDD( Float_t phys, Int_t *digits, Int_t *tracks, 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() {//default constructor. zero all values. + fSignal=fCoord1=fCoord2=0;} + //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 - -public: - AliITSdigitSSD() { - // constructor - fSignal=fCoord1=fCoord2=0; - fTracks[0]=fTracks[1]=fTracks[2]=0; - } - - AliITSdigitSSD(Int_t *digits); - AliITSdigitSSD(Int_t *digits, Int_t *tracks); - - 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