From aaa0a98fa0046127996cdadc9836953394b37f20 Mon Sep 17 00:00:00 2001 From: alla Date: Fri, 22 Feb 2008 13:40:40 +0000 Subject: [PATCH] reconstruction for both cases: cosmic and PDC08 --- T0/AliT0Calibrator.cxx | 7 +++-- T0/AliT0Calibrator.h | 2 +- T0/AliT0Reconstructor.cxx | 66 ++++++++++++++++++++++----------------- 3 files changed, 43 insertions(+), 32 deletions(-) diff --git a/T0/AliT0Calibrator.cxx b/T0/AliT0Calibrator.cxx index bc44f3817d0..b714d6b3177 100644 --- a/T0/AliT0Calibrator.cxx +++ b/T0/AliT0Calibrator.cxx @@ -84,7 +84,7 @@ AliT0Calibrator &AliT0Calibrator::operator=(const AliT0Calibrator &r) //____________________________________________________________________ -Int_t AliT0Calibrator::WalkCorrection(Int_t ipmt, Int_t qt, Int_t time) +Int_t AliT0Calibrator::WalkCorrection(Int_t ipmt, Int_t qt, Int_t time, TString option) { //slewing correcion and equalizing channels @@ -93,7 +93,10 @@ Int_t AliT0Calibrator::WalkCorrection(Int_t ipmt, Int_t qt, Int_t time) Float_t walk=fu1->Eval(Float_t(qt)); TH1F*hr=fu1->GetHistogram(); Float_t maxValue=hr->GetMaximum(50); - timeWalk = time + Int_t((maxValue-walk)/fChannelWidth) ; + if (option == "pdc") + timeWalk = time + Int_t((maxValue-walk)/fChannelWidth) ; + if (option == "cosmic") + timeWalk = time + Int_t((maxValue-walk)) ; timeEq= timeWalk - (fTimeDelayCFD[ipmt]-fTimeDelayCFD[0]); AliDebug(10,Form(" time before %i timeWalk %i , qt %i timeEq %i \n ", time,timeWalk, qt, timeEq )); diff --git a/T0/AliT0Calibrator.h b/T0/AliT0Calibrator.h index 7abd9ff184e..125428c8d72 100644 --- a/T0/AliT0Calibrator.h +++ b/T0/AliT0Calibrator.h @@ -22,7 +22,7 @@ class AliT0Calibrator: public TNamed virtual ~AliT0Calibrator() {}; - Int_t WalkCorrection(Int_t ipmt, Int_t qt, Int_t time) ; + Int_t WalkCorrection(Int_t ipmt, Int_t qt, Int_t time, TString option="pdc") ; // Int_t EquivalizeChannel(Int_t ipmt) ; protected: diff --git a/T0/AliT0Reconstructor.cxx b/T0/AliT0Reconstructor.cxx index 59e00822a3a..e04c1d157c0 100644 --- a/T0/AliT0Reconstructor.cxx +++ b/T0/AliT0Reconstructor.cxx @@ -67,7 +67,7 @@ AliT0Reconstructor::AliT0Reconstructor(const AliT0Reconstructor &r): fdZonC(0), fZposition(0), fParam(NULL), - fAmpLEDrec() + fAmpLEDrec() { // // AliT0Reconstructor copy constructor @@ -147,7 +147,7 @@ void AliT0Reconstructor::Reconstruct(TTree*digitsTree, TTree*clustersTree) const Double_t qt0 = Double_t(chargeQT0->At(ipmt)); Double_t qt1 = Double_t(chargeQT1->At(ipmt)); if((qt1-qt0)>0) adc[ipmt] = TMath::Exp( Double_t (channelWidth*(qt1-qt0)/1000)); - time[ipmt] = calib-> WalkCorrection( ipmt,Int_t(qt1) , timeCFD->At(ipmt) ) ; + time[ipmt] = calib-> WalkCorrection( ipmt,Int_t(qt1) , timeCFD->At(ipmt), "pdc" ) ; //LED Double_t sl = (timeLED->At(ipmt) - time[ipmt])*channelWidth; @@ -223,6 +223,9 @@ void AliT0Reconstructor::Reconstruct(AliRawReader* rawReader, TTree*recTree) con TArrayI * chargeQT0 = new TArrayI(24); TArrayI * chargeQT1 = new TArrayI(24); + TString option = GetOption(); + printf(" !!!!!!!!! option %s\n", option.Data()); + for (Int_t i0=0; i0<105; i0++) { for (Int_t j0=0; j0<50; j0++) allData[i0][j0]=0; @@ -272,37 +275,41 @@ void AliT0Reconstructor::Reconstruct(AliRawReader* rawReader, TTree*recTree) con Float_t time[24], adc[24]; for (Int_t ipmt=0; ipmt<24; ipmt++) { if(timeCFD->At(ipmt)>0 ){ - /* - Double_t qt0 = Double_t(chargeQT0->At(ipmt)); - Double_t qt1 = Double_t(chargeQT1->At(ipmt)); - if((qt1-qt0)>0) adc[ipmt] = TMath::Exp( Double_t (channelWidth*(qt1-qt0)/1000)); - // time[ipmt] = channelWidth * (calib-> WalkCorrection( ipmt,qt1 , timeCFD->At(ipmt) ) ) ; - time[ipmt] = calib-> WalkCorrection( ipmt,Int_t(qt1) , timeCFD->At(ipmt) ) ; - Double_t sl = (timeLED->At(ipmt) - time[ipmt])*channelWidth; - Double_t qt=((TGraph*)fAmpLEDrec.At(ipmt))->Eval(sl/1000.); - frecpoints->SetTime(ipmt,time[ipmt]); - frecpoints->SetAmp(ipmt,adc[ipmt]); - frecpoints->SetAmpLED(ipmt,qt); - AliDebug(1,Form(" QTC %f mv, QTC %f MIPS time in chann %f time %f ",adc[ipmt], adc[ipmt]/50.,time[ipmt], time[ipmt]*channelWidth)); - */ - Float_t qt0 = Float_t(chargeQT0->At(ipmt)); - Float_t qt1 = Float_t(chargeQT1->At(ipmt)); - if((qt0-qt1)>0) adc[ipmt] = qt0-qt1; - time[ipmt] = calib-> WalkCorrection( ipmt, adc[ipmt], timeCFD->At(ipmt) ) ; - Double_t sl = timeLED->At(ipmt) - time[ipmt]; - Double_t qt=((TGraph*)fAmpLEDrec.At(ipmt))->Eval(sl); - frecpoints->SetTime(ipmt,time[ipmt]); - frecpoints->SetAmp(ipmt,adc[ipmt]); - frecpoints->SetAmpLED(ipmt,qt); - AliDebug(10,Form(" QTC %f , time in chann %f ",adc[ipmt] ,time[ipmt])); + if(option == "pdc"){ + Double_t qt0 = Double_t(chargeQT0->At(ipmt)); + Double_t qt1 = Double_t(chargeQT1->At(ipmt)); + if((qt1-qt0)>0) adc[ipmt] = TMath::Exp( Double_t (channelWidth*(qt1-qt0)/1000)); + // time[ipmt] = channelWidth * (calib-> WalkCorrection( ipmt,qt1 , timeCFD->At(ipmt) ) ) ; + time[ipmt] = calib-> WalkCorrection( ipmt,Int_t(qt1) , timeCFD->At(ipmt) ) ; + Double_t sl = (timeLED->At(ipmt) - time[ipmt])*channelWidth; + Double_t qt=((TGraph*)fAmpLEDrec.At(ipmt))->Eval(sl/1000.); + frecpoints->SetTime(ipmt,time[ipmt]); + frecpoints->SetAmp(ipmt,adc[ipmt]); + frecpoints->SetAmpLED(ipmt,qt); + AliDebug(1,Form(" QTC %f mv, QTC %f MIPS time in chann %f time %f ",adc[ipmt], adc[ipmt]/50.,time[ipmt], time[ipmt]*channelWidth)); + } + if(option == "cosmic") { + Float_t qt0 = Float_t(chargeQT0->At(ipmt)); + Float_t qt1 = Float_t(chargeQT1->At(ipmt)); + if((qt0-qt1)>0) adc[ipmt] = qt0-qt1; + time[ipmt] = calib-> WalkCorrection( ipmt, Int_t(adc[ipmt]), timeCFD->At(ipmt) ) ; + Double_t sl = timeLED->At(ipmt) - time[ipmt]; + Double_t qt=((TGraph*)fAmpLEDrec.At(ipmt))->Eval(sl); + frecpoints->SetTime(ipmt,time[ipmt]); + frecpoints->SetAmp(ipmt,adc[ipmt]); + frecpoints->SetAmpLED(ipmt,qt); + AliDebug(10,Form(" QTC %i , time in chann %i led %i ", + Int_t(adc[ipmt]) ,Int_t(time[ipmt]),Int_t( qt))); + } + } else { time[ipmt] = 0; adc[ipmt] = 0; } } - + for (Int_t ipmt=0; ipmt<12; ipmt++){ if(time[ipmt] > 1 ) { if(time[ipmt]SetVertex(vertex); -- 2.39.3