]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Cosmetics and minor modifications
authorphille <phille@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 18 Jun 2008 21:47:01 +0000 (21:47 +0000)
committerphille <phille@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 18 Jun 2008 21:47:01 +0000 (21:47 +0000)
HLT/PHOS/AliHLTPHOSBaselineAnalyzer.cxx
HLT/PHOS/AliHLTPHOSBaselineAnalyzer.h
HLT/PHOS/AliHLTPHOSDigitMaker.cxx
HLT/PHOS/AliHLTPHOSDigitMaker.h
HLT/PHOS/AliHLTPHOSModuleCalibrationProcessorComponent.cxx
HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.cxx
HLT/PHOS/AliHLTPHOSRcuAltroPatternTestComponent.cxx
HLT/PHOS/AliHLTPHOSRcuCalibrationProcessorComponent.cxx
HLT/PHOS/AliHLTPHOSRcuDAComponent.cxx
HLT/PHOS/AliHLTPHOSRcuHistogramProducerComponent.cxx

index 6e4b26f4ed503e82a18dfdb8b74bae1288529673..d69db28a36138afd1f79c6a2c80f3f873f755c00 100644 (file)
@@ -123,12 +123,12 @@ AliHLTPHOSBaselineAnalyzer::CalculateRcuBaselines(AliHLTPHOSRcuCellEnergyDataStr
 
 
 Float_t
-AliHLTPHOSBaselineAnalyzer::CalculateChannelBaseline(AliHLTPHOSValidCellDataStruct *cellData, Int_t xOff, Int_t zOff) 
+AliHLTPHOSBaselineAnalyzer::CalculateChannelBaseline(AliHLTPHOSValidCellDataStruct *cellData, Int_t* rawDataPtr, Int_t xOff, Int_t zOff) 
 { 
   //see headerfile for documentation
   Int_t crazyness = 0;
   Int_t total = 0;
-  Int_t *data = cellData->fData;
+  Int_t *data = rawDataPtr;
   for(Int_t i = fSampleStart; i < fNSamples; i++)
   { 
     /*
index 67620d50ca95279295f382b90cafc2cf92bd956a..073ba57538eb848789387698e86594e0e41adb93 100644 (file)
@@ -106,7 +106,7 @@ public:
    * @param zOff is the offset in the z position given by the RCU number
    * @return the baseline
    */
-  Float_t CalculateChannelBaseline(AliHLTPHOSValidCellDataStruct *cellData, Int_t xOff, Int_t zOff);
+  Float_t CalculateChannelBaseline(AliHLTPHOSValidCellDataStruct *cellData, Int_t* rawDataPtr, Int_t xOff, Int_t zOff);
 
   /** 
    * Calculate the accumulated baseline of a channel
index 94cc7777fa1584a0fda384f5a9df1a638fcb2d61..7bd4df51c843e22ef298fa1adb5c5644ac93cb41 100644 (file)
@@ -61,11 +61,27 @@ AliHLTPHOSDigitMaker::AliHLTPHOSDigitMaker() :
        {
          fHighGainFactors[x][z] = 0.005;
          fLowGainFactors[x][z] = 0.08;
+         fDigitThresholds[x][z][HIGH_GAIN] = 2;
+         fDigitThresholds[x][z][LOW_GAIN] = 2;
+         fBadChannelMask[x][z][HIGH_GAIN] = 1;
+         fBadChannelMask[x][z][LOW_GAIN] = 1; 
        }
     }
+
+    for(int x = 0; x < N_XCOLUMNS_RCU; x++)
+      {
+       for(int z = 0; z < N_ZROWS_RCU; z++)
+         {
+           for(int gain = 0; gain < N_GAINS; gain++)
+             {
+               fEnergyArray[x][z][gain] = 0;
+             }
+         }
+      }
+         
   
 }
-  
+   
 AliHLTPHOSDigitMaker::~AliHLTPHOSDigitMaker() 
 {
   //See header file for documentation
@@ -79,40 +95,49 @@ AliHLTPHOSDigitMaker::MakeDigits(AliHLTPHOSRcuCellEnergyDataStruct* rcuData)
   Int_t j = 0;
   Int_t xMod = -1;
   Int_t zMod = -1;
-  Float_t amplitude = 0;
+
+  AliHLTPHOSValidCellDataStruct* currentchannel = 0;
+
+  Reset();
+
+  fShmPtr->SetMemory(rcuData);
+  currentchannel = fShmPtr->NextChannel();
+      
+  while(currentchannel != 0)
+    {
+      fEnergyArray[currentchannel->fX][currentchannel->fZ][currentchannel->fGain] = currentchannel->fEnergy; 
+      currentchannel = fShmPtr->NextChannel();
+    }
+
   for(int x = 0; x < N_XCOLUMNS_RCU; x++)
     {
-      for(int z = 0; z < N_ZROWS_RCU; z++) 
+      for(int z = 0; z < N_ZROWS_RCU; z++)  
        {
-         fCellDataPtr = &(rcuData->fValidData[x][z][HIGH_GAIN]);
          xMod = x + rcuData->fRcuX * N_XCOLUMNS_RCU;
          zMod = z + rcuData->fRcuZ * N_ZROWS_RCU;
-         amplitude = fCellDataPtr->fEnergy;
-         if(amplitude > fDigitThresholds[xMod][zMod][HIGH_GAIN] && amplitude < MAX_BIN_VALUE)
+         
+         if(fEnergyArray[x][z][HIGH_GAIN] > fDigitThresholds[xMod][zMod][HIGH_GAIN] && fEnergyArray[x][z][HIGH_GAIN] < MAX_BIN_VALUE && fBadChannelMask[xMod][zMod][HIGH_GAIN])
            {
              fDigitStructPtr = &(fDigitContainerStructPtr->fDigitDataStruct[j+fDigitCount]);
              fDigitStructPtr->fX = xMod;
              fDigitStructPtr->fZ = zMod;
-             fDigitStructPtr->fAmplitude = amplitude;
-             fDigitStructPtr->fEnergy = amplitude * fHighGainFactors[xMod][zMod];
+             fDigitStructPtr->fAmplitude = fEnergyArray[x][z][HIGH_GAIN];
+             fDigitStructPtr->fEnergy = fEnergyArray[x][z][HIGH_GAIN] * fHighGainFactors[xMod][zMod];
              //TODO: fix time
              fDigitStructPtr->fTime = fCellDataPtr->fTime * 0.0000001;
              fDigitStructPtr->fCrazyness = fCellDataPtr->fCrazyness;
              fDigitStructPtr->fModule = rcuData->fModuleID;
              j++;
            }
-         else if(amplitude >= MAX_BIN_VALUE)
+         else if(fEnergyArray[x][z][LOW_GAIN] >= MAX_BIN_VALUE && fBadChannelMask[xMod][zMod][LOW_GAIN])
            {
-             fCellDataPtr = & (rcuData->fValidData[x][z][LOW_GAIN]);
-             amplitude = fCellDataPtr->fEnergy;
-             if(amplitude > fDigitThresholds[xMod][zMod][LOW_GAIN])
+             if(fEnergyArray[x][z][LOW_GAIN] > fDigitThresholds[xMod][zMod][LOW_GAIN])
                {             
                  fDigitStructPtr = &(fDigitContainerStructPtr->fDigitDataStruct[j+fDigitCount]);
                  fDigitStructPtr->fX = xMod;
                  fDigitStructPtr->fZ = zMod;
-                 fDigitStructPtr->fAmplitude = amplitude;
-                 fDigitStructPtr->fEnergy = amplitude * fLowGainFactors[xMod][zMod];
+                 fDigitStructPtr->fAmplitude = fEnergyArray[x][z][LOW_GAIN];
+                 fDigitStructPtr->fEnergy = fEnergyArray[x][z][LOW_GAIN] * fLowGainFactors[xMod][zMod];
                  //TODO: fix time
                  fDigitStructPtr->fTime = fCellDataPtr->fTime  * 0.0000001;;
                  fDigitStructPtr->fCrazyness = fCellDataPtr->fCrazyness;
@@ -133,6 +158,18 @@ void
 AliHLTPHOSDigitMaker::Reset()
 { 
   //See header file for documentation
+
+  for(int x = 0; x < N_XCOLUMNS_RCU; x++)
+    {
+      for(int z = 0; z < N_ZROWS_RCU; z++)  
+       {
+         for(int gain = 0; gain < N_GAINS; gain++)
+           {
+             fEnergyArray[x][z][gain] = 0;
+           }
+       }
+    }
+
   fDigitCount = 0;
 }
 
@@ -180,3 +217,31 @@ AliHLTPHOSDigitMaker::SetDigitThresholds(const char* filepath, Int_t nSigmas)
        }
     }
 }
+
+
+void
+AliHLTPHOSDigitMaker::SetBadChannelMask(TH2F* badChannelHGHist, TH2F* badChannelLGHist, Float_t qCut)
+{
+ for(int x = 0; x < N_XCOLUMNS_MOD; x++)
+    {
+      for(int z = 0; z < N_ZROWS_MOD; z++)
+       {
+         if(badChannelHGHist->GetBinContent(x, z) < qCut && badChannelHGHist->GetBinContent(x, z) > 0)
+           {
+             fBadChannelMask[x][z][HIGH_GAIN] = 1;
+           }
+         else
+           {
+             fBadChannelMask[x][z][HIGH_GAIN] = 0;
+           }
+         if(badChannelLGHist->GetBinContent(x, z) < qCut && badChannelLGHist->GetBinContent(x, z) > 0)
+           {
+             fBadChannelMask[x][z][LOW_GAIN] = 0;
+           }
+         else
+           {
+             fBadChannelMask[x][z][LOW_GAIN] = 0;
+           }
+       }
+    }
+}
index ecfb91c61f05721aba7afe4b18031efe7149cd2c..3b7ce68d6727d25074b6a5554b3c5592bf79017a 100644 (file)
@@ -44,6 +44,7 @@
 
 class TClonesArray;
 class TTree;
+class TH2F;
 class AliHLTPHOSValidCellDataStruct;
 class AliHLTPHOSRcuCellEnergyDataStruct;
 class AliHLTPHOSDigitContainerDataStruct;
@@ -66,6 +67,7 @@ public:
   AliHLTPHOSDigitMaker(const AliHLTPHOSDigitMaker &) : 
     AliHLTPHOSBase(),
     fCellDataPtr(0),
+    fShmPtr(0),
     fDigitContainerStructPtr(0),
     fDigitArrayPtr(0),
     fDigitStructPtr(0),
@@ -133,6 +135,14 @@ public:
    */
   Int_t MakeDigits(AliHLTPHOSRcuCellEnergyDataStruct* rcuCellEnergies);
 
+  /**
+   * Set the mask for dead channels
+   * @param badChannelHGHist is a pointer to a high gain bad channel histogram
+   * @param badChannelLGHist is a pointer to a low gain bad channel histogram
+   * @param qCut is the cut 
+   */
+  void SetBadChannelMask(TH2F* badChannelHGHist, TH2F* badChannelLGHist, Float_t qCut);
+
   /** Reset the digit maker */
   void Reset();
 
@@ -141,6 +151,9 @@ private:
   /** Pointer to valid cell list */
   AliHLTPHOSValidCellDataStruct *fCellDataPtr;                   //! transient
 
+  /** Pointer to shared memory interface */
+  AliHLTPHOSSharedMemoryInterface* fShmPtr;                      //! transient
+
   /** Pointer to the digit container */
   AliHLTPHOSDigitContainerDataStruct *fDigitContainerStructPtr;  //! transient
 
@@ -153,6 +166,9 @@ private:
   /** Digit count */
   Int_t fDigitCount;                                             //COMMENT
 
+  /** Array containing the energies of all RCU channels */
+  Float_t fEnergyArray[N_XCOLUMNS_RCU][N_ZROWS_RCU][N_GAINS];    //COMMENT
+
   /** High gain energy conversion factors */
   Float_t fHighGainFactors[N_XCOLUMNS_MOD][N_ZROWS_MOD];         //COMMENT
 
@@ -162,6 +178,9 @@ private:
    /** Threshold for making digit ( zero suppression threshold) */
   Float_t fDigitThresholds[N_XCOLUMNS_MOD][N_ZROWS_MOD][N_GAINS]; //COMMENT
 
+  /** Bad channel mask */
+  Float_t fBadChannelMask[N_XCOLUMNS_MOD][N_ZROWS_MOD][N_GAINS]; //COMMENT
+
   ClassDef(AliHLTPHOSDigitMaker, 1); 
 };
 
index 59f56cfbf72e6122905a1b30a19fefe6a93ffb1b..7e497e0f5ea54b25ba3b4cabc84962dcb0412ffb 100644 (file)
@@ -145,14 +145,15 @@ Int_t AliHLTPHOSModuleCalibrationProcessorComponent::ProcessCalibration(const Al
   
   //  fCnt ++;
 
-  cout << " AliHLTPHOSModuleCalibrationProcessorComponent::ProcessCalibratio processing event" << fCnt << endl;
-
   fCnt ++;
 
   //See header file for documentation
   const  AliHLTComponentEventData eDta  = evtData;
   AliHLTComponentTriggerData  tDta =  trigData;
 
+
+  AliHLTPHOSValidCellDataStruct *currentChannel =0;
+
   UInt_t specification = 0;
   const AliHLTComponentBlockData* iter = 0;
   iter = GetFirstInputBlock( kAliHLTDataTypeDDLRaw | kAliHLTDataOriginTPC);
@@ -181,18 +182,30 @@ Int_t AliHLTPHOSModuleCalibrationProcessorComponent::ProcessCalibration(const Al
       
       xOffset = cellDataPtr->fRcuX*N_XCOLUMNS_RCU;
       zOffset = cellDataPtr->fRcuZ*N_ZROWS_RCU;
-
-      for(Int_t x = 0; x < N_XCOLUMNS_RCU; x++)
+      
+      fShmPtr->SetMemory(cellDataPtr);
+      currentChannel = fShmPtr->NextChannel();
+      
+      while(currentChannel != 0)
        {
-         for(Int_t z = 0; z < N_ZROWS_RCU; z++)
-           {
-             for(Int_t gain = 0; gain < N_GAINS; gain++)
-               {
-                 energyArray[x+xOffset][z+zOffset][gain] = cellDataPtr->fValidData[x][z][gain].fEnergy;
-                 timeArray[x+xOffset][z+zOffset][gain] = cellDataPtr->fValidData[x][z][gain].fTime;
-               }
-           }
+         Int_t tmpZ =  currentChannel->fZ;
+         Int_t tmpX =  currentChannel->fX;
+         Int_t tmpGain =  currentChannel->fGain;
+         
+         energyArray[tmpX+xOffset][tmpZ+zOffset][tmpGain] = currentChannel->fEnergy;
+         timeArray[tmpX+xOffset][tmpZ+zOffset][tmpGain] = currentChannel->fTime;
        }
+//       for(Int_t x = 0; x < N_XCOLUMNS_RCU; x++)
+//     {
+//       for(Int_t z = 0; z < N_ZROWS_RCU; z++)
+//         {
+//           for(Int_t gain = 0; gain < N_GAINS; gain++)
+//             {
+//               energyArray[x+xOffset][z+zOffset][gain] = cellDataPtr->fValidData[x][z][gain].fEnergy;
+//               timeArray[x+xOffset][z+zOffset][gain] = cellDataPtr->fValidData[x][z][gain].fTime;
+//             }
+//         }
+//     }
       iter = GetNextInputBlock(); 
     }
   
index e6a680e3be17b20b3d4bede489baa19c47e2d58c..73afc1c4263286d091fb2c80478f548af9e3c1d8 100644 (file)
@@ -22,8 +22,6 @@
 #include "AliHLTPHOSMapper.h"
 #include "AliHLTPHOSSanityInspector.h"
 #include "AliHLTPHOSBaseline.h"
-#include "AliHLTPHOSDigitContainerDataStruct.h"
-#include "AliHLTPHOSDigitMaker.h"
 #include "TFile.h"
 #include "TTree.h"
 #include "TClonesArray.h"
@@ -43,9 +41,7 @@ AliHLTPHOSRawAnalyzerComponent::AliHLTPHOSRawAnalyzerComponent():AliHLTPHOSRcuPr
                                                                  fDecoderPtr(0),  
                                                                  fAltroDataPtr(0),
                                                                  fAltroBunchPtr(0),
-                                                                 fDoPushCellEnergies(true),
-                                                                 fDoMakeDigits(false),
-                                                                 fDigitMakerPtr(0),
+                                                                 fDoPushRawData(false),
                                                                  fDigitContainerPtr(0),
                                                                  fDoSelectiveReadOut(false),
                                                                  fSelectedChannelsList(0),
@@ -55,7 +51,7 @@ AliHLTPHOSRawAnalyzerComponent::AliHLTPHOSRawAnalyzerComponent():AliHLTPHOSRcuPr
                                                                  //fRawMemoryReader(0), fPHOSRawStream(0) 
 {
   //comment
-  // fMapperPtr = new AliHLTPHOSMapper();
+  fMapperPtr = new AliHLTPHOSMapper();
   fAltroDataPtr = new AliAltroData();
   fAltroBunchPtr = new AliAltroBunch();
   fDecoderPtr = new AliAltroDecoder();
@@ -134,8 +130,7 @@ AliHLTPHOSRawAnalyzerComponent::GetOutputDataTypes(AliHLTComponentDataTypeList&
   // see header file for class documentation
   tgtList.clear();
   tgtList.push_back(AliHLTPHOSDefinitions::fgkCellEnergyDataType);
-  tgtList.push_back(AliHLTPHOSDefinitions::fgkDigitDataType);
-  tgtList.push_back(kAliHLTDataTypeHwAddr16);
+   tgtList.push_back(kAliHLTDataTypeHwAddr16);
   return tgtList.size();
 }
 
@@ -159,7 +154,6 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData
   UInt_t mysize            = 0;
   UInt_t tSize             = 0;
   Float_t baseline         = 0;
-  UInt_t digitCount        = 0;
   AliHLTUInt8_t* outBPtr;
   outBPtr = outputPtr;
   const AliHLTComponentBlockData* iter = NULL; 
@@ -170,15 +164,15 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData
   UInt_t nSelected = 0;
   UInt_t specification = 0;
  
-  cout << "AliHLTPHOSRawAnalyzerComponent::DoEvent analyzing event " << fPhosEventCount << endl;
   for( ndx = 0; ndx < evtData.fBlockCnt; ndx++ )
     {
+      
       Int_t tmpChannelCnt     = 0;
       iter = blocks+ndx;
       mysize = 0;
       offset = tSize;
       Int_t crazyness = 0;
+      UInt_t tmpSize = 0;
       mysize += sizeof(AliHLTPHOSRcuCellEnergyDataStruct);
 
       if ( iter->fDataType != AliHLTPHOSDefinitions::fgkDDLPackedRawDataType )
@@ -188,18 +182,18 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData
       specification = specification|iter->fSpecification;
 
       fDecoderPtr->SetMemory(reinterpret_cast<UChar_t*>( iter->fPtr ), iter->fSize);
-       //      fDecoderPtr->SetMemory(reinterpret_cast<char*>( iter->fPtr ), iter->fSize);
-
       fDecoderPtr->Decode();
       fOutPtr =  (AliHLTPHOSRcuCellEnergyDataStruct*)outBPtr;
+
       fOutPtr->fRcuX = fRcuX;
       fOutPtr->fRcuZ = fRcuZ;
       fOutPtr->fModuleID =fModuleID;
-      Reset(fOutPtr);
+
       rawDataBufferPos += (mysize)/sizeof(Int_t); 
+            
       while( fDecoderPtr->NextChannel(fAltroDataPtr) == true )
        {
+
          nSamples = fAltroDataPtr->GetDataSize() - 2;
 
          if(fDoCheckDataSize)
@@ -224,104 +218,78 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData
          crazyness = fSanityInspectorPtr->CheckInsanity((const UInt_t*)fAltroDataPtr->GetData(), (const Int_t)(fAltroDataPtr->GetDataSize() - 2));
 
          fAnalyzerPtr->SetData(fAltroDataPtr->GetData(), fAltroDataPtr->GetDataSize() -2);   
-
          fAnalyzerPtr->Evaluate(0, fAltroDataPtr->GetDataSize() -2);  
-         Int_t x = fMapperPtr->fHw2geomapPtr[fAltroDataPtr->GetHadd()].fXCol;
-         Int_t z = fMapperPtr->fHw2geomapPtr[fAltroDataPtr->GetHadd()].fZRow;
-         Int_t gain = fMapperPtr->fHw2geomapPtr[fAltroDataPtr->GetHadd()].fGain;         
 
-         validCellPtr = &(fOutPtr->fValidData[x][z][gain]);
-
-         validCellPtr->fX = x;
-         validCellPtr->fZ = z;
-         validCellPtr->fGain = gain;
+         fOutPtr->fValidData[tmpChannelCnt].fZ  = fMapperPtr->fHw2geomapPtr[fAltroDataPtr->GetHadd()].fZRow;
+         fOutPtr->fValidData[tmpChannelCnt].fX  = fMapperPtr->fHw2geomapPtr[fAltroDataPtr->GetHadd()].fXCol; 
+         fOutPtr->fValidData[tmpChannelCnt].fGain  = fMapperPtr->fHw2geomapPtr[fAltroDataPtr->GetHadd()].fGain; 
 
          if(fUseBaselineSubtraction)
            {
-             baseline = fBaselines[validCellPtr->fX][validCellPtr->fZ][ validCellPtr->fGain];
+             baseline = fBaselines[fOutPtr->fValidData[tmpChannelCnt].fX][fOutPtr->fValidData[tmpChannelCnt].fZ][ fOutPtr->fValidData[tmpChannelCnt].fGain];
            }
 
-         baseline = 0;
-
-         validCellPtr->fEnergy  = (float)fAnalyzerPtr->GetEnergy() - baseline;
-         validCellPtr->fTime    = (float)fAnalyzerPtr->GetTiming();
-         validCellPtr->fCrazyness = (int)crazyness;
-         validCellPtr->fNSamples = nSamples;
-         validCellPtr->fID = tmpChannelCnt;
-
-         //      validCellPtr->fData = rawDataBufferPos;
-         //      validCellPtr->fDataOffset = rawDataBufferPos;
-
+         fOutPtr->fValidData[tmpChannelCnt].fEnergy  = (float)fAnalyzerPtr->GetEnergy() - baseline;
+         fOutPtr->fValidData[tmpChannelCnt].fTime    = (float)fAnalyzerPtr->GetTiming();
+         fOutPtr->fValidData[tmpChannelCnt].fCrazyness = (int)crazyness;
+         
          const UInt_t *tmpData =  fAltroDataPtr->GetData();
-         //      const int *tmpData =  fAltroDataPtr->GetData();
 
-         if(fDoPushCellEnergies)
+         if(fDoPushRawData)
            {
+             tmpSize += nSamples + 1;
+             *rawDataBufferPos = nSamples;
+             cout << "# samples: " << *rawDataBufferPos << endl;
              for(int sample = 0; sample < nSamples; sample++)
                {
-                 (validCellPtr->fData)[sample] = tmpData[sample] - (int)baseline;
-                 //(validCellPtr->fDataOffset)[sample] = tmpData[sample] - (int)baseline;
+                 rawDataBufferPos++;
+                 *(rawDataBufferPos) = tmpData[sample] - (Int_t)baseline;
                }
+             rawDataBufferPos++;
            }
          if(fDoSelectiveReadOut)
            {
-             if(validCellPtr->fEnergy > fSelectiveReadOutThresholds[x][z][gain])
+             if(validCellPtr->fEnergy > fSelectiveReadOutThresholds[fOutPtr->fValidData[tmpChannelCnt].fX][fOutPtr->fValidData[tmpChannelCnt].fZ][fOutPtr->fValidData[tmpChannelCnt].fGain])
                {
                  fSelectedChannelsList[nSelected] = (AliHLTUInt16_t)(fAltroDataPtr->GetHadd());
                  nSelected++;
                }
            }
 
-         UInt_t tmpSize =  sizeof(Int_t)*(validCellPtr->fNSamples);
-         mysize += tmpSize;
-         rawDataBufferPos += tmpSize/sizeof(Int_t);
+         //      UInt_t tmpSize =  sizeof(Int_t)*(fOutPtr->fValidData[tmpChannelCnt].fNSamples);
+         //      mysize += sizeof(Int_t)*(fOutPtr->fValidData[tmpChannelCnt].fNSamples);
+         //mysize += tmpSize;
+         //rawDataBufferPos += tmpSize/sizeof(Int_t);
+         
+         
          tmpChannelCnt ++;
        }
-      
-      fOutPtr->fCnt  = tmpChannelCnt;
-      fOutPtr->fSize = mysize;
-      
-      if(fDoPushCellEnergies)
+
+      mysize += tmpSize*4;
+      //      cout << "mysize: " << mysize << " - tmpSize: " << 
+
+      if(fDoPushRawData)
        {
-         //      cout << "AliHLTPHOSRawAnalyzerComponent::DoEvent, pushing cell energies"   << endl;
-         AliHLTComponentBlockData bdCellEnergy;
-         FillBlockData( bdCellEnergy );
-         bdCellEnergy.fOffset = offset;
-         bdCellEnergy.fSize = mysize;
-         bdCellEnergy.fDataType = AliHLTPHOSDefinitions::fgkCellEnergyDataType;
-         bdCellEnergy.fSpecification = specification;
-         outputBlocks.push_back( bdCellEnergy );
-         
-         tSize += mysize;
-         outBPtr += mysize;
+         fOutPtr->fHasRawData = true;
        }
       else
        {
-         cout << "AliHLTPHOSRawAnalyzerComponent::DoEvent, WARNING we are not pushing cell energies"   << endl;
+         fOutPtr->fHasRawData = false;
        }
       
+      fOutPtr->fCnt  = tmpChannelCnt;
+      fOutPtr->fSize = mysize;
+
+      AliHLTComponentBlockData bdCellEnergy;
+      FillBlockData( bdCellEnergy );
+      bdCellEnergy.fOffset = offset;
+      bdCellEnergy.fSize = mysize;
+      bdCellEnergy.fDataType = AliHLTPHOSDefinitions::fgkCellEnergyDataType;
+      bdCellEnergy.fSpecification = specification;
+      outputBlocks.push_back( bdCellEnergy );
       
-      //Making Digits
-      if(fDoMakeDigits)
-       {
-         Int_t digitSize = 0;
-         fDigitMakerPtr->SetDigitContainerStruct((AliHLTPHOSDigitContainerDataStruct*)outBPtr);          
-         digitCount = fDigitMakerPtr->MakeDigits(fOutPtr);
-         offset = tSize;
-         digitSize += sizeof(AliHLTPHOSDigitContainerDataStruct);
-         
-         AliHLTComponentBlockData bdDigits;
-         FillBlockData(bdDigits);
-         bdDigits.fOffset = offset;
-         bdDigits.fSize = mysize;
-         bdDigits.fDataType = AliHLTPHOSDefinitions::fgkDigitDataType;
-         bdDigits.fSpecification = specification;
-         outputBlocks.push_back( bdDigits );
-         
-         tSize += digitSize;
-         outBPtr += digitSize;
-         fDigitMakerPtr->Reset();
-       }      
+      tSize += mysize;
+      outBPtr += mysize;
                   
       //Pushing selected channel addresses
       if(fDoSelectiveReadOut)
@@ -369,7 +337,6 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData
          Logging(kHLTLogBenchmark, __FILE__ , IntToChar(  __LINE__ ) , "Analyzing event %lu", fPhosEventCount);
        }  
  
-
    }
 
   return 0;
@@ -390,6 +357,7 @@ AliHLTPHOSRawAnalyzerComponent::DoInit( int argc, const char** argv )
   fPrintInfo = kFALSE;
   int iResult=0;
   TString argument="";
+  const int nSigmas = 3;
   fMapperPtr = new AliHLTPHOSMapper();
  
   if(fMapperPtr->GetIsInitializedMapping() == false)
@@ -398,42 +366,25 @@ AliHLTPHOSRawAnalyzerComponent::DoInit( int argc, const char** argv )
       return -4;
     }
 
-  const int nSigmas = 3;
-  
-  fDigitMakerPtr = new AliHLTPHOSDigitMaker();
-  char tmprmsfile[256];
-  if (fUtilitiesPtr->ScanSingleNameArgument(argc, argv, "-rmsfilepath", tmprmsfile) == true)
-    {
-      fDigitMakerPtr->SetDigitThresholds( tmprmsfile, nSigmas);
-      SetSelectiveReadOutThresholds( tmprmsfile, nSigmas);
-    }
-
   char tmpbaselinfile[256];
   if(fUtilitiesPtr->ScanSingleNameArgument(argc, argv, "-baselinefile", tmpbaselinfile) == true  )
     {
       SetBaselines(tmpbaselinfile);
     }
-
-  float tmpLGFactor = 0;
-  if(fUtilitiesPtr->ScanSingleFloatArgument(argc, argv, "-lowgainfactor", &tmpLGFactor) == true)
-    {
-      fDigitMakerPtr->SetGlobalLowGainFactor(tmpLGFactor);
-    } 
-
   
-  float tmpHGFactor = 0;
-  if(fUtilitiesPtr->ScanSingleFloatArgument(argc, argv, "-lowgainfactor", &tmpHGFactor) == true )
+  char tmpSelectiveThresholdfile[256];
+  if(fUtilitiesPtr->ScanSingleNameArgument(argc, argv, "-baselinefile", tmpSelectiveThresholdfile) == true  )
     {
-      fDigitMakerPtr->SetGlobalHighGainFactor(tmpHGFactor);
-    }   
+      fDoSelectiveReadOut = true;
+      SetSelectiveReadOutThresholds(tmpSelectiveThresholdfile, nSigmas);
+    }
+
 
-  fDoSelectiveReadOut = fUtilitiesPtr->ScanSingleArgument(argc, argv, "-selectivereadout");
-  fDoMakeDigits         = fUtilitiesPtr->ScanSingleArgument(argc, argv, "-makedigits");                 
+  //fDoSelectiveReadOut = fUtilitiesPtr->ScanSingleNameArgument(argc, argv, "-selectivereadout");
 
-  //  CRAP PTH
-  //  fDoPushCellEnergies = fUtilitiesPtr->ScanSingleArgument(argc, argv, "-pushcellenergies");
-  fDoPushCellEnergies = true;
+  fDoPushRawData = fUtilitiesPtr->ScanSingleArgument(argc, argv, "-pushrawdata");
+
+  fDoPushRawData = true; //CRAP
 
   fDoCheckDataSize = fUtilitiesPtr->ScanSingleArgument(argc, argv, "-checkdatasize");
  
@@ -448,6 +399,7 @@ AliHLTPHOSRawAnalyzerComponent::Reset(AliHLTPHOSRcuCellEnergyDataStruct* cellDat
   //comment
   //  for(unsigned int mod = 0; mod < N_MODULES; mod ++)
   //{
+  /*
   for(int x = 0; x < N_XCOLUMNS_RCU; x ++)
     {
 
@@ -461,7 +413,7 @@ AliHLTPHOSRawAnalyzerComponent::Reset(AliHLTPHOSRcuCellEnergyDataStruct* cellDat
            }
        }
     }
-  
+  */
   ResetDataPtr(0, ALTRO_MAX_SAMPLES);
 
 } // end Reset
index e6e61eba61537e1dabc24a0d9647fc0beab38759..a36a3eea1c213dd79cf9c246f064d1571e2cef49 100644 (file)
@@ -119,6 +119,8 @@ int  AliHLTPHOSRcuAltroPatternTestComponent::DoEvent( const AliHLTComponentEvent
       fShmPtr->SetMemory(cellDataPtr);
       currentChannel = fShmPtr->NextChannel();
       
+      Int_t* tmpRawPtr = 0;
+     
       int tmp =0;      
       while(currentChannel != 0)
        {
@@ -126,7 +128,8 @@ int  AliHLTPHOSRcuAltroPatternTestComponent::DoEvent( const AliHLTComponentEvent
          int tmpZ =  currentChannel->fZ;
          int tmpX =  currentChannel->fX;
          int tmpGain =  currentChannel->fGain;
-         int tmpSamples = currentChannel->fNSamples; 
+         int tmpSamples = 0;
+         tmpRawPtr = fShmPtr->GetRawData(tmpSamples); 
          
          
          if( (tmpZ > N_ZROWS_RCU) || (tmpX > N_XCOLUMNS_RCU) || (tmpGain > N_GAINS))
@@ -142,13 +145,13 @@ int  AliHLTPHOSRcuAltroPatternTestComponent::DoEvent( const AliHLTComponentEvent
          //      cout << "  z = " << currentChannel->fZ << "  x = "  << currentChannel->fX  << "  gain = " <<  currentChannel->fGain  << "  samples =" << currentChannel->fNSamples  <<endl;
          tmp ++;
 
-         fPatternTestPtr->AddPattern(currentChannel->fData, currentChannel->fZ, currentChannel->fX,  currentChannel->fGain, currentChannel->fNSamples, fNPresamples);
-         int ret =  fPatternTestPtr->ValidateAltroPattern(currentChannel->fData, currentChannel->fNSamples);
+         fPatternTestPtr->AddPattern(tmpRawPtr, currentChannel->fZ, currentChannel->fX,  currentChannel->fGain, tmpSamples, fNPresamples);
+         int ret =  fPatternTestPtr->ValidateAltroPattern(tmpRawPtr, tmpSamples);
          
          if(ret >= 0)
            {
              
-             fNTotalSamples += currentChannel->fNSamples;
+             fNTotalSamples += tmpSamples;
              fNTotalPatterns ++;   
 
              if(ret > 0)
index 3a6b98c991f9c6efbfe632a3e74332c88132676d..ec9b5588817f21025f7571caecc48e337dcb796a 100644 (file)
@@ -137,10 +137,14 @@ Int_t AliHLTPHOSRcuCalibrationProcessorComponent::ProcessCalibration(const AliHL
       fShmPtr->SetMemory(cellDataPtr);
       currentChannel = fShmPtr->NextChannel();
       
+      Int_t* tmpDataPtr = 0;
+      Int_t nSamples = 0;
+
        while(currentChannel != 0)
        {
+         tmpDataPtr = fShmPtr->GetRawData(nSamples);
          fRcuCalibProcessorPtr->FillEnergy(currentChannel->fX, currentChannel->fZ, currentChannel->fGain, currentChannel->fEnergy);
-         fRcuCalibProcessorPtr->FillLiveChannels(currentChannel->fData, totalSamples, currentChannel->fX, currentChannel->fZ,currentChannel->fGain);
+         fRcuCalibProcessorPtr->FillLiveChannels(tmpDataPtr, totalSamples, currentChannel->fX, currentChannel->fZ,currentChannel->fGain);
          currentChannel = fShmPtr->NextChannel();
        }
 
index a2befe3f1515302176d2ac85848e654cead819bd..958b287bad9b4bfc81ea93b8dc22f6a5fe794731 100644 (file)
@@ -150,6 +150,7 @@ Int_t AliHLTPHOSRcuDAComponent::ProcessCalibration(const AliHLTComponentEventDat
   iter = GetFirstInputBlock( AliHLTPHOSDefinitions::fgkCellEnergyDataType | kAliHLTDataOriginPHOS);
 
   AliHLTPHOSRcuCellEnergyDataStruct* cellDataPtr = 0;
+  AliHLTPHOSValidCellDataStruct *currentChannel =0;
   Int_t xOffset = 0;
   Int_t zOffset = 0;
   Int_t module = -1;
@@ -166,17 +167,27 @@ Int_t AliHLTPHOSRcuDAComponent::ProcessCalibration(const AliHLTComponentEventDat
       xOffset = cellDataPtr->fRcuX*N_XCOLUMNS_RCU;
       zOffset = cellDataPtr->fRcuZ*N_ZROWS_RCU;
 
-      for(Int_t x = 0; x < N_XCOLUMNS_RCU; x++)
+      while(currentChannel != 0)
        {
-         for(Int_t z = 0; z < N_ZROWS_RCU; z++)
-           {
-             for(Int_t gain = 0; gain < N_GAINS; gain++)
-               {
-                 energyArray[x+xOffset][z+zOffset][gain] = cellDataPtr->fValidData[x][z][gain].fEnergy;
-                 timeArray[x+xOffset][z+zOffset][gain] = cellDataPtr->fValidData[x][z][gain].fTime;
-               }
-           }
+         Int_t tmpZ =  currentChannel->fZ;
+         Int_t tmpX =  currentChannel->fX;
+         Int_t tmpGain =  currentChannel->fGain;
+         
+         energyArray[tmpX+xOffset][tmpZ+zOffset][tmpGain] = currentChannel->fEnergy;
+         timeArray[tmpX+xOffset][tmpZ+zOffset][tmpGain] = currentChannel->fTime;
        }
+
+//       for(Int_t x = 0; x < N_XCOLUMNS_RCU; x++)
+//     {
+//       for(Int_t z = 0; z < N_ZROWS_RCU; z++)
+//         {
+//           for(Int_t gain = 0; gain < N_GAINS; gain++)
+//             {
+//               energyArray[x+xOffset][z+zOffset][gain] = cellDataPtr->fValidData[x][z][gain].fEnergy;
+//               timeArray[x+xOffset][z+zOffset][gain] = cellDataPtr->fValidData[x][z][gain].fTime;
+//             }
+//         }
+//     }
       iter = GetNextInputBlock(); 
     }
   
index 1e0147a16a88293ba621418947d710260b6ff0be..cb6f25b51bbfdc2af2de8c3fdd26096dd63de45f 100644 (file)
@@ -128,12 +128,24 @@ int  AliHLTPHOSRcuHistogramProducerComponent::DoEvent( const AliHLTComponentEven
       cellDataPtr = (AliHLTPHOSRcuCellEnergyDataStruct*)( iter->fPtr);
       fShmPtr->SetMemory(cellDataPtr);
       currentChannel = fShmPtr->NextChannel();
-
-      while(currentChannel != 0)
+      
+      Int_t* tmpDataPtr = 0;
+      Int_t nSamples = 0;
+      if(cellDataPtr->fHasRawData == true)
+       {
+         while(currentChannel != 0)
+           {
+             tmpDataPtr = fShmPtr->GetRawData(nSamples);
+             fRcuHistoProducerPtr->FillEnergy(currentChannel->fX, currentChannel->fZ, currentChannel->fGain, currentChannel->fEnergy);
+             fRcuHistoProducerPtr->FillLiveChannels(tmpDataPtr, nSamples, currentChannel->fX, currentChannel->fZ,currentChannel->fGain);
+             currentChannel = fShmPtr->NextChannel();
+           }
+       }
+      else
        {
-         fRcuHistoProducerPtr->FillEnergy(currentChannel->fX, currentChannel->fZ, currentChannel->fGain, currentChannel->fEnergy);
-         fRcuHistoProducerPtr->FillLiveChannels(currentChannel->fData, fNTotalSamples, currentChannel->fX, currentChannel->fZ,currentChannel->fGain);
-         currentChannel = fShmPtr->NextChannel();
+         
+         Logging(kHLTLogFatal, __FILE__ , IntToChar(  __LINE__ ) , "AliHLTPHOSRcuHistogramProducerComponent::We are not pushing raw data, aborting");
+         return -1;
        }
     }