**************************************************************************/
#include <AliITSdigitSDD.h>
+#include <AliITSCalibrationSDD.h>
#include <TArrayI.h>
#include <TArrayF.h>
-#include <TMath.h>
///////////////////////////////////////////////////////////////////
// //
///////////////////////////////////////////////////////////////////
ClassImp(AliITSdigitSDD)
+
+
//______________________________________________________________________
-AliITSdigitSDD::AliITSdigitSDD():AliITSdigit(){
+AliITSdigitSDD::AliITSdigitSDD():AliITSdigit(),
+fPhysics(0),
+fSignalExpanded(0){
// default constructor, zero coordinates and set array
// elements to clearly unphysical values. A value of 0 may
// be a valide track of hit number.
Int_t i;
- for(i=0;i<fgkSsdd;i++) fTracks[i] = -3;
- for(i=0;i<fgkSsdd;i++) fHits[i] = -1;
- fPhysics = 0;
- for(i=0;i<fgkSsdd;i++) fTcharges[i] = 0;
+ for(i=0;i<fgkSize;i++) fTracks[i] = -3;
+ for(i=0;i<fgkSize;i++) fHits[i] = -1;
+ for(i=0;i<fgkSize;i++) fTcharges[i] = 0;
+ SetSignalExpanded(-1000);
+}
+//________________________________________________________________________
+AliITSdigitSDD::AliITSdigitSDD(Float_t phys,const Int_t *digits): AliITSdigit(digits),
+fPhysics(phys),
+fSignalExpanded(0){
+
+ // Creates a simulated SDD digit object to be updated
+ for(Int_t i=0;i<fgkSize;i++) fTracks[i] = -3;
+ for(Int_t i=0;i<fgkSize;i++) fHits[i] = -1;
+ for(Int_t i=0;i<fgkSize;i++) fTcharges[i] = 0;
+
+ SetSignalExpanded(-1000);
}
+
//________________________________________________________________________
-AliITSdigitSDD::AliITSdigitSDD(Float_t phys,const Int_t *digits):
- AliITSdigit(digits){
- // Creates a simulated SDD digit object to be updated
+void AliITSdigitSDD::InitObject(Float_t phys,const Int_t *tracks,
+ const Int_t *hits,const Float_t *charges){
- fPhysics = phys;
+ // Protected function used by standard constructors
+ fPhysics = phys;
+ for(Int_t i=0; i<fgkSize; 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<fgkSsdd; i++) {
- fTcharges[i] = charges[i];
- fTracks[i] = tracks[i];
- fHits[i] = hits[i];
- } // end for i
+ const Float_t *charges):AliITSdigit(digits),
+fPhysics(0),
+fSignalExpanded(0){
+
+// standard constructor
+ InitObject(phys,tracks,hits,charges);
+ SetSignalExpanded(-1000);
}
-//______________________________________________________________________
+//_____________________________________________________________________________
+AliITSdigitSDD::AliITSdigitSDD( Float_t phys,const Int_t *digits,
+ const Int_t *tracks,const Int_t *hits,const Float_t *charges, Int_t sige): AliITSdigit(digits),
+fPhysics(0),
+fSignalExpanded(0){
+
+ //constructor setting also fSignalExpanded
+ InitObject(phys,tracks,hits,charges);
+ SetSignalExpanded(sige);
+}
+
+//_____________________________________________________________________________
Int_t AliITSdigitSDD::GetListOfTracks(TArrayI &t,TArrayF &c){
+
// Fills the TArrayI t with the tracks found in fTracks removing
// duplicated tracks, summing up their charge, and ordering the tracks
// by the charge contributed to this digit. It will return
//
return n;
}
+
+
//______________________________________________________________________
void AliITSdigitSDD::Print(ostream *os){
- //Standard output format for this class
+
+
+ //Standard output format for this class
Int_t i;
AliITSdigit::Print(os);
*os <<","<< fPhysics;
- for(i=0; i<fgkSsdd; i++) *os <<","<< fTcharges[i];
- for(i=0; i<fgkSsdd; i++) *os <<","<< fTracks[i];
- for(i=0; i<fgkSsdd; i++) *os <<","<< fHits[i];
+ for(i=0; i<fgkSize; i++) *os <<","<< fTcharges[i];
+ for(i=0; i<fgkSize; i++) *os <<","<< fTracks[i];
+ for(i=0; i<fgkSize; i++) *os <<","<< fHits[i];
+ *os <<","<< fSignalExpanded;
}
//______________________________________________________________________
void AliITSdigitSDD::Read(istream *os){
- //Standard input for this class
- Int_t i;
+
+ //Standard input for this class
+ Int_t i;
AliITSdigit::Read(os);
*os >>fPhysics;
- for(i=0; i<fgkSsdd; i++) *os >> fTcharges[i];
- for(i=0; i<fgkSsdd; i++) *os >> fTracks[i];
- for(i=0; i<fgkSsdd; i++) *os >> fHits[i];
+ for(i=0; i<fgkSize; i++) *os >> fTcharges[i];
+ for(i=0; i<fgkSize; i++) *os >> fTracks[i];
+ for(i=0; i<fgkSize; i++) *os >> fHits[i];
+ *os >>fSignalExpanded;
}
//______________________________________________________________________
ostream &operator<<(ostream &os,AliITSdigitSDD &source){
- // Standard output streaming function.
+
+ // Standard output streaming function.
source.Print(&os);
return os;
}
//______________________________________________________________________
istream &operator>>(istream &os,AliITSdigitSDD &source){
- // Standard output streaming function.
+
+ // Standard output streaming function.
source.Read(&os);
return os;