X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSdigit.h;h=b76d02772b8a77c50592fda91b8f0db18edabfd5;hb=62ef98abe66e738d84c502c51da4469e420f2ab3;hp=623ab0147ac79a1bff822ebd12328be7c415627d;hpb=f8dece8df1f1d1be3821ef14c00555d0da7bed3c;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSdigit.h b/ITS/AliITSdigit.h index 623ab0147ac..b76d02772b8 100644 --- a/ITS/AliITSdigit.h +++ b/ITS/AliITSdigit.h @@ -1,15 +1,20 @@ #ifndef ALIITSDIGIT_H #define ALIITSDIGIT_H -/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * +/* Copyright(c) 2004-2006, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ + /* $Id$ */ + //////////////////////////////////////////////// // Digits classes for all ITS detectors // //////////////////////////////////////////////// -#include -#include +#include +#include #include -#include + +class TObjArray; +class TArrayI; +class TArrayF; //______________________________________________________________________ class AliITSdigit: public TObject { @@ -21,24 +26,31 @@ class AliITSdigit: public TObject { AliITSdigit(const Int_t *digits); //Destructor virtual ~AliITSdigit() { } - //returns pointer to array of tracks - virtual Int_t *GetTracks() const {return 0;} - //returns pointer to array of hits - virtual Int_t *GetHits() const {return 0;} + // 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 i) const {return 0;} + 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 i) const {return 0;} + 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 - void Print(ostream *os); // Class ascii print function - void Read(istream *os); // Class ascii read function - public: + 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 + + 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 @@ -49,171 +61,5 @@ class AliITSdigit: public TObject { // Input and output functions for standard C++ input/output. ostream &operator<<(ostream &os,AliITSdigit &source); istream &operator>>(istream &os,AliITSdigit &source); -//______________________________________________________________________ -class AliITSdigitSPD: public AliITSdigit { - - public: - AliITSdigitSPD(); //default creator - AliITSdigitSPD(const Int_t *digits);//standard creator digits only - //standard creator with digits, tracks, and hits - AliITSdigitSPD(const Int_t *digits,const Int_t *tracks,const Int_t *hits); - virtual ~AliITSdigitSPD(){/*destructor*/} - // returns pointer to the array of tracks which make this digit - virtual int *GetTracks() {return &fTracks[0];} - //returns the pointer to the array of hits which made this digit - virtual Int_t *GetHits() {return &fHits[0];} - // returns track number kept in the array element i of fTracks - virtual Int_t GetTrack(Int_t i) const {return fTracks[i];} - // returns hit number kept in the array element i of fHits - virtual Int_t GetHit(Int_t i) const {return fHits[i];} - //copy the array trks[3] into fTracks - virtual void SetTracks(const Int_t *trks){ - for(Int_t i=0;i<3;i++) fTracks[i]=trks[i];} - //copy the array hits[3] into fHits - virtual void SetHits(const Int_t *hits){ - for(Int_t i=0;i<3;i++) fHits[i]=hits[i];} - //set array element i of fTracks to trk. - virtual void SetTrack(Int_t i,Int_t trk){fTracks[i]=trk;} - //set array element i of fHits to hit. - virtual void SetHit(Int_t i,Int_t hit){fHits[i]=hit;} - void Print(ostream *os); // Class ascii print function - void Read(istream *os); // Class ascii read function - - 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 - - ClassDef(AliITSdigitSPD,1) // Simulated digit object for SPD - -}; -// Input and output functions for standard C++ input/output. -ostream &operator<<(ostream &os,AliITSdigitSPD &source); -istream &operator>>(istream &os,AliITSdigitSPD &source); -//______________________________________________________________________ -class AliITSdigitSDD: public AliITSdigit { - - public: - AliITSdigitSDD(); //default creator - //standard creator with digits and "phys" - AliITSdigitSDD(Float_t phys,const Int_t *digits); - //standard creator with digits, tracls, hits, "phys", and charge - AliITSdigitSDD( Float_t phys,const Int_t *digits,const Int_t *tracks, - const Int_t *hits,const Float_t *charges); - virtual ~AliITSdigitSDD(){/* destructor*/} - // returns pointer to the array of tracks which make this digit - virtual int *GetTracks() {return &fTracks[0];} - // returns the pointer to the array of hits which made this digit - virtual Int_t *GetHits() {return &fHits[0];} - // returns track number kept in the array element i of fTracks - virtual Int_t GetTrack(Int_t i) const {return fTracks[i];} - // returns hit number kept in the array element i of fHits - virtual Int_t GetHit(Int_t i) const {return fHits[i];} - //copy the array trks[3] into fTracks - virtual void SetTracks(const Int_t *trks){ - for(Int_t i=0;i<3;i++) fTracks[i]=trks[i];} - //copy the array hits[3] into fHits - virtual void SetHits(const Int_t *hits){ - for(Int_t i=0;i<3;i++) fHits[i]=hits[i];} - //set array element i of fTracks to trk. - virtual void SetTrack(Int_t i,Int_t trk){fTracks[i]=trk;} - //set array element i of fHits to hit. - virtual void SetHit(Int_t i,Int_t hit){fHits[i]=hit;} - void Print(ostream *os); // Class ascii print function - void Read(istream *os); // Class ascii read function - - 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 - - ClassDef(AliITSdigitSDD,1) // Simulated digit object for SDD - -}; -// Input and output functions for standard C++ input/output. -ostream &operator<<(ostream &os,AliITSdigitSDD &source); -istream &operator>>(istream &os,AliITSdigitSDD &source); -//______________________________________________________________________ -class AliITSTransientDigit : public AliITSdigitSDD { - - public: - AliITSTransientDigit() {/*default constructor*/fTrackList=0;} - // Standard constructor with digits and "phys" - AliITSTransientDigit(Float_t phys,const Int_t *digits); - virtual ~AliITSTransientDigit(){/*destructor delets TObjArray fTracklist */ - delete fTrackList;} - //copy constructor - AliITSTransientDigit(const AliITSTransientDigit &source); - //assignment operator - AliITSTransientDigit& operator=(const AliITSTransientDigit &source); - // returns pointer to the TObjArray of tracks and associated charges - TObjArray *TrackList() const {return fTrackList;} - //returns element i of fTrackList - TObject *TrackItem(Int_t i) const {return fTrackList->At(i);} - //put TObject into fTrackList at location i - void PutTrackItem(TObject *obj,Int_t i){fTrackList->AddAt(obj,i);} - void Print(ostream *os); // Class ascii print function - void Read(istream *os); // Class ascii read function - - public: - TObjArray *fTrackList; // track list - - ClassDef(AliITSTransientDigit,1) // Transient digit for set: ITS - -}; -// Input and output functions for standard C++ input/output. -ostream &operator<<(ostream &os,AliITSTransientDigit &source); -istream &operator>>(istream &os,AliITSTransientDigit &source); -//______________________________________________________________________ -class AliITSdigitSSD: public AliITSdigit { - - public: - AliITSdigitSSD(); //default constructor - //Standard constructor with digits - AliITSdigitSSD(const Int_t *digits); - //Standard constructor with digits, tracks, and hits - AliITSdigitSSD(const Int_t *digits,const Int_t *tracks,const Int_t *hits); - virtual ~AliITSdigitSSD(){/* destructor */} - Int_t GetSignal() const {/* returns signal*/return fSignal;} - Int_t GetStripNumber() const {/* returns strip number*/return fCoord2;} - //returns 1 when side P and 0 when side N - Int_t IsSideP() const {return fCoord1;} - // returns pointer to the array of tracks which make this digit - virtual int *GetTracks() {return &fTracks[0];} - // returns the pointer to the array of hits which made this digit - virtual Int_t *GetHits() {return &fHits[0];} - // returns track number kept in the array element i of fTracks - virtual Int_t GetTrack(Int_t i) const {return fTracks[i];} - // returns hit number kept in the array element i of fHits - virtual Int_t GetHit(Int_t i) const {return fHits[i];} - //copy the array trks[3] into fTracks - virtual void SetTracks(const Int_t *trks){ - for(Int_t i=0;i<3;i++) fTracks[i]=trks[i];} - //copy the array hits[3] into fHits - virtual void SetHits(const Int_t *hits){ - for(Int_t i=0;i<3;i++) fHits[i]=hits[i];} - //set array element i of fTracks to trk. - virtual void SetTrack(Int_t i,Int_t trk){fTracks[i]=trk;} - //set array element i of fHits to hit. - virtual void SetHit(Int_t i,Int_t hit){fHits[i]=hit;} - void Print(ostream *os); // Class ascii print function - void Read(istream *os); // Class ascii read function - - 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 - - ClassDef(AliITSdigitSSD,1) // Simulated digit object for SSD - -}; -// Input and output functions for standard C++ input/output. -ostream &operator<<(ostream &os,AliITSdigitSSD &source); -istream &operator>>(istream &os,AliITSdigitSSD &source); #endif