]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Optimizing raw data reconstruction:
authorkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 4 Oct 2009 15:45:02 +0000 (15:45 +0000)
committerkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 4 Oct 2009 15:45:02 +0000 (15:45 +0000)
1) set channel geometry once per channel;
2) lower verbisity of AliPHOSRawFitterv0 to debug level 2;
3) read ZS parameters from raw data in AliPHOSQADataMakerRec.

PHOS/AliPHOSQADataMakerRec.cxx
PHOS/AliPHOSRawDigiProducer.cxx
PHOS/AliPHOSRawFitterv0.cxx

index 63642267df7a25a21550510bb7e44b7600efaae8..83762cb46053bc87b75291ecbb72ff45e35cf7a7 100644 (file)
@@ -408,6 +408,22 @@ void AliPHOSQADataMakerRec::MakeRaws(AliRawReader* rawReader)
       Int_t cellZ    = fRawStream->GetCellZ();
       Int_t caloFlag = fRawStream->GetCaloFlag(); // 0=LG, 1=HG, 2=TRU
 
+      if(caloFlag!=0 && caloFlag!=1) continue; //TRU data!
+
+      fitter->SetChannelGeo(module+1,cellX+1,cellZ+1,caloFlag);
+
+      if(fitter->GetAmpOffset()==0 && fitter->GetAmpThreshold()==0) {
+       Short_t value = fRawStream->GetAltroCFG1();
+       Bool_t ZeroSuppressionEnabled = (value >> 15) & 0x1;
+       if(ZeroSuppressionEnabled) {
+         Short_t offset = (value >> 10) & 0xf;
+         Short_t threshold = value & 0x3ff;
+         fitter->SubtractPedestals(kFALSE);
+         fitter->SetAmpOffset(offset);
+         fitter->SetAmpThreshold(threshold);
+       }
+      }
+
       Int_t nBunches = 0;
       while (fRawStream->NextBunch()) {
        nBunches++;
@@ -415,7 +431,6 @@ void AliPHOSQADataMakerRec::MakeRaws(AliRawReader* rawReader)
        const UShort_t *sig = fRawStream->GetSignals();
        Int_t sigStart      = fRawStream->GetStartTimeBin();
        Int_t sigLength     = fRawStream->GetBunchLength();
-       fitter->SetChannelGeo(module,cellX,cellZ,caloFlag);
        fitter->Eval(sig,sigStart,sigLength);
       } // End of NextBunch()
 
index a7b5b52615fc10606c0f5f6f11231b28b155e224..75df9a05c80454bf2e69ec63047ca9f064603d29 100644 (file)
@@ -181,6 +181,7 @@ void AliPHOSRawDigiProducer::MakeDigits(TClonesArray *digits, AliPHOSRawFitterv0
       
       if(caloFlag!=0 && caloFlag!=1) continue; //TRU data!
       
+      fitter->SetChannelGeo(relId[0],relId[2],relId[3],caloFlag);
       if(fitter->GetAmpOffset()==0 && fitter->GetAmpThreshold()==0) {
        short value = fRawStream->GetAltroCFG1();
        bool ZeroSuppressionEnabled = (value >> 15) & 0x1;
@@ -202,7 +203,6 @@ void AliPHOSRawDigiProducer::MakeDigits(TClonesArray *digits, AliPHOSRawFitterv0
        const UShort_t *sig = fRawStream->GetSignals();
        Int_t sigStart  = fRawStream->GetStartTimeBin();
        Int_t sigLength = fRawStream->GetBunchLength();
-       fitter->SetChannelGeo(relId[0],relId[2],relId[3],caloFlag);
        fitter->Eval(sig,sigStart,sigLength);
       } // End of NextBunch()
 
index 8144e5648aa4834ffd0f49aee8abb55305f75f44..457df68a4b804504baccc965e69f3ec76a877126 100644 (file)
@@ -188,7 +188,7 @@ Bool_t AliPHOSRawFitterv0::Eval(const UShort_t *signal, Int_t sigStart, Int_t si
       pedestal += truePed - altroSettings ;
     }
     else{
-      AliWarning(Form("Can not read data from OCDB")) ;
+      AliDebug(2,Form("Pedestal and offset are not read from OCDB. Use 0 for their values.")) ;
     }
   }
   fEnergy-=pedestal ;