From cab0142ffa907f1e9b6141dc3bd65b257ae008f3 Mon Sep 17 00:00:00 2001 From: nilsen Date: Wed, 24 Apr 2002 22:00:38 +0000 Subject: [PATCH] Added functions needed for SDD new SDigits/Digits (Add and fSigmaAfterElect). --- ITS/AliITSpList.cxx | 85 ++++++++++++++++++++++++++++++++++++--------- ITS/AliITSpList.h | 9 ++++- 2 files changed, 76 insertions(+), 18 deletions(-) diff --git a/ITS/AliITSpList.cxx b/ITS/AliITSpList.cxx index 3059669be3b..ace7ecf5e4f 100644 --- a/ITS/AliITSpList.cxx +++ b/ITS/AliITSpList.cxx @@ -88,10 +88,12 @@ void AliITSpList::ClearMap(){ // A zeroed AliITSpList class. fa->Delete(); -// for(Int_t i=0;iAt(i)!=0){ -// delete fa->At(i); -// fa->AddAt(0,i); // zero content -// } // end for i && if + /* + for(Int_t i=0;iAt(i)!=0){ + delete fa->At(i); + fa->AddAt(0,i); // zero content + } // end for i && if + */ fEnteries = 0; } //______________________________________________________________________ @@ -168,7 +170,7 @@ void AliITSpList::AddItemTo(Int_t fileIndex, AliITSpListItem *pl) { fa->AddAt(new AliITSpListItem(-2,-1,pl->GetModule(),index,0.0),index); } // end if - ((AliITSpListItem*)(fa->At(index)))->AddTo(fileIndex,pl); + ((AliITSpListItem*)(fa->At(index)))->AddTo( fileIndex,pl); if(index>=fEnteries) fEnteries = index +1; } //______________________________________________________________________ @@ -190,7 +192,7 @@ void AliITSpList::AddSignal(Int_t i,Int_t j,Int_t trk,Int_t ht,Int_t mod, Int_t index = GetIndex(i,j); if(GetpListItem(index)==0){ // most create AliITSpListItem - fa->AddAt(new AliITSpListItem(trk,ht,mod,GetIndex(i,j),signal),index); + fa->AddAt(new AliITSpListItem(trk,ht,mod,index,signal),index); }else{ // AliITSpListItem exists, just add signal to it. GetpListItem(index)->AddSignal(trk,ht,mod,index,signal); } // end if @@ -239,6 +241,7 @@ AliITSpListItem::AliITSpListItem(){ } // end if i fTsignal = 0.0; fNoise = 0.0; + fSignalAfterElect = 0.0; } //______________________________________________________________________ AliITSpListItem::AliITSpListItem(Int_t module,Int_t index,Double_t noise){ @@ -260,6 +263,7 @@ AliITSpListItem::AliITSpListItem(Int_t module,Int_t index,Double_t noise){ this->fHits[i] = -1; } // end if i this->fTsignal = 0.0; + this->fSignalAfterElect = 0.0; this->fNoise = noise; } //______________________________________________________________________ @@ -289,6 +293,7 @@ AliITSpListItem::AliITSpListItem(Int_t track,Int_t hit,Int_t module, } // end if i this->fTsignal = signal; this->fNoise = 0.0; + this->fSignalAfterElect = 0.0; } //______________________________________________________________________ AliITSpListItem::~AliITSpListItem(){ @@ -332,6 +337,7 @@ AliITSpListItem& AliITSpListItem::operator=(const AliITSpListItem &source){ } // end if i this->fTsignal = source.fTsignal; this->fNoise = source.fNoise; + this->fSignalAfterElect = source.fSignalAfterElect; return *this; } @@ -369,7 +375,8 @@ void AliITSpListItem::AddSignal(Int_t track,Int_t hit,Int_t module, Warning("AddSignal","index=%d != findex=%d or module=%d != fmodule=%d", index,findex,module,fmodule); fTsignal += signal; // Keep track of sum signal. - for(i=0;iGetNsignals();i++){ + sig = pl->GetSignal(i); + if( sig <= 0.0 ) break; // no more signals + AddSignal(pl->GetTrack(i),pl->GetHit(i),fmodule,findex,sig); + sigT += sig; + } // end for i + fTsignal += (pl->fTsignal - sigT); + fNoise += pl->fNoise; + return; +} +//______________________________________________________________________ void AliITSpListItem::AddTo(Int_t fileIndex,AliITSpListItem *pl){ // Adds the contents of pl to this with track number off set given by // fileIndex. @@ -442,16 +490,19 @@ void AliITSpListItem::AddTo(Int_t fileIndex,AliITSpListItem *pl){ // Return: // none. Int_t i,trk; - Double_t sig=0.0; + Double_t sig = 0.0; + Int_t module = pl->GetModule(); + Int_t index = pl->GetIndex(); for(i=0;iGetNsignals();i++){ + sig = pl->GetSignal(i); + if( sig <= 0.0 ) break; // no more signals trk = pl->GetTrack(i); - trk += fileIndex; - this->AddSignal(trk,pl->GetHit(i),pl->GetModule(), - pl->GetIndex(),pl->GetSignal(i)); - sig += pl->GetSignal(i); + trk += fileIndex; + AddSignal(trk,pl->GetHit(i),module,index,sig); } // end for i - this->fNoise += pl->fNoise; + fSignalAfterElect += (pl->fSignalAfterElect + pl->fNoise - fNoise); + fNoise = pl->fNoise; return; } //______________________________________________________________________ @@ -465,7 +516,7 @@ Int_t AliITSpListItem::ShiftIndex(Int_t in,Int_t trk){ // Return: // Int_t The track number with the file number in the upper bits. Int_t si = sizeof(Int_t) * 8; - UInt_t uin,utrk; // use UInt_t to avoid integer overflow-> goes negative. + UInt_t uin,utrk; // use UInt_t to avoid interger overflow-> goes negative. uin = in; utrk = trk; @@ -490,7 +541,7 @@ void AliITSpListItem::Print(ostream *os){ for(i=0;i> fTrack[i]; for(i=0;i> fHits[i]; for(i=0;i> fSignal[i]; - *is >> fTsignal >> fNoise; + *is >> fTsignal >> fNoise >> fSignalAfterElect; } //______________________________________________________________________ ostream &operator<<(ostream &os,AliITSpListItem &source){ diff --git a/ITS/AliITSpList.h b/ITS/AliITSpList.h index 76dcece8d09..fbf54b19b73 100644 --- a/ITS/AliITSpList.h +++ b/ITS/AliITSpList.h @@ -27,6 +27,8 @@ class AliITSpListItem: public TObject { return ( (i>=0&&i