X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=START%2FAliSTARTReconstructor.cxx;h=b52057ec8ca7e81654ae7441f03c18044e61d43b;hp=56bd73a6e6e86f060868dfca98f08cc647c74dbb;hb=b2214376377d4631f3c60fc9c4c98e370c9fb956;hpb=db173afc0d05e61c47de1e6ae0af77fb7e0bd263 diff --git a/START/AliSTARTReconstructor.cxx b/START/AliSTARTReconstructor.cxx index 56bd73a6e6e..b52057ec8ca 100644 --- a/START/AliSTARTReconstructor.cxx +++ b/START/AliSTARTReconstructor.cxx @@ -21,16 +21,28 @@ #include "AliRunLoader.h" #include "AliRun.h" -#include "AliSTARTLoader.h" -#include "AliSTARTdigit.h" -#include "AliSTARTReconstructor.h" #include +#include "AliLog.h" #include #include "AliSTARTRecPoint.h" #include "AliRawReader.h" #include "AliSTARTRawReader.h" -#include "AliLog.h" +#include "AliSTARTLoader.h" +#include "AliSTARTdigit.h" +#include "AliSTARTReconstructor.h" +#include "AliSTARTParameters.h" +#include "AliSTARTAlignData.h" +#include "AliSTARTCalibData.h" +#include "AliCDBLocal.h" +#include "AliCDBStorage.h" +#include "AliCDBManager.h" +#include "AliCDBEntry.h" + +#include + ClassImp(AliSTARTReconstructor) +AliSTARTAlignData* AliSTARTReconstructor::fgAlignData = 0; +AliSTARTCalibData* AliSTARTReconstructor::fgCalibData = 0; void AliSTARTReconstructor::ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const { @@ -44,12 +56,34 @@ ClassImp(AliSTARTReconstructor) // START digits reconstruction // STARTRecPoint writing + //Q->T-> coefficients !!!! should be asked!!! + // Float_t ph2MIP=500; + Float_t gain[24], timeDelayCFD[24], timeDelayLED[24]; + Float_t zdetA,zdetC; + TObjArray slewingLED; + + TArrayI * fADC = new TArrayI(24); + TArrayI * fTimeCFD = new TArrayI(24); + TArrayI * fADCLED = new TArrayI(24); + TArrayI * fTimeLED = new TArrayI(24); + cout<<" fTimeCFD "<Init(); + Int_t ph2MIP = param->GetPh2Mip(); + Int_t channelWidth = param->GetChannelWidth() ; + + for (Int_t i=0; i<24; i++){ + timeDelayCFD[i] = param->GetTimeDelayCFD(i); + timeDelayLED[i] = param->GetTimeDelayLED(i); + gain[i] = param->GetGain(i); + slewingLED.AddAtAndExpand(param->GetSlew(i),i); + } + zdetC = param->GetZposition(0); + zdetA = param->GetZposition(1); + AliDebug(1,Form("Start DIGITS reconstruction ")); - Int_t channelWigth=25; //ps - TArrayI* fSumMult = new TArrayI(6); - Float_t ph2mV = 150./500.; - Float_t mV2channel=200000/(25*25); //5V -> 200ns - + TBranch *brDigits=digitsTree->GetBranch("START"); AliSTARTdigit *fDigits = new AliSTARTdigit(); if (brDigits) { @@ -59,30 +93,50 @@ ClassImp(AliSTARTReconstructor) return; } brDigits->GetEntry(0); - Int_t besttimeright=channelWigth * (fDigits->BestTimeRight()); - Int_t besttimeleft=channelWigth * (fDigits->BestTimeLeft()); + fDigits->GetTime(*fTimeCFD); + fDigits->GetADC(*fADC); + fDigits->GetTimeAmp(*fTimeLED); + fDigits->GetADCAmp(*fADCLED); + Float_t time[24], adc[24]; + for (Int_t ipmt=0; ipmt<24; ipmt++) + { + + if(fTimeCFD->At(ipmt)>0 ){ + time[ipmt] = channelWidth *( fTimeCFD->At(ipmt)) - 1000*timeDelayCFD[ipmt]; + cout<At(ipmt)) ; + // cout<<" adc_digmV "<< adc_digPs<BestTimeRight()); + Int_t besttimeleft=channelWidth * (fDigits->BestTimeLeft()); //folding with experimental time distribution // Float_t c = 29.9792; // cm/ns Float_t c = 0.0299792; // cm/ps - Float_t lenr=TMath::Sqrt(350*350 + 6.5*6.5); - Float_t lenl=TMath::Sqrt(69.7*69.7 + 6.5*6.5); - Float_t timeDiff=channelWigth * (fDigits->TimeDiff()); - Int_t meanTime=channelWigth * (fDigits->MeanTime()); + Float_t lenr=TMath::Sqrt(zdetA*zdetA + 6.5*6.5); + Float_t lenl=TMath::Sqrt(zdetC*zdetC + 6.5*6.5); + Float_t timeDiff=channelWidth * (fDigits->TimeDiff()); + Int_t meanTime=channelWidth * (fDigits->MeanTime()); Float_t ds=(c*(timeDiff)-(lenr-lenl))/2; AliDebug(2,Form(" timediff in ns %f real point%f",timeDiff,ds)); - - fDigits->Print(); + /* fDigits->GetSumMult(*fSumMult); - Int_t multipl[6]; - for (Int_t i=0; i<6; i++) + Int_t multipl[4]; + + for (Int_t i=0; i<4; i++) { Float_t mult=Float_t (fSumMult->At(i)); Float_t realMultmV=TMath::Exp(mult/mV2channel); multipl[i]=Int_t ((realMultmV/ph2mV)/500+0.5); } - AliDebug(2,Form(" multiplicity Abs side %i multiplicity non-Abs side %i",multipl[1],multipl[2])); + */ + + // AliDebug(2,Form(" multiplicity Abs side %i multiplicity non-Abs side %i",multipl[1],multipl[2])); AliSTARTRecPoint* frecpoints= new AliSTARTRecPoint (); clustersTree->Branch( "START", "AliSTARTRecPoint" ,&frecpoints, 405,1); @@ -90,10 +144,11 @@ ClassImp(AliSTARTReconstructor) frecpoints->SetTimeBestLeft(besttimeleft); frecpoints->SetVertex(ds); frecpoints->SetMeanTime(meanTime); + /* frecpoints->SetMult(multipl[0]); frecpoints->SetMultA(multipl[2]); frecpoints->SetMultC(multipl[1]); - + */ clustersTree->Fill(); }