#define ALIPHOSCOMMONDEFS_H
//Hardware constants
-#define PHOS_RCUS 4 /**<Number of RCUs per Module*/
-#define PHOS_BRANCHES 2 /**<Number of branches per RCU*/
-#define PHOS_FEECS 14 /**<Number of Frontend cards per branch*/
-#define PHOS_ALTROS 4 /**<Number of ALTROs per frontend card*/
-#define PHOS_ALTROCHANNELS 16 /**<Number of readout channles per ALTRO*/
+#define N_RCUS 4 /**<Number of RCUs per Module*/
+#define N_BRANCHES 2 /**<Number of branches per RCU*/
+#define N_FEECS 14 /**<Number of Frontend cards per branch*/
+#define N_ALTROS 4 /**<Number of ALTROs per frontend card*/
+#define N_ALTROCHANNELS 16 /**<Number of readout channles per ALTRO*/
//Geometry constants
-#define PHOS_MODULES 5 /**<Number of modules of the PHOS detector*/
-#define PHOS_ROWS 64 /**<Number of rows per module*/
-#define PHOS_COLUMNS 56 /**<Number of columns per module*/
-#define PHOS_GAINS 2 /**<Number of gains per ALTRO channel*/
+#define N_MODULES 5 /**<Number of modules of the PHOS detector*/
+#define N_ROWS_MOD 64 /**<Number of rows per module*/
+#define N_COLUMNS_MOD 56 /**<Number of columns per module*/
+#define N_ROWS_RCU 32 /**<Number of rows per module*/
+#define N_COLUMNS_RCU 28 /**<Number of columns per module*/
+#define N_GAINS 2 /**<Number of gains per ALTRO channel*/
#endif
#include "AliHLTPHOSDefinitions.h"
-//ClassImp(AliHLTPHOSDefinitions)
-
const AliHLTComponentDataType AliHLTPHOSDefinitions::gkDDLPackedRawDataType = { sizeof(AliHLTComponentDataType), {'D','D','L','_','R','W','P','K'},{'P','H','O','S'}};;
const AliHLTComponentDataType AliHLTPHOSDefinitions::gkCellEnergyDataType = { sizeof(AliHLTComponentDataType), {'C','E','L','L','E','N','E','R'},{'P','H','O','S'}};;
-//const AliHLTComponentDataType AliHLTPHOSDefinitions::gkPackedRawDataType = { sizeof(AliHLTComponentDataType), {'R','A','W','P','A','K','E','D'},{'P','H','O','S'}};;
-//const AliHLTComponentDataType AliHLTPHOSDefinitions::gkUnpackedRawDataType = { sizeof(AliHLTComponentDataType), {'R','A','W','U','N','P','A','K'},{'P','H','O','S'}};;
-//const AliHLTComponentDataType AliHLTPHOSDefinitions::gkClustersDataType = { sizeof(AliHLTComponentDataType), {'C','L','U','S','T','E','R','S'},{'P','H','O','S'}};;
-//const AliHLTComponentDataType AliHLTPHOSDefinitions::gkVertexDataType = { sizeof(AliHLTComponentDataType), {'V','E','R','T','E','X',' ',' '},{'P','H','O','S'}};;
-//const AliHLTComponentDataType AliHLTPHOSDefinitions::gkTrackSegmentsDataType = { sizeof(AliHLTComponentDataType),{'T','R','A','K','S','E','G','S'},{'P','H','O','S'}};;
+
SetTitle(calibda.GetName());
- // for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
- for(Int_t module=0; module<PHOS_MODULES; module++) {
- for(Int_t column=0; column< PHOS_COLUMNS; column++) {
- for(Int_t row=0; row<PHOS_ROWS; row++) {
- for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
+ // for(Int_t gain = 0; gain < N_GAINS; gain ++){
+ for(Int_t module=0; module<N_MODULES; module++) {
+ for(Int_t column=0; column< N_COLUMNS_MOD; column++) {
+ for(Int_t row=0; row<N_ROWS_MOD; row++) {
+ for(Int_t gain = 0; gain < N_GAINS; gain ++){
fADCchannelEnergy[module][column][row][gain] = calibda.fADCchannelEnergy[module][column][row][gain];
fADCpedestalEmcMeasured[module][column][row][gain] = calibda.fADCpedestalEmcMeasured[module][column][row][gain];
}
SetName(calibda.GetName());
SetTitle(calibda.GetName());
- // for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
- for(Int_t module=0; module<PHOS_MODULES; module++) {
- for(Int_t column=0; column< PHOS_COLUMNS; column++) {
- for(Int_t row=0; row<PHOS_ROWS; row++) {
- for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
+ // for(Int_t gain = 0; gain < N_GAINS; gain ++){
+ for(Int_t module=0; module<N_MODULES; module++) {
+ for(Int_t column=0; column< N_COLUMNS_MOD; column++) {
+ for(Int_t row=0; row<N_ROWS_MOD; row++) {
+ for(Int_t gain = 0; gain < N_GAINS; gain ++){
fADCchannelEnergy[module][column][row][gain] = calibda.fADCchannelEnergy[module][column][row][gain];
fADCpedestalEmcMeasured[module][column][row][gain] = calibda.fADCpedestalEmcMeasured[module][column][row][gain];
}
// Set all pedestals and all ADC channels to its ideal values = 1.
// for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
- for (Int_t module=0; module<PHOS_MODULES; module++){
- for (Int_t column=0; column< PHOS_COLUMNS; column++){
- for (Int_t row=0; row<PHOS_ROWS; row++){
- for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
+ for (Int_t module=0; module<N_MODULES; module++){
+ for (Int_t column=0; column< N_COLUMNS_MOD; column++){
+ for (Int_t row=0; row<N_ROWS_MOD; row++){
+ for(Int_t gain = 0; gain < N_GAINS; gain ++){
fADCpedestalEmcMeasured[module][column][row][gain] = 0.;
fADCchannelEnergy[module][column][row][gain] = 1.;
}
if (strstr(option,"ped")) {
printf("\n ---- EMC Pedestal values ----\n\n");
- // for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
- for (Int_t module=0; module<PHOS_MODULES; module++){
+ // for(Int_t gain = 0; gain < N_GAINS; gain ++){
+ for (Int_t module=0; module<N_MODULES; module++){
printf("============== Module %d\n",module+1);
- for (Int_t column=0; column< PHOS_COLUMNS; column++){
- for (Int_t row=0; row<PHOS_ROWS; row++){
- for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
+ for (Int_t column=0; column< N_COLUMNS_MOD; column++){
+ for (Int_t row=0; row<N_ROWS_MOD; row++){
+ for(Int_t gain = 0; gain < N_GAINS; gain ++){
printf("%4.1f",fADCpedestalEmcMeasured[module][column][row][gain]);
}
printf("\n");
if (strstr(option,"gain")) {
printf("\n ---- EMC ADC channel values ----\n\n");
- // for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
- for (Int_t module=0; module<PHOS_MODULES; module++){
+ // for(Int_t gain = 0; gain < N_GAINS; gain ++){
+ for (Int_t module=0; module<N_MODULES; module++){
printf("============== Module %d\n",module+1);
- for (Int_t column=0; column< PHOS_COLUMNS; column++){
- for (Int_t row=0; row<PHOS_ROWS; row++){
- for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
+ for (Int_t column=0; column< N_COLUMNS_MOD; column++){
+ for (Int_t row=0; row<N_ROWS_MOD; row++){
+ for(Int_t gain = 0; gain < N_GAINS; gain ++){
printf("%4.1f",fADCchannelEnergy[module][column][row][gain]);
}
printf("\n");
void
AliHLTPHOSEmcCalibData::MakeADCpedestalCorrectionTable()
{
- for (Int_t module=0; module<PHOS_MODULES; module++){
+ for (Int_t module=0; module<N_MODULES; module++){
printf("============== Module %d\n",module+1);
- for (Int_t column=0; column< PHOS_COLUMNS; column++){
- for (Int_t row=0; row<PHOS_ROWS; row++){
- for(Int_t gain = 0; gain < PHOS_GAINS; gain ++){
+ for (Int_t column=0; column< N_COLUMNS_MOD; column++){
+ for (Int_t row=0; row<N_ROWS_MOD; row++){
+ for(Int_t gain = 0; gain < N_GAINS; gain ++){
fADCpedestalCorrectionTable[module][column][row][gain] = fADCpedestalEmcMeasured[module][column][row][gain] - fADCpedestalAltroReg[module][column][row][gain];
// printf("%4.1f",fADCchannelEnergy[module][column][row][gain]);
//
void SetADCpedestalEmcMeasured(Int_t module, Int_t column, Int_t row, Int_t gain, Float_t value);
void MakeADCpedestalCorrectionTable();
protected:
- Float_t fADCchannelEnergy[PHOS_MODULES][PHOS_COLUMNS][PHOS_ROWS][PHOS_GAINS] ; /**<width of one EMC ADC channel in GeV*/
- Float_t fADCpedestalEmcMeasured[PHOS_MODULES][PHOS_COLUMNS][PHOS_ROWS][PHOS_GAINS] ; /**<value of the EMC ADC pedestal measured from calibration run*/
- Int_t fADCpedestalAltroReg[PHOS_MODULES][PHOS_COLUMNS][PHOS_ROWS][PHOS_GAINS] ; /**<value of the EMC ADC pedestal subtraction values stored in the ALTRO registers*/
- Float_t fADCpedestalCorrectionTable[PHOS_MODULES][PHOS_COLUMNS][PHOS_ROWS][PHOS_GAINS] ; /**<value of the EMC ADC pedestal values to be subtracted form the decoed cahnnel data (= fADCpedestalEmcMeasured - fADCpedestalAltroReg)*/
+ Float_t fADCchannelEnergy[N_MODULES][N_COLUMNS_MOD][N_ROWS_MOD][N_GAINS] ; /**<width of one EMC ADC channel in GeV*/
+ Float_t fADCpedestalEmcMeasured[N_MODULES][N_COLUMNS_MOD][N_ROWS_MOD][N_GAINS] ; /**<value of the EMC ADC pedestal measured from calibration run*/
+ Int_t fADCpedestalAltroReg[N_MODULES][N_COLUMNS_MOD][N_ROWS_MOD][N_GAINS] ; /**<value of the EMC ADC pedestal subtraction values stored in the ALTRO registers*/
+ Float_t fADCpedestalCorrectionTable[N_MODULES][N_COLUMNS_MOD][N_ROWS_MOD][N_GAINS] ; /**<value of the EMC ADC pedestal values to be subtracted form the decoed cahnnel data (= fADCpedestalEmcMeasured - fADCpedestalAltroReg)*/
ClassDef(AliHLTPHOSEmcCalibData,1) // PHOS EMC calibration data
};
#pragma link C++ class AliHLTPHOSRawAnalyzerLMS+;
#pragma link C++ class AliHLTPHOSPulseGenerator+;
#pragma link C++ class AliHLTPHOSEmcCalibData+;
-#pragma link C++ AliHLTPHOSDefinitions+;
+#pragma link C++ class AliHLTPHOSDefinitions+;
+#pragma link C++ class AliHLTPHOSValiCellDataStruct+;
//#pragma link C++ class AliHLTPHOSRawAnalyzerComponent+;
//#pragma link C++ class AliHLTPHOSRawAnalyzerPeakFinderComponent+;
//#pragma link C++ class AliHLTPHOSRawAnalyzerCrudeComponent+;
+++ /dev/null
-#ifndef ALIHLTPHOSNODULECELLENERGYDATA_H
-#define ALIHLTPHOSNODULECELLENERGYDATA_H
-
-struct AliHLTPHOSModuleCellEnergyData
-{
- AliHLTUInt8_t fModuleID;
- unsigned long cellEnergies[64][56][2];
-};
-
-
-#endif
--- /dev/null
+#ifndef ALIHLTPHOSNODULECELLENERGYDATASTRUCT_H
+#define ALIHLTPHOSNODULECELLENERGYDATASTRUCT_H
+
+#include "AliHLTPHOSCommonDefs.h"
+
+struct AliHLTPHOSModuleCellEnergyDataStruct
+{
+ AliHLTUInt8_t fModuleID;
+ AliHLTUInt16_t fCnt;
+ AliHLTUInt16_t fValidData[N_ROWS_MOD*N_COLUMNS_MOD*N_GAINS];
+ unsigned long cellEnergies[N_ROWS_MOD][N_COLUMNS_MOD][N_GAINS];
+};
+
+
+#endif
#include "AliRawReaderMemory.h"
#include "AliCaloRawStream.h"
#include <cstdlib>
-#include "AliHLTPHOSRcuCellEnergyData.h"
+#include "AliHLTPHOSRcuCellEnergyDataStruct.h"
const AliHLTComponentDataType AliHLTPHOSModuleMergerComponent::inputDataTypes[]={kAliHLTVoidDataType,{0,"",""}}; //'zero' terminated array
{
unsigned long ndx;
const AliHLTComponentBlockData* iter = NULL;
- AliHLTPHOSRcuCellEnergyData *cellDataPtr;
+ AliHLTPHOSRcuCellEnergyDataStruct *cellDataPtr;
Reset();
int tmpRcuZ = 0;
iter = blocks+ndx;
- AliHLTPHOSRcuCellEnergyData *cellDataPtr = (AliHLTPHOSRcuCellEnergyData*)( iter->fPtr);
+ AliHLTPHOSRcuCellEnergyDataStruct *cellDataPtr = (AliHLTPHOSRcuCellEnergyDataStruct*)( iter->fPtr);
tmpModuleID = cellDataPtr->fModuleID;
tmpRcuX = cellDataPtr->fRcuX ;
#include "AliRawReaderMemory.h"
#include "AliCaloRawStream.h"
#include <cstdlib>
-#include "AliHLTPHOSRcuCellEnergyData.h"
+#include "AliHLTPHOSRcuCellEnergyDataStruct.h"
const AliHLTComponentDataType AliHLTPHOSRawAnalyzerComponent::inputDataTypes[]={kAliHLTVoidDataType,{0,"",""}}; //'zero' terminated array
AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks )
{
- Int_t tmpMod = 0;
- Int_t tmpRow = 0;
- Int_t tmpCol = 0;
- Int_t tmpGain = 0;
+ Int_t tmpMod = 0;
+ Int_t tmpRow = 0;
+ Int_t tmpCol = 0;
+ Int_t tmpGain = 0;
+ Int_t sampleCnt = 0;
Int_t processedChannels = 0;
- UInt_t offset = 0;
- UInt_t mysize = 0;
- UInt_t tSize = 0;
- AliHLTPHOSRcuCellEnergyData* outPtr;
+ UInt_t offset = 0;
+ UInt_t mysize = 0;
+ UInt_t tSize = 0;
+
+ // AliHLTPHOSRcuCellEnergyDataStruct
+ AliHLTPHOSRcuCellEnergyDataStruct* outPtr;
AliHLTUInt8_t* outBPtr;
outBPtr = outputPtr;
const AliHLTComponentBlockData* iter = NULL;
continue;
}
- fRawMemoryReader->SetMemory( reinterpret_cast<UChar_t*>( iter->fPtr ), iter->fSize );
- analyzerPtr->SetData(fTmpChannelData);
-
- outPtr = (AliHLTPHOSRcuCellEnergyData*)outBPtr;
- mysize += sizeof(AliHLTPHOSRcuCellEnergyData);
-
- outPtr->fRcuX = fRcuX;
- outPtr->fRcuZ = fRcuZ;
- outPtr->fModuleID = fModuleID;
+ fRawMemoryReader->SetMemory( reinterpret_cast<UChar_t*>( iter->fPtr ), iter->fSize );
+ analyzerPtr->SetData(fTmpChannelData);
+ outPtr = (AliHLTPHOSRcuCellEnergyDataStruct*)outBPtr;
+ mysize += sizeof(AliHLTPHOSRcuCellEnergyDataStruct);
+ outPtr->fRcuX = fRcuX;
+ outPtr->fRcuZ = fRcuZ;
+ outPtr->fModuleID = fModuleID;
+ outPtr->fCnt = 0;
while(fPHOSRawStream->Next())
{
if(processedChannels > 0)
{
analyzerPtr->SetData(fTmpChannelData);
- analyzerPtr->Evaluate(0, 1008);
+ // cout << "sampleCnt = " << sampleCnt << endl;
+ analyzerPtr->Evaluate(0, sampleCnt);
fMaxValues[tmpMod][tmpRow][tmpCol][tmpGain] = analyzerPtr->GetEnergy();
+
+ // outPtr->fValidData[fCnt] = ;
+ outPtr->fCnt ++;
+ //fCnt;
outPtr->fCellEnergies[tmpRow - fRcuRowOffeset][tmpCol - fRcuColOffeset][tmpGain] = fMaxValues[tmpMod][tmpRow][tmpCol][tmpGain];
+ sampleCnt = 0;
ResetDataPtr();
+
}
tmpMod = fPHOSRawStream->GetModule();
tmpRow = fPHOSRawStream->GetRow();
tmpCol = fPHOSRawStream->GetColumn();
tmpGain = fPHOSRawStream->IsLowGain();
+
processedChannels ++;
}
-
-
fTmpChannelData[fPHOSRawStream->GetTime()] = fPHOSRawStream->GetSignal();
+ sampleCnt ++;
}
class AliHLTPHOSRawAnalyzerComponent: public AliHLTProcessor
{
public:
+
AliHLTPHOSRawAnalyzerComponent();
~AliHLTPHOSRawAnalyzerComponent();
AliHLTPHOSRawAnalyzerComponent(const AliHLTPHOSRawAnalyzerComponent & );
+++ /dev/null
-#ifndef ALIHLTPHOSRCUCELLENERGYDATA_H
-#define ALIHLTPHOSRCUCELLENERGYDATA_H
-
-//#include "AliHLTDataTypes.h"
-//#include "Rtypes.h"
-
-struct AliHLTPHOSRcuCellEnergyData
-{
- AliHLTUInt16_t fRcuX;
- AliHLTUInt16_t fRcuZ;
- AliHLTUInt16_t fModuleID;
-
- Double_t fCellEnergies[32][28][2];
-
-};
-
-
-#endif
--- /dev/null
+#ifndef ALIHLTPHOSRCUCELLENERGYDATASTRUCT_H
+#define ALIHLTPHOSRCUCELLENERGYDATASTRUCT_H
+
+#include "AliHLTPHOSCommonDefs.h"
+#include "AliHLTPHOSValidCellDataStruct.h"
+
+struct AliHLTPHOSRcuCellEnergyDataStruct
+{
+ AliHLTUInt16_t fRcuX;
+ AliHLTUInt16_t fRcuZ;
+ AliHLTUInt16_t fModuleID;
+ AliHLTUInt16_t fCnt;
+ AliHLTPHOSValiCellDataStruct fValidData;
+ Double_t fCellEnergies[ N_ROWS_RCU][ N_COLUMNS_RCU][N_GAINS];
+
+};
+
+
+#endif
--- /dev/null
+#ifndef ALIHLTPHOSVALIDCELLDATASTRUCT_H
+#define ALIHLTPHOSVALIDCELLDATASTRUCT_H
+
+#include "AliHLTPHOSCommonDefs.h"
+//#include "AliHLTDataTypes.h"
+//#include "Rtypes.h"
+
+struct AliHLTPHOSValiCellDataStruct
+{
+ AliHLTUInt16_t fRcuX;
+ AliHLTUInt16_t fRcuZ;
+ AliHLTUInt16_t fModuleID;
+ AliHLTUInt16_t fRow;
+ AliHLTUInt16_t fCol;
+ AliHLTUInt16_t fGain;
+};
+
+
+#endif
AliHLTPHOSRawAnalyzerPeakFinderComponent.h \
AliHLTPHOSDefinitions.h \
AliHLTPHOSModuleMergerComponent.h \
- AliHLTPHOSRcuCellEnergyData.h \
- AliHLTPHOSModuleCellEnergyData.h
-
+ AliHLTPHOSRcuCellEnergyDataStruct.h \
+ AliHLTPHOSModuleCellEnergyDataStruct.h\
+# AliHLTPHOSValidCellDataStruct.h
pkginclude_HEADERS = $(CLASS_HDRS) \
AliHLTPHOSCommonDefs.h