From f8dece8df1f1d1be3821ef14c00555d0da7bed3c Mon Sep 17 00:00:00 2001 From: nilsen Date: Thu, 16 Aug 2001 21:51:43 +0000 Subject: [PATCH] Fixed some codding convensions and added setters/getters and standard streamers. --- ITS/AliITSdigit.cxx | 362 +++++++++++++++++++++++++++++--------------- ITS/AliITSdigit.h | 350 +++++++++++++++++++++++------------------- 2 files changed, 437 insertions(+), 275 deletions(-) diff --git a/ITS/AliITSdigit.cxx b/ITS/AliITSdigit.cxx index 2e38b385786..53d56cbb3cc 100644 --- a/ITS/AliITSdigit.cxx +++ b/ITS/AliITSdigit.cxx @@ -1,163 +1,281 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ +/* $Id$ */ + //////////////////////////////////////////////// -// Digits classes for set:ITS // +// Digits classes for all ITS detectors // //////////////////////////////////////////////// - - #include "AliITSdigit.h" +//______________________________________________________________________ ClassImp(AliITSdigit) -//_____________________________________________________________________________ - -AliITSdigit::AliITSdigit(Int_t *digits) { - // +AliITSdigit::AliITSdigit(const Int_t *digits) { // Creates a real data digit object - // + fCoord1 = digits[0]; fCoord2 = digits[1]; fSignal = digits[2]; } +//______________________________________________________________________ +void AliITSdigit::Print(ostream *os){ + //Standard output format for this class + *os << fCoord1 <<","<< fCoord2 <<","<< fSignal; +} +//______________________________________________________________________ +void AliITSdigit::Read(istream *os){ + //Standard input for this class + *os >> fCoord1 >> fCoord2 >> fSignal; +} +//______________________________________________________________________ +ostream &operator<<(ostream &os,AliITSdigit &source){ + // Standard output streaming function. + + source.Print(&os); + return os; +} +//______________________________________________________________________ +istream &operator>>(istream &os,AliITSdigit &source){ + // Standard output streaming function. + + source.Read(&os); + return os; +} +//______________________________________________________________________ ClassImp(AliITSdigitSPD) - - AliITSdigitSPD::AliITSdigitSPD() { - // default constructor - fSignal=fCoord1=fCoord2=0; - fTracks[0]=fTracks[1]=fTracks[2]=-3; - fHits[0]=fHits[1]=fHits[2]=-1; - } - - - - //_________________________________________________________________________ - AliITSdigitSPD::AliITSdigitSPD(Int_t *digits) { - // - // Creates a SPD digit object - // - - fCoord1 = digits[0]; - fCoord2 = digits[1]; - fSignal = digits[2]; - +AliITSdigitSPD::AliITSdigitSPD():AliITSdigit(){ + // default constructor, zero coordinates and set array + // elements to clearly unphysical values. A value of 0 may + // be a valide track of hit number. + + fTracks[0] = fTracks[1] = fTracks[2] = -3; + fHits[0] = fHits[1] = fHits[2] = -1; } +//______________________________________________________________________ +AliITSdigitSPD::AliITSdigitSPD(const Int_t *digits):AliITSdigit(digits){ + // Creates a SPD digit object -//_____________________________________________________________________________ -AliITSdigitSPD::AliITSdigitSPD(Int_t *digits,Int_t *tracks,Int_t *hits) { - // - // Creates a simulated SPD digit object - // - - fCoord1 = digits[0]; - fCoord2 = digits[1]; - fSignal = digits[2]; - - for(Int_t i=0; i<3; i++) { - fTracks[i] = tracks[i]; - fHits[i] = hits[i]; - } + fTracks[0] = fTracks[1] = fTracks[2] = -3; + fHits[0] = fHits[1] = fHits[2] = -1; } +//______________________________________________________________________ +AliITSdigitSPD::AliITSdigitSPD(const Int_t *digits,const Int_t *tracks, + const Int_t *hits): AliITSdigit(digits){ + // Creates a simulated SPD digit object + for(Int_t i=0; i<3; i++) { + fTracks[i] = tracks[i]; + fHits[i] = hits[i]; + } // end for i +} +//______________________________________________________________________ +void AliITSdigitSPD::Print(ostream *os){ + //Standard output format for this class + + AliITSdigit::Print(os); + *os <<","<< fTracks[0] <<","<< fTracks[1] <<","<< fTracks[2]; + *os <<","<< fHits[0] <<","<< fHits[1] <<","<< fHits[2]; +} +//______________________________________________________________________ +void AliITSdigitSPD::Read(istream *os){ + //Standard input for this class + + AliITSdigit::Read(os); + *os >> fTracks[0] >> fTracks[1] >> fTracks[2]; + *os >> fHits[0] >> fHits[1] >> fHits[2]; +} +//______________________________________________________________________ +ostream &operator<<(ostream &os,AliITSdigitSPD &source){ + // Standard output streaming function. + + source.Print(&os); + return os; +} +//______________________________________________________________________ +istream &operator>>(istream &os,AliITSdigitSPD &source){ + // Standard output streaming function. + source.Read(&os); + return os; +} +//______________________________________________________________________ ClassImp(AliITSdigitSDD) +AliITSdigitSDD::AliITSdigitSDD():AliITSdigit(){ + // default constructor, zero coordinates and set array + // elements to clearly unphysical values. A value of 0 may + // be a valide track of hit number. - AliITSdigitSDD::AliITSdigitSDD() { - // default constructor - fSignal=fCoord1=fCoord2=0; - fTracks[0]=fTracks[1]=fTracks[2]=-3; - fHits[0]=fHits[1]=fHits[2]=-1; - fPhysics=0; fTcharges[0]=fTcharges[1]=fTcharges[2]=0; - } - - //________________________________________________________________________ -AliITSdigitSDD::AliITSdigitSDD(Float_t phys,Int_t *digits) { - // - // Creates a simulated SDD digit object to be updated - // - fCoord1 = digits[0]; - fCoord2 = digits[1]; - fSignal = digits[2]; - fPhysics = phys; + fTracks[0] = fTracks[1] = fTracks[2] = -3; + fHits[0] = fHits[1] = fHits[2] = -1; + fPhysics = 0; + fTcharges[0] = fTcharges[1] = fTcharges[2] = 0; } +//________________________________________________________________________ +AliITSdigitSDD::AliITSdigitSDD(Float_t phys,const Int_t *digits): + AliITSdigit(digits){ + // Creates a simulated SDD digit object to be updated + fPhysics = phys; +} //_____________________________________________________________________________ -AliITSdigitSDD::AliITSdigitSDD(Float_t phys,Int_t *digits,Int_t *tracks,Int_t *hits,Float_t *charges) { - // - // Creates a simulated SDD digit object - // - fCoord1 = digits[0]; - fCoord2 = digits[1]; - fSignal = digits[2]; - fPhysics = phys; - - for(Int_t i=0; i<3; i++) { - fTcharges[i] = charges[i]; - fTracks[i] = tracks[i]; - fHits[i] = hits[i]; - } +AliITSdigitSDD::AliITSdigitSDD(Float_t phys,const Int_t *digits, + const Int_t *tracks,const Int_t *hits, + const Float_t *charges): + AliITSdigit(digits){ + // Creates a simulated SDD digit object + + fPhysics = phys; + for(Int_t i=0; i<3; i++) { + fTcharges[i] = charges[i]; + fTracks[i] = tracks[i]; + fHits[i] = hits[i]; + } // end for i } +//______________________________________________________________________ +void AliITSdigitSDD::Print(ostream *os){ + //Standard output format for this class + AliITSdigit::Print(os); + *os <<","<< fPhysics; + *os <<","<< fTcharges[0] <<","<< fTcharges[1] <<","<< fTcharges[2]; + *os <<","<< fTracks[0] <<","<< fTracks[1] <<","<< fTracks[2]; + *os <<","<< fHits[0] <<","<< fHits[1] <<","<< fHits[2]; +} +//______________________________________________________________________ +void AliITSdigitSDD::Read(istream *os){ + //Standard input for this class + + AliITSdigit::Read(os); + *os >>fPhysics; + *os >> fTcharges[0] >> fTcharges[1] >> fTcharges[2]; + *os >> fTracks[0] >> fTracks[1] >> fTracks[2]; + *os >> fHits[0] >> fHits[1] >> fHits[2]; +} +//______________________________________________________________________ +ostream &operator<<(ostream &os,AliITSdigitSDD &source){ + // Standard output streaming function. + + source.Print(&os); + return os; +} +//______________________________________________________________________ +istream &operator>>(istream &os,AliITSdigitSDD &source){ + // Standard output streaming function. + source.Read(&os); + return os; +} +//______________________________________________________________________ ClassImp(AliITSTransientDigit) - //_______________________________________________________________________ -AliITSTransientDigit::AliITSTransientDigit(Float_t phys,Int_t *digits): +AliITSTransientDigit::AliITSTransientDigit(Float_t phys,const Int_t *digits): AliITSdigitSDD(phys,digits) { - // - // Creates a digit object in a list of digits to be updated - // - fTrackList = new TObjArray; -} + // Creates a digit object in a list of digits to be updated + fTrackList = new TObjArray; +} //__________________________________________________________________________ AliITSTransientDigit::AliITSTransientDigit(const AliITSTransientDigit &source){ - // Copy Constructor - if(&source == this) return; - this->fTrackList = source.fTrackList; - return; + // Copy Constructor + if(&source == this) return; + this->fTrackList = source.fTrackList; + return; } - //_________________________________________________________________________ -AliITSTransientDigit& - AliITSTransientDigit::operator=(const AliITSTransientDigit &source) { - // Assignment operator - if(&source == this) return *this; - this->fTrackList = source.fTrackList; - return *this; +AliITSTransientDigit& AliITSTransientDigit::operator=( + const AliITSTransientDigit &source) { + // Assignment operator + if(&source == this) return *this; + this->fTrackList = source.fTrackList; + return *this; } +//______________________________________________________________________ +void AliITSTransientDigit::Print(ostream *os){ + //Standard output format for this class -ClassImp(AliITSdigitSSD) + AliITSdigitSDD::Print(os); +} +//______________________________________________________________________ +void AliITSTransientDigit::Read(istream *os){ + //Standard input for this class - AliITSdigitSSD::AliITSdigitSSD() { - // default constructor - fSignal=fCoord1=fCoord2=0; - fTracks[0]=fTracks[1]=fTracks[2]=-3; - fHits[0]=fHits[1]=fHits[2]=-1; - } - - //__________________________________________________________________________ -AliITSdigitSSD::AliITSdigitSSD(Int_t *digits) { - // - // Creates a real SSD digit object - // - - fCoord1 = digits[0]; - fCoord2 = digits[1]; - fSignal = digits[2]; - + AliITSdigitSDD::Read(os); } +//______________________________________________________________________ +ostream &operator<<(ostream &os,AliITSTransientDigit &source){ + // Standard output streaming function. + source.Print(&os); + return os; +} +//______________________________________________________________________ +istream &operator>>(istream &os,AliITSTransientDigit &source){ + // Standard output streaming function. + + source.Read(&os); + return os; +} +//______________________________________________________________________ +ClassImp(AliITSdigitSSD) +AliITSdigitSSD::AliITSdigitSSD():AliITSdigit(){ + // default constructor + + fTracks[0] = fTracks[1] = fTracks[2] = -3; + fHits[0] = fHits[1] = fHits[2] = -1; +} +//__________________________________________________________________________ +AliITSdigitSSD::AliITSdigitSSD(const Int_t *digits):AliITSdigit(digits){ + // Creates a real SSD digit object +} //_____________________________________________________________________________ -AliITSdigitSSD::AliITSdigitSSD(Int_t *digits,Int_t *tracks,Int_t *hits) { - // - // Creates a simulated SSD digit object - // - - fCoord1 = digits[0]; - fCoord2 = digits[1]; - fSignal = digits[2]; - - for(Int_t i=0; i<3; i++) { - fTracks[i] = tracks[i]; - fHits[i] = hits[i]; - } +AliITSdigitSSD::AliITSdigitSSD(const Int_t *digits,const Int_t *tracks, + const Int_t *hits):AliITSdigit(digits){ + // Creates a simulated SSD digit object + + for(Int_t i=0; i<3; i++) { + fTracks[i] = tracks[i]; + fHits[i] = hits[i]; + } // end for i } +//______________________________________________________________________ +void AliITSdigitSSD::Print(ostream *os){ + //Standard output format for this class + AliITSdigit::Print(os); + *os <<","<< fTracks[0] <<","<< fTracks[1] <<","<< fTracks[2]; + *os <<","<< fHits[0] <<","<< fHits[1] <<","<< fHits[2]; +} +//______________________________________________________________________ +void AliITSdigitSSD::Read(istream *os){ + //Standard input for this class + + AliITSdigit::Read(os); + *os >> fTracks[0] >> fTracks[1] >> fTracks[2]; + *os >> fHits[0] >> fHits[1] >> fHits[2]; +} +//______________________________________________________________________ +ostream &operator<<(ostream &os,AliITSdigitSSD &source){ + // Standard output streaming function. + + source.Print(&os); + return os; +} +//______________________________________________________________________ +istream &operator>>(istream &os,AliITSdigitSSD &source){ + // Standard output streaming function. + + source.Read(&os); + return os; +} diff --git a/ITS/AliITSdigit.h b/ITS/AliITSdigit.h index f498dd3e34c..623ab0147ac 100644 --- a/ITS/AliITSdigit.h +++ b/ITS/AliITSdigit.h @@ -1,175 +1,219 @@ #ifndef ALIITSDIGIT_H #define ALIITSDIGIT_H - +/* Copyright(c) 1998-1999, 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 +#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 in ADC counts - -public: - AliITSdigit() { - // constructor - fSignal=fCoord1=fCoord2=0; - } - AliITSdigit(Int_t *digits); - virtual ~AliITSdigit() { - // destructor - } - - virtual int *GetTracks() {return 0;} - virtual Int_t *GetHits() {return 0;} - - ClassDef(AliITSdigit,1) // Real data digit object for set:ITS - }; - -//___________________________________________ + + 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 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 track number kept in the array element i of fTracks + virtual Int_t GetTrack(Int_t i) 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 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 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: + 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 + + 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); +//______________________________________________________________________ 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() { + + 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 - return &fTracks[0]; - } + 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 - virtual Int_t *GetHits(){ - // returns the pointer to the array of hits which made this digit - return &fHits[0]; - } - 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: - - // 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() { + + 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 - return &fTracks[0]; - } - - virtual Int_t *GetHits(){ + virtual int *GetTracks() {return &fTracks[0];} // returns the pointer to the array of hits which made this digit - return &fHits[0]; - } - - ClassDef(AliITSdigitSDD,1) // Simulated digit object for SDD - }; - -//_____________________________________________________________________________ - + 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: - 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 - }; -//___________________________________________ + 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: - - // 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; - } - - 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]; - } - virtual Int_t *GetHits(){ + 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 - return &fHits[0]; - } - - ClassDef(AliITSdigitSSD,1) // Simulated digit object for SSD - }; - + 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 -- 2.39.3