From 43217ad9a18ccc91c58bf98b02c3f09bc7dcb7c6 Mon Sep 17 00:00:00 2001 From: nilsen Date: Fri, 7 Jun 2002 16:32:28 +0000 Subject: [PATCH] Latest SDD changes to speed up the SDD simulation code. --- ITS/AliITSsimulationSDD.cxx | 25 ++++++++++++++++++++----- ITS/AliITSsimulationSDD.h | 1 + 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/ITS/AliITSsimulationSDD.cxx b/ITS/AliITSsimulationSDD.cxx index e3a3e752e14..ec00dc2cb98 100644 --- a/ITS/AliITSsimulationSDD.cxx +++ b/ITS/AliITSsimulationSDD.cxx @@ -15,6 +15,10 @@ /* $Id$ $Log$ + Revision 1.33 2002/04/24 22:02:31 nilsen + New SDigits and Digits routines, and related changes, (including new + noise values). + */ #include @@ -158,6 +162,7 @@ AliITSsimulationSDD::AliITSsimulationSDD(){ fMaxNofSamples = 0; fITS = 0; fTreeB = 0; + fAnodeFire = 0; SetScaleFourier(); SetPerpendTracksFlag(); SetCrosstalkFlag(); @@ -228,7 +233,8 @@ void AliITSsimulationSDD::Init(AliITSsegmentationSDD *seg, fNofMaps = fSegmentation->Npz(); fMaxNofSamples = fSegmentation->Npx(); - + fAnodeFire = new Bool_t [fNofMaps]; + Float_t sddLength = fSegmentation->Dx(); Float_t sddWidth = fSegmentation->Dz(); @@ -322,6 +328,7 @@ AliITSsimulationSDD::~AliITSsimulationSDD() { if(fInZI) delete [] fInZI; if(fOutZR) delete [] fOutZR; if(fOutZI) delete [] fOutZI; + if(fAnodeFire) delete [] fAnodeFire; } //______________________________________________________________________ void AliITSsimulationSDD::InitSimulationModule( Int_t module, Int_t event ) { @@ -329,6 +336,7 @@ void AliITSsimulationSDD::InitSimulationModule( Int_t module, Int_t event ) { fModule = module; fEvent = event; ClearMaps(); + memset(fAnodeFire,0,sizeof(Bool_t)*fNofMaps); } //______________________________________________________________________ void AliITSsimulationSDD::ClearMaps() { @@ -360,7 +368,7 @@ Bool_t AliITSsimulationSDD::AddSDigitsToModule( TClonesArray *pItemArray, Int_t // Add Summable digits to module maps. Int_t nItems = pItemArray->GetEntries(); Double_t maxadc = fResponse->MaxAdc(); - Bool_t sig = kFALSE; + //Bool_t sig = kFALSE; // cout << "Adding "<< nItems <<" SDigits to module " << fModule << endl; for( Int_t i=0; iGetModule(), fModule ); - return sig; + return kFALSE; } // end if - if(pItem->GetSignal()>0.0 ) sig = kTRUE; + // if(pItem->GetSignal()>0.0 ) sig = kTRUE; + fpList->AddItemTo( mask, pItem ); // Add SignalAfterElect + noise AliITSpListItem * pItem2 = fpList->GetpListItem( pItem->GetIndex() ); Double_t sigAE = pItem2->GetSignalAfterElect(); @@ -381,8 +390,9 @@ Bool_t AliITSsimulationSDD::AddSDigitsToModule( TClonesArray *pItemArray, Int_t Int_t it; fpList->GetMapIndex( pItem->GetIndex(), ia, it ); fHitMap2->SetHit( ia, it, sigAE ); + fAnodeFire[ia] = kTRUE; } - return sig; + return kTRUE; } //______________________________________________________________________ void AliITSsimulationSDD::FinishSDigitiseModule() { @@ -689,6 +699,7 @@ void AliITSsimulationSDD::HitsToAnalogDigits( AliITSmodule *mod ) { fHitMap2->SetHit(index, it-1, charge); fpList->AddSignal(index,it-1,itrack,ii-1, mod->GetIndex(),timeAmplitude); + fAnodeFire[index] = kTRUE; } // end if anodeAmplitude and loop over time in window } // loop over anodes in window } // end loop over "sub-hits" @@ -970,6 +981,7 @@ void AliITSsimulationSDD::ChargeToSignal(Bool_t bAddNoise) { Float_t maxadc = fResponse->MaxAdc(); if(!fDoFFT) { for (i=0;iGetSignal(i,k); @@ -998,6 +1010,7 @@ void AliITSsimulationSDD::ChargeToSignal(Bool_t bAddNoise) { } // end if DoFFT for (i=0;iGetSignal(i,k); @@ -1503,6 +1516,7 @@ void AliITSsimulationSDD::Compress1D(){ for (i=0; iGetSignal(idx,j)); @@ -1720,6 +1734,7 @@ void AliITSsimulationSDD::WriteSDigits(){ static AliITS *aliITS = (AliITS*)gAlice->GetModule("ITS"); for( Int_t i=0; iGetSignal( i, j ); if( sig > 0.2 ) { diff --git a/ITS/AliITSsimulationSDD.h b/ITS/AliITSsimulationSDD.h index 91d4fd98f39..a1f5cf99ef8 100644 --- a/ITS/AliITSsimulationSDD.h +++ b/ITS/AliITSsimulationSDD.h @@ -164,6 +164,7 @@ class AliITSsimulationSDD : public AliITSsimulation { // output of the real part of FFT Double_t *fOutZI; //! [fScaleSize*fMaxNofSamples] // output of the imaginary part of FFT + Bool_t *fAnodeFire; //! [#of anodes] Flag if there is a signal TObjArray *fHis; // just in case for histogramming TArrayI fD; // decrease values for baseline eq. -- 2.39.3