X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSetfSDD.cxx;h=2daca2aeae6f82121706fc4f9090c24c48e08d60;hb=276815b7d5d95cdb9b5908d0da9515733d500a0e;hp=a9bca0fe19b89a7aa37555065aacba854ff51269;hpb=b9d0a01d7a0723a09071b0b56200d72f59a9c2b6;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSetfSDD.cxx b/ITS/AliITSetfSDD.cxx index a9bca0fe19b..2daca2aeae6 100644 --- a/ITS/AliITSetfSDD.cxx +++ b/ITS/AliITSetfSDD.cxx @@ -12,51 +12,95 @@ * about the suitability of this software for any purpose. It is * * provided "as is" without express or implied warranty. * **************************************************************************/ - -/* -$Log$ -Revision 1.6.6.1 2002/06/10 17:51:15 hristov -Merged with v3-08-02 - -Revision 1.7 2002/04/24 22:02:31 nilsen -New SDigits and Digits routines, and related changes, (including new -noise values). - -*/ -#include + +/* $Id$ */ + + +#include #include -#include #include "AliITSetfSDD.h" //////////////////////////////////////////////////////////////////////// // Version: 0 // Written by Piergiorgio Cerello // November 23 1999 -// +// Revised to comply with coding conventions: Nov, 21 2003 m.m. //_____________________________________________________________________________ ClassImp(AliITSetfSDD) +const Int_t AliITSetfSDD::AliITSetfSDDparam::fgkMaxNofPoles = 5; +const Int_t AliITSetfSDD::AliITSetfSDDparam::fgkMaxNofSamples = 1024; + Int_t ppower(Int_t b, Int_t e) { Int_t power = 1; for(Int_t i=0; i= PI) VA -= (2.*PI); - if(VA <= -PI) VA += (2.*PI); - //cout << "VM: " << VM << ", VA: " << VA << endl; + vVM *= vVZM; + vVA += vVZA; + if(vVA >= pigr) vVA -= (2.*pigr); + if(vVA <= -pigr) vVA += (2.*pigr); + //cout << "vVM: " << vVM << ", VA: " << vVA << endl; } } if(fPoleM[k]) { - Double_t VPR = -fPoleR[k]; - Double_t VPI = frequency - fPoleI[k]; - Double_t VPM = TMath::Sqrt(VPR*VPR+VPI*VPI); - Double_t VPA = TMath::ATan2(VPI,VPR); - //cout << "VPM: " << VPM << ", VPA: " << VPA << endl; - //cout << "VPR: " << VPR << ", VPI: " << VPI << endl; + Double_t vVPR = -fPoleR[k]; + Double_t vVPI = frequency - fPoleI[k]; + Double_t vVPM = TMath::Sqrt(vVPR*vVPR+vVPI*vVPI); + Double_t vVPA = TMath::ATan2(vVPI,vVPR); + //cout << "VPM: " << vVPM << ", VPA: " << vVPA << endl; + //cout << "VPR: " << vVPR << ", VPI: " << vVPI << endl; for(j=1; j<= (Int_t) fPoleM[k]; j++) { - VM /= VPM; - VA -= VPA; - if(VA >= PI) VA -= (2.*PI); - if(VA <= -PI) VA += (2.*PI); - //cout << "VM: " << VM << ", VA: " << VA << endl; + vVM /= vVPM; + vVA -= vVPA; + if(vVA >= pigr) vVA -= (2.*pigr); + if(vVA <= -pigr) vVA += (2.*pigr); + //cout << "VM: " << vVM << ", vVA: " << vVA << endl; } } - Double_t VR = VM*cos(VA); - Double_t VI = VM*sin(VA); - //cout << "VM: " << VM << ", VA: " << VA << endl; - //cout << "VR: " << VR << ", VI: " << VI << endl; - fTfR[i] = VR*ppower(10,9); - fTfI[i] = VI*ppower(10,9); + Double_t vVR = vVM*cos(vVA); + Double_t vVI = vVM*sin(vVA); + //cout << "VM: " << vVM << ", VA: " << vVA << endl; + //cout << "VR: " << vVR << ", VI: " << vVI << endl; + fTfR[i] = vVR*ppower(10,9); + fTfI[i] = vVI*ppower(10,9); //cout << "fTfR[" << i << "] = " << fTfR[i] << endl; //cout << "fTfI[" << i << "] = " << fTfI[i] << endl; if(i) { - fTfR[kMaxNofSamples-i] = fTfR[i]; - fTfI[kMaxNofSamples-i] = -fTfI[i]; + fTfR[AliITSetfSDDparam::NumberOfSamples()-i] = fTfR[i]; + fTfI[AliITSetfSDDparam::NumberOfSamples()-i] = -fTfI[i]; } } } // Compute Fourier Weights - for(i=0; i<=kMaxNofSamples/2; i++) { - fWR[i] = cos(-2.*PI*i/kMaxNofSamples); - fWI[i] = sin(-2.*PI*i/kMaxNofSamples); + for(i=0; i<=AliITSetfSDDparam::NumberOfSamples()/2; i++) { + fWR[i] = cos(-2.*pigr*i/AliITSetfSDDparam::NumberOfSamples()); + fWI[i] = sin(-2.*pigr*i/AliITSetfSDDparam::NumberOfSamples()); if(i) { - fWR[kMaxNofSamples-i] = fWR[i]; - fWI[kMaxNofSamples-i] = -fWI[i]; + fWR[AliITSetfSDDparam::NumberOfSamples()-i] = fWR[i]; + fWI[AliITSetfSDDparam::NumberOfSamples()-i] = -fWI[i]; } } } -void AliITSetfSDD::PrintElectronics() -{ + +AliITSetfSDD::~AliITSetfSDD(){ + // Destructor + if(fZeroM) delete []fZeroM; + if(fZeroR) delete []fZeroR; + if(fZeroI) delete []fZeroI; + if(fPoleM) delete []fPoleM; + if(fPoleR) delete []fPoleR; + if(fPoleI) delete []fPoleI; + if(fTfR) delete []fTfR; + if(fTfI) delete []fTfI; + if(fWR) delete []fWR; + if(fWI) delete []fWI; +} + +void AliITSetfSDD::PrintElectronics() const { + // Printout of the parameters defining the f.e. electronics + cout << "Time Delay " << fTimeDelay << endl; cout << "Sampling Time " << fSamplingTime << endl; - cout << "Number of Time Samples " << kMaxNofSamples << endl; + cout << "Number of Time Samples " << AliITSetfSDDparam::NumberOfSamples() << endl; cout << "fT0 " << fT0 << endl; cout << "fDf " << fDf << endl; cout << "fA0 " << fA0 << endl; @@ -174,29 +234,29 @@ void AliITSetfSDD::PrintElectronics() cout << "Zero's and Pole's" << endl; cout << "fZeroM " << endl; Int_t i; - for(i=0; i