* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-#include <Riostream.h>
#include <TMath.h>
#include "AliLog.h"
#include "AliITSUSDigit.h"
for (i=1;i<fNTracks;i++) {
j = i;
while(j>0 && fSignal[j]>fSignal[j-1]) {
- swap(fTrack[j-1],fTrack[j]);
- swap(fHits[j-1] ,fHits[j]);
- swap(fSignal[j-1],fSignal[j]);
+ std::swap(fTrack[j-1],fTrack[j]);
+ std::swap(fHits[j-1] ,fHits[j]);
+ std::swap(fSignal[j-1],fSignal[j]);
j--;
} // end while
} // end if i
for (int i=GetNTracks();i--;) fTrack[i] += fileIndex;
}
-//______________________________________________________________________
-void AliITSUSDigit::Print(ostream *os) const
-{
- //Standard output format for this class
- Int_t i;
- //
- *os << fModule <<","<<GetUniqueID()<<","<<fNTracks<<",";
- for (i=0;i<fNTracks;i++) *os << fTrack[i] <<",";
- for (i=0;i<fNTracks;i++) *os << fHits[i] <<",";
- for (i=0;i<fNTracks;i++) *os << fSignal[i] <<",";
- *os << fTsignal <<","<< fNoise << "," << fSignalAfterElect;
-}
-
-//______________________________________________________________________
-void AliITSUSDigit::Read(istream *is)
-{
- // Standard output streaming function.
- Int_t i,iss;
- UInt_t ind;
- //
- *is >> fModule >> ind >> fNTracks;
- SetUniqueID(ind);
- *is >> iss; // read in fNTracks
- for(i=0;i<fNTracks&&i<iss;i++) *is >> fTrack[i];
- for(i=0;i<fNTracks&&i<iss;i++) *is >> fHits[i];
- for(i=0;i<fNTracks&&i<iss;i++) *is >> fSignal[i];
- *is >> fTsignal >> fNoise >> fSignalAfterElect;
-}
-
-//______________________________________________________________________
-ostream &operator<<(ostream &os,AliITSUSDigit &source)
-{
- // Standard output streaming function.
- source.Print(&os);
- return os;
-}
-
-//______________________________________________________________________
-istream &operator>>(istream &os,AliITSUSDigit &source)
-{
- // Standard output streaming function.
- source.Read(&os);
- return os;
-}
-
//______________________________________________________________________
Int_t AliITSUSDigit::Compare(const TObject* obj) const
{
void Add(const AliITSUSDigit *pl);
void AddTo(Int_t fileIndex, const AliITSUSDigit *pl);
void ShiftIndices(Int_t fileIndex);
- void Print(ostream *os) const;
- void Read(istream *is);
void Print(Option_t *option="") const;
Int_t Read(const char *name) {return TObject::Read(name);}
//
ClassDef(AliITSUSDigit,1) // Item list of signals and track numbers
};
-// Input and output functions for standard C++ input/output.
-ostream & operator<<(ostream &os,AliITSUSDigit &source);
-istream & operator>>(istream &is,AliITSUSDigit &source);
#endif
* provided "as is" without express or implied warranty. *
**************************************************************************/
-#include <Riostream.h>
#include <TGeoGlobalMagField.h>
#include <TH1.h>
#include <TString.h>
if (!(fSeg->LocalToDet(x,z,ix,iz))) continue; // outside
el = dt * de / fSimuParam->GetGeVToCharge();
//
- if (GetDebug(1)) if (el<=0.0) cout<<"el="<<el<<" dt="<<dt<<" de="<<de<<endl; // end if GetDebug
- //
sig = fSimuParam->SigmaDiffusion1D(TMath::Abs(thick + y));
sigx=sig;
sigz=sig*fda;
sigz=sig*fda;
if (fSimuParam->GetPixLorentzDrift()) ld=(y+thick)*fTanLorAng;
SpreadChargeAsym(x,z,ix,iz,el,sigx,sigz,ld,idtrack,h);
- // cout << "sigx sigz " << sigx << " " << sigz << endl; // dom
} // end for i // End Integrate over t
else { // st == 0.0 deposit it at this point
x = x0;
z2 -= z0; // Distance from where track traveled
s = el*0.25; // Correction based on definision of Erfc
s *= AliMathBase::ErfcFast(sp*x1) - AliMathBase::ErfcFast(sp*x2);
- if (GetDebug(3)) {
- cout <<"el="<<el<<" ix0="<<ix0<<" ix="<<ix<<" x0="<<x<<
- " iz0="<<iz0<<" iz="<<iz<<" z0="<<z<<
- " sp*x1="<<sp*x1<<" sp*x2="<<sp*x2<<" s="<<s;
- } // end if GetDebug
s *= AliMathBase::ErfcFast(sp*z1) - AliMathBase::ErfcFast(sp*z2);
- if (GetDebug(3)) cout<<" sp*z1="<<sp*z1<<" sp*z2="<<sp*z2<<" s="<<s<< endl; // end if GetDebug
if (s>fSimuParam->GetPixMinElToAdd()) UpdateMapSignal(iz,ix,t,hi,s);
} // end for ix, iz
//
x0,z0,ix0,iz0,el,sigx,sigz,t,hi,ld));
if (sigx<=0.0 || sigz<=0.0) { // if sig<=0 No diffusion to simulate.
UpdateMapSignal(iz0,ix0,t,hi,el);
- if (GetDebug(2)) {
- cout << "sigx<=0.0=" << sigx << endl;
- cout << "sigz<=0.0=" << sigz << endl;
- } // end if GetDebug
return;
} // end if
spx = 1.0/(sigx*kRoot2);
spz = 1.0/(sigz*kRoot2);
- if (GetDebug(2)) {
- cout << "sigx=" << sigx << " spx=" << spx << endl;
- cout << "sigz=" << sigz << " spz=" << spz << endl;
- } // end if GetDebug
ixs = TMath::Max(-knx+ix0,0);
ixe = TMath::Min(knx+ix0,fSeg->Npx()-1);
izs = TMath::Max(-knz+iz0,0);
z2 -= z0; // Distance from where track traveled
s = el*0.25; // Correction based on definision of Erfc
s *= AliMathBase::ErfcFast(spx*x1) - AliMathBase::ErfcFast(spx*x2);
- if (GetDebug(3)) cout <<"el="<<el<<" ix0="<<ix0<<" ix="<<ix<<" x0="<<x<<" iz0="<<iz0<<" iz="<<iz<<" z0="<<z<<" spx*x1="<<spx*x1<<" spx*x2="<<spx*x2<<" s="<<s; // end if GetDebug
s *= AliMathBase::ErfcFast(spz*z1) - AliMathBase::ErfcFast(spz*z2);
- if (GetDebug(3)) cout<<" spz*z1="<<spz*z1<<" spz*z2="<<spz*z2<<" s="<<s<< endl; // end if GetDebug
if (s>fSimuParam->GetPixMinElToAdd()) UpdateMapSignal(iz,ix,t,hi,s);
} // end for ix, iz
//