X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=AD%2FADsim%2FAliADDigitizer.cxx;h=9e2ee691005d9218ce9a2bb181a0bc17f6df9b94;hp=0fbde40ca71322203ab5dbcb7dd674d5369a38c1;hb=330378456818217c875a96e575a0d12e978d15af;hpb=122c9ddcf66fa9d9e0feef1e3e6b3e468897fc0d diff --git a/AD/ADsim/AliADDigitizer.cxx b/AD/ADsim/AliADDigitizer.cxx index 0fbde40ca71..9e2ee691005 100644 --- a/AD/ADsim/AliADDigitizer.cxx +++ b/AD/ADsim/AliADDigitizer.cxx @@ -53,6 +53,7 @@ #include "AliADdigit.h" #include "AliADDigitizer.h" #include "AliADSDigit.h" +#include "AliADTriggerSimulator.h" ClassImp(AliADDigitizer) @@ -150,15 +151,14 @@ Bool_t AliADDigitizer::Init() // check if the digitizer was already initialized if (fSignalShape) return kTRUE; - fSignalShape = new TF1("ADSignalShape",this,&AliADDigitizer::SignalShape,0,200,6,"AliADDigitizer","SignalShape"); + fPMResponse = new TF1("ADPMResponse",this,&AliADDigitizer::PMResponse,-kPMRespTime,2.*kPMRespTime,0,"AliADDigitizer","PMResponse"); + fSinglePhESpectrum = new TF1("ADSinglePhESpectrum",this,&AliADDigitizer::SinglePhESpectrum,0,20,0,"AliADDigitizer","SinglePhESpectrum"); // fSignalShape->SetParameters(0,1.57345e1,-4.25603e-1,2.9,6.40982,3.69339e-01); // fSignalShape->SetParameters(1.34330e+00,1.13007e+02,-4.95705e-01, // 3.68911e+00,1.01040e+00, 3.94675e-01); fSignalShape->SetParameters(-1.07335e+00,2.16002e+01,-1.26133e-01, 1.41619e+00,5.50334e-01,3.86111e-01); - fPMResponse = new TF1("ADPMResponse",this,&AliADDigitizer::PMResponse,-kPMRespTime,2.*kPMRespTime,0,"AliADDigitizer","PMResponse"); - fSinglePhESpectrum = new TF1("ADSinglePhESpectrum",this,&AliADDigitizer::SinglePhESpectrum,0,20,0,"AliADDigitizer","SinglePhESpectrum"); // Now get the CTP L0->L1 delay AliCDBEntry *entry = AliCDBManager::Instance()->Get("GRP/CTP/CTPtiming"); @@ -198,22 +198,26 @@ Bool_t AliADDigitizer::Init() fNBinsLT[i] = TMath::Nint(((Float_t)(fCalibData->GetMatchWindow(board)+1)*25.0)/ fCalibData->GetTimeResolution(board)); fBinSize[i] = fCalibData->GetTimeResolution(board); - - fHptdcOffset[i] = delays->GetBinContent(i+1); + + fHptdcOffset[i] = (((Float_t)fCalibData->GetRollOver(board)- + (Float_t)fCalibData->GetTriggerCountOffset(board))*25.0 + //+fCalibData->GetTimeOffset(i) + +delays->GetBinContent(16-i) - 250); + //-l1Delay- + //-phase->GetMeanPhase() + //+kADOffset); fClockOffset[i] = (((Float_t)fCalibData->GetRollOver(board)- - (Float_t)fCalibData->GetTriggerCountOffset(board))*25.0+ - fCalibData->GetTimeOffset(i)- - l1Delay+ - kADOffset); + (Float_t)fCalibData->GetTriggerCountOffset(board))*25.0 + +fCalibData->GetTimeOffset(i) - 250); + //-l1Delay + //+kADOffset); fTime[i] = new Float_t[fNBins[i]]; memset(fTime[i],0,fNBins[i]*sizeof(Float_t)); - - // AliWarning(Form("PMT %d,PM gain %f, fNBins %d, TimeBinSize %f,",i, fPmGain[i], fNBins[i],fBinSize[i])); - + } - + //std::cout<<"AD: "<<" fNBins = "<= 0 && clock < kNClocks) fAdc[ipmt][clock] += fTime[ipmt][iBin]/kChargePerADC; @@ -382,7 +387,10 @@ void AliADDigitizer::DigitizeSDigits() fAdc[j][iClock] += gRandom->Gaus(fAdcPedestal[j][integrator], fAdcSigma[j][integrator]); } } - + //Fill BB and BG flags in trigger simulator + AliADTriggerSimulator * triggerSimulator = new AliADTriggerSimulator(); + triggerSimulator->FillFlags(fBBFlag,fBGFlag,fLeadingTime); + } //____________________________________________________________________________ @@ -473,7 +481,6 @@ void AliADDigitizer::WriteDigits(AliLoader *loader) TTree* treeD = loader->TreeD(); DigitsArray(); treeD->Branch("ADDigit", &fDigits); - //fAD->MakeBranchInTree(treeD,"AD",&fDigits,1000,""); Short_t *chargeADC = new Short_t[kNClocks]; for (Int_t i=0; i<16; i++) { @@ -482,7 +489,7 @@ void AliADDigitizer::WriteDigits(AliLoader *loader) if (tempadc > 1023) tempadc = 1023; chargeADC[j] = tempadc; } - AddDigit(i, fLeadingTime[i], fTimeWidth[i], Bool_t((10+fEvenOrOdd)%2), chargeADC, fLabels[i]); + AddDigit(i, fLeadingTime[i], fTimeWidth[i], Bool_t((10+fEvenOrOdd)%2), chargeADC, fBBFlag[i], fBGFlag[i], fLabels[i]); } delete [] chargeADC; @@ -520,14 +527,14 @@ void AliADDigitizer::WriteSDigits(AliLoader *loader) //____________________________________________________________________________ -void AliADDigitizer::AddDigit(Int_t pmnumber, Float_t time, Float_t width, Bool_t integrator, Short_t *chargeADC, Int_t *labels) +void AliADDigitizer::AddDigit(Int_t pmnumber, Float_t time, Float_t width, Bool_t integrator, Short_t *chargeADC, Bool_t bbFlag, Bool_t bgFlag, Int_t *labels) { // Adds Digit TClonesArray &ldigits = *fDigits; - new(ldigits[fNdigits++]) AliADdigit(pmnumber,time,width,integrator,chargeADC,labels); + new(ldigits[fNdigits++]) AliADdigit(pmnumber,time,width,integrator,chargeADC,bbFlag,bgFlag,labels); } //____________________________________________________________________________