X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSsimulationSPD.cxx;h=ac65a13e6345d7eded82390dbd4553d5ab3e9b6e;hb=9618bdc71f5513c7ebd235a625c31b4ed069d1b5;hp=076f11b2b43227cb33022fd98ce8e193b06022d0;hpb=bb7e41dd0fb45f7ceec957f714e81112c6b25948;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSsimulationSPD.cxx b/ITS/AliITSsimulationSPD.cxx index 076f11b2b43..ac65a13e634 100644 --- a/ITS/AliITSsimulationSPD.cxx +++ b/ITS/AliITSsimulationSPD.cxx @@ -36,6 +36,8 @@ $Id$ //#define DEBUG +using std::endl; +using std::cout; ClassImp(AliITSsimulationSPD) //////////////////////////////////////////////////////////////////////// // Version: 1 @@ -128,8 +130,8 @@ void AliITSsimulationSPD::Init(){ } else { fCoupling=1; } // end if - //SetLorentzDrift(kTRUE); - if (fLorentz) SetTanLorAngle(); + SetLorentzDrift(simpar->GetSPDLorentzDrift()); + if (fLorentz) SetTanLorAngle(simpar->GetSPDLorentzHoleWeight()); //SetStrobeGeneration(kFALSE); if (fStrobe) GenerateStrobePhase(); } @@ -155,13 +157,11 @@ Bool_t AliITSsimulationSPD::SetTanLorAngle(Double_t WeightHole) { } Double_t WeightEle=1.-WeightHole; AliITSSimuParam* simpar = fDetType->GetSimuParam(); - Double_t pos[3]={0.,0.,0.}; - Double_t B[3]={0.,0.,0.}; - TGeoGlobalMagField::Instance()->Field(pos,B); - fTanLorAng = TMath::Tan(WeightHole*simpar->LorentzAngleHole(B[2]) + - WeightEle*simpar->LorentzAngleElectron(B[2])); - fTanLorAng*=-1.; // this only for the old geometry - // comment the upper line for the new geometry + AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField(); + if (!fld) AliFatal("The field is not initialized"); + Double_t bz = fld->SolenoidField(); + fTanLorAng = TMath::Tan(WeightHole*simpar->LorentzAngleHole(bz) + + WeightEle*simpar->LorentzAngleElectron(bz)); return kTRUE; } //______________________________________________________________________ @@ -449,7 +449,7 @@ void AliITSsimulationSPD::HitToSDigit(AliITSmodule *mod){ if(GetMap()->GetpListItem(i)==0) continue; else{ GetMap()->GetMapIndex(GetMap()->GetpListItem(i)->GetIndex(),iz,ix); - SetCoupling(iz,ix,idtrack,h); + SetCoupling(iz,ix); } // end for i break; case 2: // case 4: @@ -457,7 +457,7 @@ void AliITSsimulationSPD::HitToSDigit(AliITSmodule *mod){ if(GetMap()->GetpListItem(i)==0) continue; else{ GetMap()->GetMapIndex(GetMap()->GetpListItem(i)->GetIndex(),iz,ix); - SetCouplingOld(iz,ix,idtrack,h); + SetCouplingOld(iz,ix); } // end for i break; } // end switch @@ -550,7 +550,7 @@ void AliITSsimulationSPD::HitToSDigitFast(AliITSmodule *mod){ if(GetMap()->GetpListItem(i)==0) continue; else{ GetMap()->GetMapIndex(GetMap()->GetpListItem(i)->GetIndex(),iz,ix); - SetCoupling(iz,ix,idtrack,h); + SetCoupling(iz,ix); } // end for i break; case 2: // case 4: @@ -558,7 +558,7 @@ void AliITSsimulationSPD::HitToSDigitFast(AliITSmodule *mod){ if(GetMap()->GetpListItem(i)==0) continue; else{ GetMap()->GetMapIndex(GetMap()->GetpListItem(i)->GetIndex(),iz,ix); - SetCouplingOld(iz,ix,idtrack,h); + SetCouplingOld(iz,ix); } // end for i break; } // end switch @@ -677,7 +677,7 @@ void AliITSsimulationSPD::SpreadChargeAsym(Double_t x0,Double_t z0, if(GetDebug(4)) Info("SpreadChargeAsym","(x0=%e,z0=%e,ix0=%d,iz0=%d,el=%e," - "sig=%e,t=%d,i=%d)",x0,z0,ix0,iz0,el,sigx,sigz,t,hi); + "sigx=%e, sigz=%e, t=%d,i=%d)",x0,z0,ix0,iz0,el,sigx,sigz,t,hi); if(sigx<=0.0 || sigz<=0.0) { // if sig<=0 No diffusion to simulate. GetMap()->AddSignal(iz0,ix0,t,hi,GetModuleNumber(),el); if(GetDebug(2)){ @@ -840,7 +840,7 @@ void AliITSsimulationSPD::CreateHistograms(){ fSPDname="spd_"; for(Int_t i=0;iAddAt(new TH1F(fSPDname.Data(),"SPD maps", GetNPixelsX(),0.,(Double_t)GetNPixelsX()),i); @@ -878,8 +878,7 @@ void AliITSsimulationSPD::ResetHistograms(){ } //______________________________________________________________________ -void AliITSsimulationSPD::SetCoupling(Int_t col, Int_t row, Int_t ntrack, - Int_t idhit) { +void AliITSsimulationSPD::SetCoupling(Int_t col, Int_t row) { // Take into account the coupling between adiacent pixels. // The parameters probcol and probrow are the probability of the // signal in one pixel shared in the two adjacent pixels along @@ -900,8 +899,6 @@ void AliITSsimulationSPD::SetCoupling(Int_t col, Int_t row, Int_t ntrack, // Inputs: // Int_t col z cell index // Int_t row x cell index - // Int_t ntrack track incex number - // Int_t idhit hit index number // Outputs: // none. // Return: @@ -912,9 +909,9 @@ void AliITSsimulationSPD::SetCoupling(Int_t col, Int_t row, Int_t ntrack, Double_t xr=0.; GetCouplings(couplC,couplR); - if(GetDebug(3)) Info("SetCoupling","(col=%d,row=%d,ntrack=%d,idhit=%d) " + if(GetDebug(3)) Info("SetCoupling","(col=%d,row=%d) " "Calling SetCoupling couplC=%e couplR=%e", - col,row,ntrack,idhit,couplC,couplR); + col,row,couplC,couplR); j1 = col; j2 = row; pulse1 = GetMap()->GetSignalOnly(col,row); @@ -927,7 +924,7 @@ void AliITSsimulationSPD::SetCoupling(Int_t col, Int_t row, Int_t ntrack, j1 = col; flag = 1; }else{ - UpdateMapSignal(row,j1,ntrack,idhit,pulse1); + UpdateMapNoise(row,j1,pulse1); // flag = 0; flag = 1; // only first next!! } // end if @@ -940,7 +937,7 @@ void AliITSsimulationSPD::SetCoupling(Int_t col, Int_t row, Int_t ntrack, j2 = row; flag = 1; }else{ - UpdateMapSignal(j2,col,ntrack,idhit,pulse2); + UpdateMapNoise(j2,col,pulse2); // flag = 0; flag = 1; // only first next!! } // end if @@ -948,8 +945,7 @@ void AliITSsimulationSPD::SetCoupling(Int_t col, Int_t row, Int_t ntrack, } // for isign } //______________________________________________________________________ -void AliITSsimulationSPD::SetCouplingOld(Int_t col, Int_t row, - Int_t ntrack,Int_t idhit) { +void AliITSsimulationSPD::SetCouplingOld(Int_t col, Int_t row) { // Take into account the coupling between adiacent pixels. // The parameters probcol and probrow are the fractions of the // signal in one pixel shared in the two adjacent pixels along @@ -968,8 +964,6 @@ void AliITSsimulationSPD::SetCouplingOld(Int_t col, Int_t row, // Inputs: // Int_t col z cell index // Int_t row x cell index - // Int_t ntrack track incex number - // Int_t idhit hit index number // Int_t module module number // Outputs: // none. @@ -985,9 +979,9 @@ void AliITSsimulationSPD::SetCouplingOld(Int_t col, Int_t row, // cout << "Threshold --> " << GetThreshold() << endl; // dom // cout << "Couplings --> " << couplC << " " << couplR << endl; // dom - if(GetDebug(3)) Info("SetCouplingOld","(col=%d,row=%d,ntrack=%d,idhit=%d) " + if(GetDebug(3)) Info("SetCouplingOld","(col=%d,row=%d) " "Calling SetCoupling couplC=%e couplR=%e", - col,row,ntrack,idhit,couplC,couplR); + col,row,couplC,couplR); for (Int_t isign=-1;isign<=1;isign+=2){// loop in col direction pulse1 = GetMap()->GetSignalOnly(col,row); pulse2 = pulse1; @@ -1001,7 +995,7 @@ void AliITSsimulationSPD::SetCouplingOld(Int_t col, Int_t row, j1 = col; flag = 1; }else{ - UpdateMapSignal(row,j1,ntrack,idhit,pulse1); + UpdateMapNoise(row,j1,pulse1); // flag = 0; flag = 1; // only first next !! } // end if @@ -1015,7 +1009,7 @@ void AliITSsimulationSPD::SetCouplingOld(Int_t col, Int_t row, j2 = row; flag = 1; }else{ - UpdateMapSignal(j2,col,ntrack,idhit,pulse2); + UpdateMapNoise(j2,col,pulse2); // flag = 0; flag = 1; // only first next!! } // end if