From 0599a0181118f28fd7880579f5f35b89c921585d Mon Sep 17 00:00:00 2001 From: masera Date: Tue, 3 Apr 2007 08:57:24 +0000 Subject: [PATCH] Changes in SDD cluster finder for usage of calibration constants. Cleanup of AliITSdigitSXD classes. Diamond size changed in vertexer --- ITS/AliITSClusterFinderSDD.cxx | 53 +++++++++++++++++++++----------- ITS/AliITSClusterFinderV2SDD.cxx | 21 +++++++------ ITS/AliITSVertexer3D.h | 2 +- ITS/AliITSdigit.cxx | 6 ++++ ITS/AliITSdigit.h | 23 +++++++++----- ITS/AliITSdigitSDD.cxx | 27 ++++++++-------- ITS/AliITSdigitSDD.h | 29 ++--------------- ITS/AliITSdigitSPD.cxx | 18 +++++------ ITS/AliITSdigitSPD.h | 27 +--------------- ITS/AliITSdigitSSD.cxx | 14 ++++----- ITS/AliITSdigitSSD.h | 26 ++-------------- ITS/AliITSsimulationSDD.cxx | 7 ++--- ITS/AliITSsimulationSPD.cxx | 2 +- 13 files changed, 110 insertions(+), 145 deletions(-) diff --git a/ITS/AliITSClusterFinderSDD.cxx b/ITS/AliITSClusterFinderSDD.cxx index 3c825108f62..41115ba683c 100644 --- a/ITS/AliITSClusterFinderSDD.cxx +++ b/ITS/AliITSClusterFinderSDD.cxx @@ -81,13 +81,19 @@ void AliITSClusterFinderSDD::SetCutAmplitude(Int_t mod,Double_t nsigma){ // set the signal threshold for cluster finder Double_t baseline,noiseAfterEl; - + AliITSresponseSDD* res = (AliITSresponseSDD*)((AliITSCalibrationSDD*)GetResp(mod))->GetResponse(); + const char *option=res->ZeroSuppOption(); Int_t nanodes = GetResp(mod)->Wings()*GetResp(mod)->Channels()*GetResp(mod)->Chips(); fCutAmplitude.Set(nanodes); for(Int_t ian=0;ianGetBaseline(ian); noiseAfterEl = ((AliITSCalibrationSDD*)GetResp(mod))->GetNoiseAfterElectronics(ian); - fCutAmplitude[ian] = (Int_t)((baseline + nsigma*noiseAfterEl)); + if((strstr(option,"1D")) || (strstr(option,"2D"))){ + fCutAmplitude[ian] = (Int_t)(nsigma*noiseAfterEl); + } + else{ + baseline=GetResp(mod)->GetBaseline(ian); + fCutAmplitude[ian] = (Int_t)((baseline + nsigma*noiseAfterEl)); + } } } //______________________________________________________________________ @@ -103,6 +109,9 @@ void AliITSClusterFinderSDD::Find1DClusters(){ Double_t fSddLength = GetSeg()->Dx(); Double_t anodePitch = GetSeg()->Dpz(dummy); AliITSCalibrationSDD* cal = (AliITSCalibrationSDD*)GetResp(fModule); + AliITSresponseSDD* res = (AliITSresponseSDD*)((AliITSCalibrationSDD*)GetResp(fModule))->GetResponse(); + const char *option=res->ZeroSuppOption(); + // map the signal Map()->ClearMap(); Map()->SetThresholdArr(fCutAmplitude); @@ -184,13 +193,14 @@ void AliITSClusterFinderSDD::Find1DClusters(){ Int_t clusterMult = 0; Double_t clusterPeakAmplitude = 0.; Int_t its,peakpos = -1; - //Double_t n, baseline; - //GetResp(fModule)->GetNoiseParam(n,baseline); - Double_t baseline=GetResp(fModule)->GetBaseline(idx); + for(its=tstart; its<=tstop; its++) { fadc=(float)Map()->GetSignal(idx,its); - if(fadc>baseline) fadc -= baseline; - else fadc = 0.; + if(!((strstr(option,"1D")) || (strstr(option,"2D")))){ + Double_t baseline=GetResp(fModule)->GetBaseline(idx); + if(fadc>baseline) fadc -= baseline; + else fadc = 0.; + } clusterCharge += fadc; // as a matter of fact we should take the peak // pos before FFT @@ -256,12 +266,14 @@ void AliITSClusterFinderSDD::Find1DClustersE(){ Map()->SetThresholdArr( fCutAmplitude ); Map()->FillMap2(); + AliITSresponseSDD* res = (AliITSresponseSDD*)cal->GetResponse(); + const char *option=res->ZeroSuppOption(); + Int_t nClu = 0; // cout << "Search cluster... "<< endl; for( Int_t j=0; j<2; j++ ){ for( Int_t k=0; kGetBaseline(idx); + Int_t idx = j*fNofAnodes+k; Bool_t on = kFALSE; Int_t start = 0; Int_t nTsteps = 0; @@ -287,8 +299,11 @@ void AliITSClusterFinderSDD::Find1DClustersE(){ nTsteps = 0; } // end if on... nTsteps++ ; - if( fadc > baseline ) fadc -= baseline; - else fadc=0.; + if(!((strstr(option,"1D")) || (strstr(option,"2D")))){ + Double_t baseline=GetResp(fModule)->GetBaseline(idx); + if( fadc > baseline ) fadc -= baseline; + else fadc=0.; + } charge += fadc; time += fadc*l; if( fadc > fmax ){ @@ -693,10 +708,10 @@ void AliITSClusterFinderSDD::ResolveClusters(){ Double_t fTimeStep = GetSeg()->Dpx( dummy ); Double_t fSddLength = GetSeg()->Dx(); Double_t anodePitch = GetSeg()->Dpz( dummy ); - //Double_t n, baseline; - //GetResp(fModule)->GetNoiseParam( n, baseline ); Int_t electronics =GetResp(fModule)->GetElectronics(); // 1 = PASCAL, 2 = OLA AliITSCalibrationSDD* cal = (AliITSCalibrationSDD*)GetResp(fModule); + AliITSresponseSDD* res = (AliITSresponseSDD*)cal->GetResponse(); + const char *option=res->ZeroSuppOption(); for( Int_t j=0; jGetSignal( ianode, itime ); - Double_t baseline=GetResp(fModule)->GetBaseline(ianode); - if( fadc > baseline ) fadc -= (Double_t)baseline; - else fadc = 0.; + Double_t fadc = Map()->GetSignal( ianode, itime ); + if(!((strstr(option,"1D")) || (strstr(option,"2D")))){ + Double_t baseline=GetResp(fModule)->GetBaseline(ianode); + if( fadc > baseline ) fadc -= (Double_t)baseline; + else fadc = 0.; + } Int_t index = (itime-tstart+1)*zdim+(ianode-astart+1); sp[index] = fadc; } // time loop diff --git a/ITS/AliITSClusterFinderV2SDD.cxx b/ITS/AliITSClusterFinderV2SDD.cxx index 0fd1cf10a22..72f4827ffd9 100644 --- a/ITS/AliITSClusterFinderV2SDD.cxx +++ b/ITS/AliITSClusterFinderV2SDD.cxx @@ -25,7 +25,7 @@ #include "AliITSRecPoint.h" #include "AliITSDetTypeRec.h" #include "AliRawReader.h" -#include "AliITSRawStreamSDDv3.h" +#include "AliITSRawStreamSDD.h" #include "AliITSCalibrationSDD.h" #include "AliITSDetTypeRec.h" #include "AliITSsegmentationSDD.h" @@ -68,21 +68,22 @@ void AliITSClusterFinderV2SDD::FindClustersSDD(TClonesArray *digits) { bins[0]=new AliBin[kMAXBIN]; bins[1]=new AliBin[kMAXBIN]; AliITSCalibrationSDD* cal = (AliITSCalibrationSDD*)GetResp(fModule); - + AliITSresponseSDD* res = (AliITSresponseSDD*)cal->GetResponse(); + const char *option=res->ZeroSuppOption(); AliITSdigitSDD *d=0; Int_t i, ndigits=digits->GetEntriesFast(); for (i=0; iUncheckedAt(i); - Float_t baseline = cal->GetBaseline(d->GetCoord1()); - Int_t y=d->GetCoord2()+1; //y Int_t z=d->GetCoord1()+1; //z Int_t q=d->GetSignal(); - - if(q>baseline) q-=(Int_t)baseline; - else q=0; + if(!((strstr(option,"1D")) || (strstr(option,"2D")))){ + Float_t baseline = cal->GetBaseline(d->GetCoord1()); + if(q>baseline) q-=(Int_t)baseline; + else q=0; + } if(qGetThresholdAnode(d->GetCoord1())) continue; - + //if (q<3) continue; if (z <= fNzSDD) { @@ -241,7 +242,7 @@ FindClustersSDD(AliBin* bins[2], Int_t nMaxBin, Int_t nzBins, Float_t hit[5] = {y, z, 0.0030*0.0030, 0.0020*0.0020, q}; Int_t info[3] = {maxj-minj+1, maxi-mini+1, fNlayer[fModule]}; - //if (c.GetQ() < 20.) continue; //noise cluster + if (c.GetQ() < 20.) continue; //noise cluster if (digits) { // AliBin *b=&bins[s][idx[k]]; @@ -276,7 +277,7 @@ void AliITSClusterFinderV2SDD::RawdataToClusters(AliRawReader* rawReader,TClones // This function creates ITS clusters from raw data //------------------------------------------------------------ rawReader->Reset(); - AliITSRawStreamSDDv3 inputSDD(rawReader); + AliITSRawStreamSDD inputSDD(rawReader); FindClustersSDD(&inputSDD,clusters); } diff --git a/ITS/AliITSVertexer3D.h b/ITS/AliITSVertexer3D.h index 1ff98fdc134..8aa4b5c0e24 100644 --- a/ITS/AliITSVertexer3D.h +++ b/ITS/AliITSVertexer3D.h @@ -28,7 +28,7 @@ class AliITSVertexer3D : public AliITSVertexer { void SetCoarseDiffPhiCut(Float_t dphi = 0.5){fCoarseDiffPhiCut=dphi;} void SetCoarseMaxRCut(Float_t rad = 2.5){fCoarseMaxRCut=rad;} void SetMaxRCut(Float_t rad = 0.5){fMaxRCut=rad;} - void SetZCutDiamond(Float_t zcut = 5.3){fZCutDiamond=zcut;} + void SetZCutDiamond(Float_t zcut = 14.0){fZCutDiamond=zcut;} void SetMaxZCut(Float_t dz = 0.5){fMaxZCut=dz;} void SetDCAcut(Float_t dca=0.1){fDCAcut=dca;} void SetDiffPhiMax(Float_t pm = 0.01){fDiffPhiMax = pm;} diff --git a/ITS/AliITSdigit.cxx b/ITS/AliITSdigit.cxx index ce81fe6bef2..1689dc8367a 100644 --- a/ITS/AliITSdigit.cxx +++ b/ITS/AliITSdigit.cxx @@ -32,6 +32,9 @@ fCoord1(0), fCoord2(0), fSignal(0){ //default constructor. zero all values. + for(Int_t i=0;i>fPhysics; - for(i=0; i> fTcharges[i]; - for(i=0; i> fTracks[i]; - for(i=0; i> fHits[i]; + for(i=0; i> fTcharges[i]; + for(i=0; i> fTracks[i]; + for(i=0; i> fHits[i]; *os >>fSignalExpanded; } //______________________________________________________________________ diff --git a/ITS/AliITSdigitSDD.h b/ITS/AliITSdigitSDD.h index 62019ec778b..15e790c2b9c 100644 --- a/ITS/AliITSdigitSDD.h +++ b/ITS/AliITSdigitSDD.h @@ -28,31 +28,12 @@ class AliITSdigitSDD: public AliITSdigit { AliITSCalibrationSDD *resp); virtual ~AliITSdigitSDD(){/* destructor*/} // returns the array size used to store Tracks and Hits - static Int_t GetNTracks() {return fgkSsdd;} - // returns pointer to the array of tracks which make this digit - virtual Int_t *GetTracks() {return &fTracks[0];} - // returns the pointer to the array of hits which made this digit - virtual Int_t *GetHits() {return &fHits[0];} virtual Int_t GetSignal() const {return fSignalExpanded;} virtual Int_t GetCompressedSignal() const {return fSignal;} - // 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];} - // Return charge deposited by this track/hit + // Return charge deposited by this track/hit virtual Float_t GetCharge(Int_t i) const {return fTcharges[i];} // returns TArrayI of unduplicated track numbers (summed over hits). virtual Int_t GetListOfTracks(TArrayI &t,TArrayF &c); - //copy the array trks[fgkSsdd] into fTracks - virtual void SetTracks(const Int_t *trks){ - for(Int_t i=0;i> fTracks[i]; - for(i=0;i> fHits[i]; + for(i=0;i> fTracks[i]; + for(i=0;i> fHits[i]; *os >> fSignalSPD; } //______________________________________________________________________ diff --git a/ITS/AliITSdigitSPD.h b/ITS/AliITSdigitSPD.h index edf8df7e953..0262f07f39b 100644 --- a/ITS/AliITSdigitSPD.h +++ b/ITS/AliITSdigitSPD.h @@ -16,46 +16,21 @@ class AliITSdigitSPD: public AliITSdigit { //standard creator with digits, tracks, and hits AliITSdigitSPD(const Int_t *digits,const Int_t *tracks,const Int_t *hits); virtual ~AliITSdigitSPD(){/*destructor*/} - // returns the array size used to store Tracks and Hits - static Int_t GetNTracks() {return fgkSspd;} // returns the signal in electrons Int_t GetSignalSPD() const {return fSignalSPD;} - // returns pointer to the array of tracks which make this digit - virtual Int_t *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];} - // returns TArrayI of unduplicated track numbers (summed over hits). virtual Int_t GetListOfTracks(TArrayI &t); - //copy the array trks[fgkSspd] into fTracks - virtual void SetTracks(const Int_t *trks){ - for(Int_t i=0;i> fTracks[i]; - for(i=0; i> fHits[i]; + for(i=0; i> fTracks[i]; + for(i=0; i> fHits[i]; } //______________________________________________________________________ ostream &operator<<(ostream &os,AliITSdigitSSD &source){ diff --git a/ITS/AliITSdigitSSD.h b/ITS/AliITSdigitSSD.h index f6a3d5dbbd2..34831189c9b 100644 --- a/ITS/AliITSdigitSSD.h +++ b/ITS/AliITSdigitSSD.h @@ -19,31 +19,14 @@ class AliITSdigitSSD: public AliITSdigit { AliITSdigitSSD(const Int_t *digits,const Int_t *tracks,const Int_t *hits); virtual ~AliITSdigitSSD(){/* destructor */} // returns the array size used to store Tracks and Hits - static Int_t GetNTracks() {return fgkSssd;} + // static Int_t GetNTracks() {return fgkSssd;} 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 {if(fCoord1==0) return 1; else return 0; } - // returns pointer to the array of tracks which make this digit - virtual Int_t *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];} // returns TArrayI of unduplicated track numbers (summed over hits). virtual Int_t GetListOfTracks(TArrayI &t); - //copy the array trks[fgkSssd] into fTracks - virtual void SetTracks(const Int_t *trks){ - for(Int_t i=0;i #include #include - #include "AliITS.h" #include "AliITSMapA2.h" #include "AliITSRawData.h" @@ -804,7 +803,8 @@ void AliITSsimulationSDD::ListOfFiredCells(Int_t *arg,Double_t timeAmplitude, //____________________________________________ void AliITSsimulationSDD::AddDigit( Int_t i, Int_t j, Int_t signal ) { // Adds a Digit. - Int_t size = AliITSdigitSPD::GetNTracks(); + Int_t size = AliITSdigit::GetNTracks(); + Int_t digits[3]; Int_t * tracks = new Int_t[size]; Int_t * hits = new Int_t[size]; @@ -1090,7 +1090,6 @@ AliITSMap* AliITSsimulationSDD::HitMap(Int_t i){ //______________________________________________________________________ void AliITSsimulationSDD::ZeroSuppression(const char *option) { // perform the zero suppresion - if (strstr(option,"2D")) { //Init2D(); // activate if param change module by module Compress2D(); @@ -1410,7 +1409,7 @@ void AliITSsimulationSDD::StoreAllDigits(){ digits[1] = j; digits[2] = signal; fITS->AddRealDigit(1,digits); - } // end for j + } // end for j } // end for i } //______________________________________________________________________ diff --git a/ITS/AliITSsimulationSPD.cxx b/ITS/AliITSsimulationSPD.cxx index c99a00cbcc7..98a1d6a07bb 100644 --- a/ITS/AliITSsimulationSPD.cxx +++ b/ITS/AliITSsimulationSPD.cxx @@ -709,7 +709,7 @@ void AliITSsimulationSPD::FrompListToDigits(){ Int_t j,ix,iz; Double_t electronics; Double_t sig; - const Int_t knmaxtrk=AliITSdigitSPD::GetNTracks(); + const Int_t knmaxtrk=AliITSdigit::GetNTracks(); static AliITSdigitSPD dig; AliITSCalibrationSPD* res = (AliITSCalibrationSPD*)GetCalibrationModel(fDetType->GetITSgeom()->GetStartSPD()); if(GetDebug(1)) Info("FrompListToDigits","()"); -- 2.43.0