Added the most important Calo files, changed dependent files. Compiles. Calo library...
authorodjuvsla <odjuvsla@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 4 Nov 2009 01:56:13 +0000 (01:56 +0000)
committerodjuvsla <odjuvsla@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 4 Nov 2009 01:56:13 +0000 (01:56 +0000)
20 files changed:
HLT/CALO/AliHLTCaloChannelRawDataStruct.h
HLT/CALO/AliHLTCaloConstant.h [new file with mode: 0644]
HLT/CALO/AliHLTCaloConstants.cxx [new file with mode: 0644]
HLT/CALO/AliHLTCaloConstants.h
HLT/CALO/AliHLTCaloConstantsHandler.cxx [new file with mode: 0644]
HLT/CALO/AliHLTCaloConstantsHandler.h [new file with mode: 0644]
HLT/CALO/AliHLTCaloFourier.h
HLT/CALO/AliHLTCaloMapper.cxx
HLT/CALO/AliHLTCaloMapper.h
HLT/CALO/AliHLTCaloRawAnalyzerComponentv3.cxx
HLT/CALO/AliHLTCaloRawAnalyzerComponentv3.h
HLT/CALO/AliHLTCaloRawAnalyzerCrudeComponent.cxx
HLT/CALO/AliHLTCaloRawAnalyzerCrudeComponent.h
HLT/CALO/AliHLTCaloRawAnalyzerPeakFinderComponent.cxx
HLT/CALO/AliHLTCaloRawAnalyzerPeakFinderComponent.h
HLT/CALO/AliHLTCaloRcuFFTDataStruct.h
HLT/EMCAL/AliHLTEMCALRawAnalyzerComponent.cxx
HLT/PHOS/AliHLTPHOSConstant.h [moved from HLT/PHOS/AliHLTPHOSConstants.h with 100% similarity]
HLT/libAliHLTCalo.pkg
HLT/libAliHLTPHOS.pkg

index b9bb538aa4fe59fbaa16cbedcaebff96030f476d..8eaa62d06caba111ac986520075b11d64df62c8c 100644 (file)
@@ -22,7 +22,7 @@
 #include "AliHLTCaloChannelDataStruct.h"
 #include "AliHLTCaloCoordinate.h"
 #include "Rtypes.h"
-#include "AliHLTCaloConstants.h"
+#include "AliHLTCaloConstant.h"
 
 ///comment
 
diff --git a/HLT/CALO/AliHLTCaloConstant.h b/HLT/CALO/AliHLTCaloConstant.h
new file mode 100644 (file)
index 0000000..2fcbff8
--- /dev/null
@@ -0,0 +1,89 @@
+//-*- Mode: C++ -*-
+// $Id: AliHLTPHOSConstants.h 34622 2009-09-04 13:22:01Z odjuvsla $
+
+/**************************************************************************
+ * This file is property of and copyright by the Experimental Nuclear     *
+ * Physics Group, Dep. of Physics                                         *
+ * University of Oslo, Norway, 2006                                       *
+ *                                                                        * 
+ * Author: Per Thomas Hille perthi@fys.uio.no for the ALICE DCS Project.  *
+ * Contributors are mentioned in the code where appropriate.              *
+ * Please report bugs to perthi@fys.uio.no                                * 
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+#ifndef ALIHLTCALOCONSTANT_H
+#define ALIHLTCALOCONSTANT_H
+
+namespace CaloHLTConst
+{
+  const int MAXHOSTS = 20;
+  const int DEFAULTEVENTPORT = 42001;
+  const int MAXBINVALUE = 1023;
+  const int HIGHGAIN    =   1;
+  const int LOWGAIN     =   0;
+
+  const int ALTROMAXSAMPLES = 1008;                           /**<The maximum number of samples of the ALTRO*/
+  const int ALTROMAXPRESAMPLES = 15;        
+ //  const int ALTROMAXTRALERSIZE = 7;  
+  //  const int  DDLBLOCKSIZE = 5;
+
+  const int NZROWSRCU     =   56;                    /**<Number of rows per module*/       
+  const int NXCOLUMNSRCU  =   16; 
+  const int NZROWSMOD      =  56;                    /**<Number of rows per module*/       
+  const int NXCOLUMNSMOD   =  64;                 /**<Number of columns per module*/ 
+  const int NGAINS         =   2;                             /**<Number of gains per ALTRO channel*/
+  const int NDATATYPES     =   10;    
+
+  const int  PFMAXPATHLENGTH = 256;
+
+#ifndef __CINT__
+  const unsigned char PFVECTORDIR[] = "/HLT/PHOS/PFVectors";
+#endif
+
+  const int PFDEFAULTNSAMPLES = 70;
+  const int PFDEFAULTSTARTINDEX = 0;
+
+  const int DEFAULTTAU = 2;    /**<Assume that the signal rise time of the altrp pulses is 2 us (nominal value of the electronics)*/
+  const int  DEFAULTFS = 10;   /**<Assume that the signal is samples with 10 MHZ samle rate*/
+
+  const int MODULE0     = 0;
+  const int MODULE1     = 1;
+  const int MODULE2     = 2;
+  const int MODULE3     = 3;
+  const int MODULE4     = 4;
+
+  const int CSPSPERFEE    = 32;
+  const int RCU0       = 0;
+  const int RCU1       = 1;
+  const int RCU2       = 2;
+  const int RCU3       = 3;
+
+  const int Z0         = 0;
+  const int Z1         = 1;
+  const int X0         = 0;
+  const int X1         = 1;
+
+  const int NMODULES    =      5;                             /**<Number of modules of the PHOS detector*/
+  const int NRCUS       =      4;                             /**<Number of RCUs per Module*/
+  //              NRCUSPERMODULE
+  const int NRCUSPERMODULE =  4 ;                            /**<Number of RCUs per Module*/
+  const int NRCUSPERTOTAL =  NMODULES*NRCUSPERMODULE;   /**<Total number of RCUs for PHOS*/
+  const int NFEECS         =  14;                             /**<Number of Frontend cards per branch*/
+  const int NALTROS        =   4;                             /**<Number of ALTROs per frontend card*/
+  const int NALTROCHANNELS =  16;
+  const int NBRANCHES      =   2;      
+}
+
+
+#endif
+
+
diff --git a/HLT/CALO/AliHLTCaloConstants.cxx b/HLT/CALO/AliHLTCaloConstants.cxx
new file mode 100644 (file)
index 0000000..eb1d468
--- /dev/null
@@ -0,0 +1,12 @@
+#include "AliHLTCaloConstants.h"
+
+AliHLTCaloConstants::AliHLTCaloConstants()
+{
+  //Default constructor
+}
+
+AliHLTCaloConstants::~AliHLTCaloConstants()
+{
+  //Default destructor
+}
+
index 9df24799dee415fba14f025225f324c56f3ebf23..593d84ba93825325537403c2b86ff8e847d5e8ff 100644 (file)
@@ -1,14 +1,14 @@
 //-*- Mode: C++ -*-
-// $Id: AliHLTCALOConstants.h 34622 2009-09-04 13:22:01Z odjuvsla $
+// $Id: AliHLTCALOConstant.h 34622 2009-09-04 13:22:01Z odjuvsla $
 
 /**************************************************************************
  * This file is property of and copyright by the Experimental Nuclear     *
  * Physics Group, Dep. of Physics                                         *
- * University of Oslo, Norway, 2006                                       *
+ * University of Oslo, Norway, 2009                                       *
  *                                                                        * 
- * Author: Per Thomas Hille perthi@fys.uio.no for the ALICE DCS Project.  *
+ * Author: Svein Lindal, slindal@fys.uio.no for the ALICE PHOS Project.  *
  * Contributors are mentioned in the code where appropriate.              *
- * Please report bugs to perthi@fys.uio.no                                * 
+ * Please report bugs to slindal@fys.uio.no                                * 
  *                                                                        *
  * Permission to use, copy, modify and distribute this software and its   *
  * documentation strictly for non-commercial purposes is hereby granted   *
 #ifndef ALIHLTCALOCONSTANTS_H
 #define ALIHLTCALOCONSTANTS_H
 
-namespace CaloHLTConst
-{
-  //  const int ALTROMAXTRALERSIZE = 7;  
-  //  const int  DDLBLOCKSIZE = 5;
-
-  //  const int NZROWSRCU     =   56;                    /**<Number of rows per module*/       
-  //  const int NXCOLUMNSRCU  =   16; 
-  //  const int NZROWSMOD      =  56;                    /**<Number of rows per module*/       
-  //  const int NXCOLUMNSMOD   =  64;                 /**<Number of columns per module*/ 
-
-  // const int NGAINS         =   2;                             /**<Number of gains per ALTRO channel*/
-
-  const int NALTROS        =   4;                             /**<Number of ALTROs per frontend card*/
-  const int NALTROCHANNELS =  16;
-  const int NBRANCHES      =   2;      
-  const int CSPSPERFEE    = 32;
-  const int NGAINS         =   2;    
-  const int HIGHGAIN    =   1;
-  const int LOWGAIN     =   0;
-  const int MAXBINVALUE = 1023;
-  const int ALTROMAXSAMPLES = 1008;                           /**<The maximum number of samples of the ALTRO*/
-  const int ALTROMAXPRESAMPLES = 15;   
-  
-
-  //  const int NDATATYPES     =   10;    
-
-  //  const int  PFMAXPATHLENGTH = 256;
-
-
-#ifndef __CINT__
-  const unsigned char PFVECTORDIR[] = "/HLT/PHOS/PFVectors";
-#endif
-
-  //  const int PFDEFAULTNSAMPLES = 70;
-  //  const int PFDEFAULTSTARTINDEX = 0;
-
-  //  const int DEFAULTTAU = 2;    /**<Assume that the signal rise time of the altrp pulses is 2 us (nominal value of the electronics)*/
-  //  const int  DEFAULTFS = 10;   /**<Assume that the signal is samples with 10 MHZ samle rate*/
-
-  //  const int MODULE0     = 0;
-  //  const int MODULE1     = 1;
-  //  const int MODULE2     = 2;
-  // const int MODULE3     = 3;
-  // const int MODULE4     = 4;
-
-  //  const int CSPSPERFEE    = 32;
-
-  //  const int RCU0       = 0;
-  //  const int RCU1       = 1;
-  //  const int RCU2       = 2;
-  //  const int RCU3       = 3;
-
-  
-  //  const int Z0         = 0;
-  //  const int Z1         = 1;
-  //  const int X0         = 0;
-  //  const int X1         = 1;
-
-  //  const int NMODULES    =      5;                             /**<Number of modules of the PHOS detector*/
-  //  const int NRCUS       =      4;                             /**<Number of RCUs per Module*/
-  //              NRCUSPERMODULE
-
-  //  const int NRCUSPERMODULE =  4 ;                            /**<Number of RCUs per Module*/
-  //  const int NRCUSPERTOTAL =  NMODULES*NRCUSPERMODULE;   /**<Total number of RCUs for PHOS*/
-  //  const int NFEECS         =  14;                             /**<Number of Frontend cards per branch*/
-
-  
-  const int MAXHOSTS = 20;
-  const int DEFAULTEVENTPORT = 42001;
-}
 
+class AliHLTCaloConstants
+{
+public:
+  AliHLTCaloConstants();
+  virtual ~AliHLTCaloConstants();
+
+  virtual int GetMAXHOSTS() = 0;
+  virtual int GetDEFAULTEVENTPORT() = 0; 
+  virtual int GetMAXBINVALUE() = 0;
+  virtual int GetHIGHGAIN() = 0;
+  virtual int GetLOWGAIN() = 0;
+  virtual int GetALTROMAXSAMPLES() = 0;
+  virtual int GetALTROMAXPRESAMPLES() = 0;
+  virtual int GetNZROWSRCU() = 0;
+  virtual int GetNXCOLUMNSRCU() = 0;
+  virtual int GetNZROWSMOD() = 0;
+  virtual int GetNXCOLUMNSMOD() = 0;
+  virtual int GetNGAINS() = 0;
+  virtual int GetNDATATYPES() = 0;
+  virtual int GetPFMAXPATHLENGTH() = 0;
+  virtual int GetPFDEFAULTNSAMPLES() = 0;
+  virtual int GetPFDEFAULTSTARTINDEX() = 0;
+  virtual int GetDEFAULTTAU() = 0;
+  virtual int GetDEFAULTFS() = 0;
+  virtual int GetMODULE0() = 0;
+  virtual int GetMODULE1() = 0;
+  virtual int GetMODULE2() = 0;     
+  virtual int GetMODULE3() = 0;
+  virtual int GetMODULE4() = 0;
+  virtual int GetCSPSPERFEE() = 0;
+  virtual int GetRCU0() = 0;
+  virtual int GetRCU1() = 0;
+  virtual int GetRCU2() = 0;
+  virtual int GetRCU3() = 0;
+  virtual int GetZ0() = 0;
+  virtual int GetZ1() = 0;
+  virtual int GetX0() = 0;
+  virtual int GetX1() = 0;
+  virtual int GetNMODULES() = 0;
+  virtual int GetNRCUS() = 0;
+  virtual int GetNRCUSPERMODULE() = 0;
+  virtual int GetNRCUSPERTOTAL() = 0;
+  virtual int GetNFEECS() = 0;
+  virtual int GetNALTROS() = 0;
+  virtual int GetNALTROCHANNELS() = 0;
+  virtual int GetNBRANCHES() = 0;
+  virtual float GetCELLSTEP() = 0;
+
+// #ifndef __CINT__
+//   const unsigned char PFVECTORDIR[] = "/HLT/PHOS/PFVectors";
+// #endif
+
+
+
+
+};
 
 #endif
-
-
diff --git a/HLT/CALO/AliHLTCaloConstantsHandler.cxx b/HLT/CALO/AliHLTCaloConstantsHandler.cxx
new file mode 100644 (file)
index 0000000..69c1395
--- /dev/null
@@ -0,0 +1,46 @@
+// $Id: AliHLTCaloConstantsHandler.cxx 34223 2009-08-12 07:55:37Z richterm $
+
+//**************************************************************************
+//* This file is property of and copyright by the ALICE HLT Project        * 
+//* ALICE Experiment at CERN, All rights reserved.                         *
+//*                                                                        *
+//* Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no>        *
+//*                  for The ALICE HLT Project.                            *
+//*                                                                        *
+//* Permission to use, copy, modify and distribute this software and its   *
+//* documentation strictly for non-commercial purposes is hereby granted   *
+//* without fee, provided that the above copyright notice appears in all   *
+//* copies and that both the copyright notice and this permission notice   *
+//* appear in the supporting documentation. The authors make no claims     *
+//* about the suitability of this software for any purpose. It is          *
+//* provided "as is" without express or implied warranty.                  *
+//**************************************************************************
+
+/// @file   AliHLTCaloConstantsHandler.h
+/// @author Svein Lindal
+/// @date   2009-10-21
+/// @brief  Handler class that helps create an instance of the right 
+///         AliHLTCaloConstants child class 
+///         (e.g. AliHLTPHOSConstants or AliHLTEMCALConstants)
+
+
+#include "TString.h"
+#include "AliHLTCaloConstantsHandler.h"
+#include "AliHLTCaloConstants.h"
+#include "AliHLTMisc.h"
+
+AliHLTCaloConstantsHandler::AliHLTCaloConstantsHandler(TString det):
+ fCaloConstants(NULL)
+{
+  if (det.CompareTo("PHOS") == 0) {
+    fCaloConstants = AliHLTMisc::LoadInstance( (AliHLTCaloConstants*) NULL, "AliHLTPHOSConstants", "PHOS");
+  } else {
+    fCaloConstants = AliHLTMisc::LoadInstance( (AliHLTCaloConstants*) NULL, "AliHLTEMCALConstants", "EMCAL");
+  }
+}
+
+
+AliHLTCaloConstantsHandler::~AliHLTCaloConstantsHandler()
+{
+  //Default destructor
+}
diff --git a/HLT/CALO/AliHLTCaloConstantsHandler.h b/HLT/CALO/AliHLTCaloConstantsHandler.h
new file mode 100644 (file)
index 0000000..e004da9
--- /dev/null
@@ -0,0 +1,47 @@
+//-*- Mode: C++ -*-
+// $Id: AliHLTCALOConstantsHandler.h 34622 2009-09-04 13:22:01Z odjuvsla $
+
+
+//* This file is property of and copyright by the ALICE HLT Project        * 
+//* ALICE Experiment at CERN, All rights reserved.                         *
+//* See cxx source for full Copyright notice                               */
+
+/// @file   AliHLTCaloConstantsHandler.h
+/// @author Svein Lindal
+/// @date   
+/// @brief  Handler class that helps create an instance of the right 
+///         AliHLTCaloConstants child class 
+///         (e.g. AliHLTPHOSConstants or AliHLTEMCALConstants)
+
+
+#ifndef ALIHLTCALOCONSTANTSHANDLER_H
+#define ALIHLTCALOCONSTANTSHANDLER_H
+
+class AliHLTCaloConstants;
+class TString;
+
+class AliHLTCaloConstantsHandler
+{
+public:
+  AliHLTCaloConstantsHandler(TString det);
+  virtual ~AliHLTCaloConstantsHandler();
+
+protected:
+  AliHLTCaloConstants* fCaloConstants;
+  
+private:
+  /** Keep the standard constructor private, since we must alway initialize by specific calorimeter**/
+  AliHLTCaloConstantsHandler();
+
+  /** Keep the copy constructor private since it should not be used */
+  AliHLTCaloConstantsHandler(const AliHLTCaloConstantsHandler & );
+
+  /** Keep the assignement operator private since it should not be used */
+  AliHLTCaloConstantsHandler & operator = (const AliHLTCaloConstantsHandler &);
+
+
+  void Initialize(TString det);
+
+};
+
+#endif
index 257521b9b78701ef64bf52dab64648c0df8200d5..7fec00301c6e9be34a2d4c23eed0a4536ce5bdc7 100644 (file)
@@ -31,7 +31,7 @@
 #include "AliHLTCaloRcuFFTDataStruct.h"
 
 //using namespace PhosHLTConst;
-using namespace CaloHLTConst;
+//using namespace CaloHLTConst;
 
 using namespace std;
 
index 00eb99ba09beab288d0dd3420ce985054e2313fb..58dbd993bedbe9a0f732b191d538be0e82b89382 100644 (file)
 #include "unistd.h"
 #include <iostream>
 #include "AliHLTCaloCoordinate.h"
-
-using namespace CaloHLTConst;
+#include "AliHLTCaloConstantsHandler.h"
+#include "AliHLTCaloConstants.h"
 
 //ClassImp(AliHLTCaloMapper)
 
-AliHLTCaloMapper::AliHLTCaloMapper( const unsigned long  specification ) :  AliHLTLogging(), 
-                                                                           fHw2geomapPtr(0),
-                                                                           fCellSize(0),
-                                                                           fSpecification(specification),
-                                                                           fIsInitializedMapping(false),
-                                                                           fSpecificationMapPtr(0)
+AliHLTCaloMapper::AliHLTCaloMapper( const unsigned long  specification , TString det) :  
+  AliHLTLogging(), 
+  AliHLTCaloConstantsHandler(det),
+  fHw2geomapPtr(0),
+  fCellSize(0),
+  fSpecification(specification),
+  fIsInitializedMapping(false),
+  fSpecificationMapPtr(0)
 {  
   //see header file for class documentation
 }
@@ -77,6 +79,79 @@ AliHLTCaloMapper::GetFilePath()
 }
 
 
+int 
+AliHLTCaloMapper::GetChannelID(const AliHLTUInt32_t spec, const Int_t hadd)
+{
+  Short_t index = GetDDLFromSpec(spec);
+  if( index < 0 )
+    {
+      //      HLTError("Specification 0x%X not consistent with single DDL in PHOS", spec);
+      return index;
+    }
+  else
+    {
+      return ((fHw2geomapPtr[hadd].fXCol   ) |
+             ((fHw2geomapPtr[hadd].fZRow  ) << 6) |
+             (fHw2geomapPtr[hadd].fGain << 12) |
+             fSpecificationMapPtr[index].fModId << 13);
+    }
+}
+
+
+
+// UShort_t
+// AliHLTCaloMapper::GetChannelID(Int_t specification, Int_t hwAddress)
+// {
+  
+//   Short_t index = 0;
+
+//   if(specification == 0x00001) index = 0;
+//   else if(specification == 0x00002) index = 1;
+//   else if(specification == 0x00004) index = 2;
+//   else if(specification == 0x00008) index = 3;
+
+//   else if(specification == 0x00010) index = 4;
+//   else if(specification == 0x00020) index = 5;
+//   else if(specification == 0x00040) index = 6;
+//   else if(specification == 0x00080) index = 7;
+
+//   else if(specification == 0x00100) index = 8;
+//   else if(specification == 0x00200) index = 9;
+//   else if(specification == 0x00400) index = 10;
+//   else if(specification == 0x00800) index = 11;
+
+//   else if(specification == 0x01000) index = 12;
+//   else if(specification == 0x02000) index = 13;
+//   else if(specification == 0x04000) index = 14;
+//   else if(specification == 0x08000) index = 15;
+
+//   else if(specification == 0x10000) index = 16;
+//   else if(specification == 0x20000) index = 17;
+//   else if(specification == 0x40000) index = 18;
+//   else if(specification == 0x80000) index = 19;
+
+//   else HLTError("Specification 0x%X not consistent with single DDL in PHOS", specification);
+//   //  HLTError("Channel ID: 0x%X Coordinates: x = %d, z = %d, gain = %d", ((fHw2geomapPtr[hwAddress].fXCol + fSpecificationMapPtr[index].fRcuXOffset) |((fHw2geomapPtr[hwAddress].fZRow + fSpecificationMapPtr[index].fRcuZOffset) << 6) | (fHw2geomapPtr[hwAddress].fGain << 12) | fSpecificationMapPtr[index].fModId << 13),
+//   //           fHw2geomapPtr[hwAddress].fXCol,
+//   //           fHw2geomapPtr[hwAddress].fZRow, 
+//   //           fHw2geomapPtr[hwAddress].fGain);
+//   return ((fHw2geomapPtr[hwAddress].fXCol + fSpecificationMapPtr[index].fRcuXOffset) |
+//       ((fHw2geomapPtr[hwAddress].fZRow + fSpecificationMapPtr[index].fRcuZOffset) << 6) |
+//       (fHw2geomapPtr[hwAddress].fGain << 12) |
+//       fSpecificationMapPtr[index].fModId << 13);
+// }
+
+
+void
+AliHLTCaloMapper::GetChannelCoord(const UShort_t channelId, UShort_t* channelCoord)
+{
+  channelCoord[0] = channelId&0x3f;
+  channelCoord[1] = (channelId >> 6)&0x3f;
+  channelCoord[2] = (channelId >> 12)&0x1;
+  channelCoord[3] = (channelId >> 13)&0x1f;
+  //  printf("Channel ID: 0x%X Coordinates: x = %d, z = %d, gain = %d\n", channelId, channelCoord[0], channelCoord[1], channelCoord[2]);
+}
+
 void
 AliHLTCaloMapper::ChannelId2Coordinate(const int channelId,    AliHLTCaloCoordinate &channelCoord)
 {
@@ -88,6 +163,15 @@ AliHLTCaloMapper::ChannelId2Coordinate(const int channelId,    AliHLTCaloCoordin
 }
 
 
+void
+AliHLTCaloMapper::GetLocalCoord(const int channelId, Float_t* localCoord) const
+{
+  localCoord[0] = (static_cast<Float_t>(channelId&0x3f) - fCaloConstants->GetNXCOLUMNSMOD()/2)* fCaloConstants->GetCELLSTEP();
+  localCoord[1] = (static_cast<Float_t>((channelId >> 6)&0x3f) - fCaloConstants->GetNZROWSMOD()/2) * fCaloConstants->GetCELLSTEP();
+  //  printf("Local coordinates: x = %f, z = %f\n", channelCoord[0], channelCoord[1]);
+}
+
+
 int  
 AliHLTCaloMapper::GetDDLFromSpec( const AliHLTUInt32_t spec )
 {
@@ -108,29 +192,23 @@ AliHLTCaloMapper::GetDDLFromSpec( const AliHLTUInt32_t spec )
 }
 
 
-  
-// UInt_t 
-// AliHLTCaloMapper::GetChannelID(const AliHLTUInt32_t spec, const Int_t hadd)
-int 
-AliHLTCaloMapper::GetChannelID(const AliHLTUInt32_t spec, const Int_t hadd)
+Int_t 
+AliHLTCaloMapper::GetModuleFromSpec(Int_t specification)
 {
-  Short_t index = GetDDLFromSpec(spec);
-  if( index < 0 )
-    {
-      //      HLTError("Specification 0x%X not consistent with single DDL in PHOS", spec);
-      return index;
-    }
-  else
-    {
-      return ((fHw2geomapPtr[hadd].fXCol   ) |
-             ((fHw2geomapPtr[hadd].fZRow  ) << 6) |
-             (fHw2geomapPtr[hadd].fGain << 12) |
-             fSpecificationMapPtr[index].fModId << 13);
-    }
+  Int_t module = -1;
+      
+  if(specification & 0xf) module = 0;
+  else if((specification >> 4) & 0xf) module = 1;
+  else if((specification >> 8) & 0xf) module = 2;
+  else if((specification >> 12) & 0xf) module = 3;
+  else if((specification >> 16) & 0xf) module = 4;
+  else HLTError("Specification 0x%X not consistent with single module in PHOS", specification);
+
+  return module;
 }
 
 
-
 unsigned long 
 AliHLTCaloMapper::GetSpecFromDDLIndex( const int ddlindex )
 {
index e44311217086063754bf6ad000e65520aed0fb13..efea6d28a385d05116801649f848221e68fd36c8 100644 (file)
 #include "AliHLTCaloConstants.h"
 #include "Rtypes.h"
 #include "AliHLTLogging.h"
-
-using namespace CaloHLTConst;
-
+#include "AliHLTCaloConstantsHandler.h"
 
 class AliHLTCaloCoordinate;
+class AliHLTCaloConstants;
 
-class AliHLTCaloMapper : public AliHLTLogging
+class AliHLTCaloMapper : public AliHLTLogging, public AliHLTCaloConstantsHandler
 {
 public:
-  AliHLTCaloMapper(const unsigned long speficication);
+  AliHLTCaloMapper(TString det);
+  AliHLTCaloMapper(const unsigned long specification, TString det);
   virtual ~AliHLTCaloMapper();
   virtual void InitAltroMapping( const unsigned long specification ) = 0; 
   virtual void InitDDLSpecificationMapping() = 0;
   bool GetIsInitializedMapping();
   char* GetFilePath();
-  int GetDDLFromSpec( const AliHLTUInt32_t spec );
-  static unsigned long GetSpecFromDDLIndex( const int ddlindex );
-  //  UInt_t  GetChannelID(const AliHLTUInt32_t spec, const Int_t hadd);
   int  GetChannelID(const AliHLTUInt32_t spec, const Int_t hadd);
+  void GetChannelCoord(const UShort_t channelId, UShort_t* channelCoord);
   static void ChannelId2Coordinate(const int channelId,    AliHLTCaloCoordinate &channelCoord);
-
-  // static void GetLocalCoord(const int channelId, Float_t* localCoord) = 0; 
+  virtual void GetLocalCoord(const int channelId, Float_t* localCoord) const; 
+  int GetDDLFromSpec( const AliHLTUInt32_t spec );
+  int GetModuleFromSpec(Int_t specification);
+  static unsigned long GetSpecFromDDLIndex( const int ddlindex );
   
-  virtual void GetLocalCoord(const int channelId, Float_t* localCoord) const = 0; 
 
  struct fAltromap{ 
     char fZRow; // Coordinate in Z direction (beam direction) relatve to one Module
index 165902d5afbeaef65f3757cee46d2786fc191916..66b365f7e77e4377a8db43815ac49ce36e0d0db6 100644 (file)
 #include "AliRawReaderMemory.h"
 #include "AliAltroRawStreamV3.h"
 #include "AliCaloRawStreamV3.h"
+#include "AliHLTCaloConstantsHandler.h"
+#include "AliHLTCaloConstants.h"
 
-AliHLTCaloRawAnalyzerComponentv3::AliHLTCaloRawAnalyzerComponentv3():
+AliHLTCaloRawAnalyzerComponentv3::AliHLTCaloRawAnalyzerComponentv3(TString det):
+  AliHLTCaloConstantsHandler(det),
   AliHLTProcessor(),
   fAnalyzerPtr(0),
   fMapperPtr(0),     
@@ -54,7 +57,7 @@ AliHLTCaloRawAnalyzerComponentv3::AliHLTCaloRawAnalyzerComponentv3():
  
   // if( fkDoPushRawData == true  )
     {
-      fRawDataWriter  = new RawDataWriter(); 
+      fRawDataWriter  = new RawDataWriter(fCaloConstants); 
     }
 
     fAltroRawStreamPtr = new AliCaloRawStreamV3(fRawReaderMemoryPtr, TString("EMCAL"));  
@@ -386,13 +389,13 @@ AliHLTCaloRawAnalyzerComponentv3::DoInit( int argc, const char** argv )
 
 
 
-AliHLTCaloRawAnalyzerComponentv3::RawDataWriter::RawDataWriter() :  //fIsFirstChannel(true),
+AliHLTCaloRawAnalyzerComponentv3::RawDataWriter::RawDataWriter(AliHLTCaloConstants* cConst) :  //fIsFirstChannel(true),
                                                                    fRawDataBuffer(0),
                                                                    fCurrentChannelSize(0),
                                                                    //    fIsFirstChannel(true),
                                                                    fBufferIndex(0),
                                                                    //      fBufferSize( NZROWSRCU*NXCOLUMNSRCU*ALTROMAXSAMPLES*NGAINS +1000 ),
-                                                                   fBufferSize( 64*56*ALTROMAXSAMPLES*NGAINS +1000 ),
+                                                                   fBufferSize( 64*56*cConst->GetNGAINS()*cConst->GetALTROMAXSAMPLES() +1000 ),
                                                                    fCurrentChannelIdPtr(0),
                                                                    fCurrentChannelSizePtr(0),
                                                                    fCurrentChannelDataPtr(0),
index e4349a3fbcabaff4a40a98a1f45a5c72ae290649..0bac04142480279448b9cf535a26ad65566afcb1 100644 (file)
@@ -97,17 +97,21 @@ class AliAltroRawStreamV3;
 
 #include "AliHLTProcessor.h"
 #include "AliHLTCaloDefinitions.h"
+#include "AliHLTCaloConstantsHandler.h"
 
+class AliHLTCaloConstants;
 class AliHLTCaloMapper;
 
 
 //class AliHLTCaloRawAnalyzerComponentv3 : public AliHLTCaloRcuProcessor
-class AliHLTCaloRawAnalyzerComponentv3 : public AliHLTProcessor
+class AliHLTCaloRawAnalyzerComponentv3 : public AliHLTCaloConstantsHandler, public AliHLTProcessor 
 {
  public:
 
-  /** Standard constructor */
-  AliHLTCaloRawAnalyzerComponentv3();
+  /** Constructor must be initialized to specific calorimeter */
+  AliHLTCaloRawAnalyzerComponentv3(TString det);
+  
+
 
   /** Destructor */
   virtual ~AliHLTCaloRawAnalyzerComponentv3();
@@ -162,6 +166,9 @@ virtual bool CheckInputDataType(const AliHLTComponentDataType &datatype) = 0;
   AliHLTCaloMapper *fMapperPtr;     
  private:
 
+/** Keep default constructor private since it should not be used */
+  AliHLTCaloRawAnalyzerComponentv3();
+
   /** Keep the copy constructor private since it should not be used */
   AliHLTCaloRawAnalyzerComponentv3(const AliHLTCaloRawAnalyzerComponentv3 & );
 
@@ -204,7 +211,7 @@ virtual bool CheckInputDataType(const AliHLTComponentDataType &datatype) = 0;
   class RawDataWriter 
   {
   public:
-    RawDataWriter();
+    RawDataWriter(AliHLTCaloConstants* cConst);
     ~RawDataWriter();
     //   void WriteChannelId(const UShort_t channeldid );
     void NewChannel( );
@@ -216,6 +223,9 @@ virtual bool CheckInputDataType(const AliHLTComponentDataType &datatype) = 0;
     void NewEvent();
    
   private:
+    
+    //Default constructor, should not be used. 
+    RawDataWriter();    
     RawDataWriter (const RawDataWriter  & );
     RawDataWriter & operator = (const RawDataWriter &);
     void Init();
index 81bee0b263f64c0b5ad8bcfb5a2c305dd5ce604e..834d77044d432864cae2cbf16b90a81dafbcb145 100644 (file)
@@ -23,7 +23,8 @@
 //AliHLTCaloRawAnalyzerCrudeComponent gAliHLTCaloRawAnalyzerCrudeComponent;
 
 //___________________________________________________________________________
-AliHLTCaloRawAnalyzerCrudeComponent::AliHLTCaloRawAnalyzerCrudeComponent()
+AliHLTCaloRawAnalyzerCrudeComponent::AliHLTCaloRawAnalyzerCrudeComponent(TString det) :
+AliHLTCaloRawAnalyzerComponentv3(det)
 {
   fAnalyzerPtr = new AliHLTCaloRawAnalyzerCrude();
 } 
@@ -39,7 +40,8 @@ AliHLTCaloRawAnalyzerCrudeComponent::~AliHLTCaloRawAnalyzerCrudeComponent()
 }
 
 //___________________________________________________________________________
-AliHLTCaloRawAnalyzerCrudeComponent::AliHLTCaloRawAnalyzerCrudeComponent(const AliHLTCaloRawAnalyzerCrudeComponent & ):AliHLTCaloRawAnalyzerComponentv3()
+AliHLTCaloRawAnalyzerCrudeComponent::AliHLTCaloRawAnalyzerCrudeComponent(const AliHLTCaloRawAnalyzerCrudeComponent &, TString det ):
+AliHLTCaloRawAnalyzerComponentv3(det)
 {
 
 }
index 11cc3a0616834144094ab964d995475eb604226e..86ac04c654167f28bed872ea17bf31cb731bce72 100644 (file)
@@ -14,9 +14,9 @@
 class AliHLTCaloRawAnalyzerCrudeComponent: public AliHLTCaloRawAnalyzerComponentv3
 {
  public:
-  AliHLTCaloRawAnalyzerCrudeComponent();
+  AliHLTCaloRawAnalyzerCrudeComponent(TString det);
   virtual ~AliHLTCaloRawAnalyzerCrudeComponent();
-  AliHLTCaloRawAnalyzerCrudeComponent(const AliHLTCaloRawAnalyzerCrudeComponent & );
+  AliHLTCaloRawAnalyzerCrudeComponent(const AliHLTCaloRawAnalyzerCrudeComponent &, TString det );
   // AliHLTCaloRawAnalyzerCrudeComponent & operator = (const AliHLTCaloRawAnalyzerCrudeComponent)
   //  {
   //   return *this;
@@ -25,6 +25,9 @@ class AliHLTCaloRawAnalyzerCrudeComponent: public AliHLTCaloRawAnalyzerComponent
   virtual int Deinit();
   virtual const char* GetComponentID();
   virtual AliHLTComponent* Spawn() = 0;
+
+private:
+  AliHLTCaloRawAnalyzerCrudeComponent();
 };
 
 #endif
index f5569de5a7cf5a5fe7789b28cda669409f014925..be83de4c85aae6d15b9d942c71869e673526113f 100644 (file)
@@ -25,7 +25,8 @@
 //AliHLTCaloRawAnalyzerPeakFinderComponent gAliHLTCaloRawAnalyzerPeakFinderComponent;
 
 //___________________________________________________________________________________________________________
-AliHLTCaloRawAnalyzerPeakFinderComponent::AliHLTCaloRawAnalyzerPeakFinderComponent():AliHLTCaloRawAnalyzerComponentv3()
+AliHLTCaloRawAnalyzerPeakFinderComponent::AliHLTCaloRawAnalyzerPeakFinderComponent(TString det) : 
+AliHLTCaloRawAnalyzerComponentv3(det)
 {
   fAnalyzerPtr = new AliHLTCaloRawAnalyzerPeakFinder();
 
@@ -53,7 +54,8 @@ AliHLTCaloRawAnalyzerPeakFinderComponent::~AliHLTCaloRawAnalyzerPeakFinderCompon
 
 
 //___________________________________________________________________________________________________________
-AliHLTCaloRawAnalyzerPeakFinderComponent::AliHLTCaloRawAnalyzerPeakFinderComponent(const AliHLTCaloRawAnalyzerPeakFinderComponent & ) : AliHLTCaloRawAnalyzerComponentv3()
+AliHLTCaloRawAnalyzerPeakFinderComponent::AliHLTCaloRawAnalyzerPeakFinderComponent(const AliHLTCaloRawAnalyzerPeakFinderComponent &, TString det) : 
+AliHLTCaloRawAnalyzerComponentv3(det)
 {
 
 }
index 7ee340891b0a2bed02d7817165b8eb96f3ce68b5..69657541c9abc168eee0a8798ceae449b0121204 100644 (file)
@@ -14,7 +14,7 @@
 class AliHLTCaloRawAnalyzerPeakFinderComponent: public AliHLTCaloRawAnalyzerComponentv3
 {
  public:
-  AliHLTCaloRawAnalyzerPeakFinderComponent();
+  AliHLTCaloRawAnalyzerPeakFinderComponent(TString det);
   virtual ~AliHLTCaloRawAnalyzerPeakFinderComponent();
 
   virtual int Deinit();
@@ -30,7 +30,7 @@ class AliHLTCaloRawAnalyzerPeakFinderComponent: public AliHLTCaloRawAnalyzerComp
   virtual Bool_t LoadPFVector() { return true; }; 
   virtual Bool_t LoadPFVector(const int /*startindex*/, const int /*Nsamples*/, const int /*tau*/, const int /*fs*/) {  return true; };
 
-  AliHLTCaloRawAnalyzerPeakFinderComponent(const AliHLTCaloRawAnalyzerPeakFinderComponent & ); 
+  AliHLTCaloRawAnalyzerPeakFinderComponent(const AliHLTCaloRawAnalyzerPeakFinderComponent &, TString det ); 
   
   /*
   AliHLTCaloRawAnalyzerPeakFinderComponent & operator = (const AliHLTCaloRawAnalyzerPeakFinderComponent)
@@ -38,6 +38,9 @@ class AliHLTCaloRawAnalyzerPeakFinderComponent: public AliHLTCaloRawAnalyzerComp
       return *this;
     };
   */
+
+private:
+    AliHLTCaloRawAnalyzerPeakFinderComponent();
 };
 
 
index de15589825506687b671665bb7aaca07fa1d622e..9f9c07e8ffd8b916df92392852508d40a7c27635 100644 (file)
@@ -6,7 +6,7 @@
 
 
 #include "Rtypes.h"
-#include "AliHLTCaloConstants.h"
+#include "AliHLTCaloConstant.h"
 
 using namespace CaloHLTConst;
 
index 984644e5d5f299f7afc1b65f97d4585bc64b0427..598f649eddb55af57dad8527ddcfa1544bd06940 100644 (file)
@@ -22,7 +22,8 @@
 #include "AliHLTEMCALDefinitions.h"
 
 
-AliHLTEMCALRawAnalyzerComponent::AliHLTEMCALRawAnalyzerComponent() : AliHLTCaloRawAnalyzerComponentv3()
+AliHLTEMCALRawAnalyzerComponent::AliHLTEMCALRawAnalyzerComponent() : 
+AliHLTCaloRawAnalyzerComponentv3("EMCAL")
 {
   
 
index f5e794ae9247d2941cc19ebe29a5b8a3aa75c13e..2920e060033f10c66ae7504f6f5ac8ecc1211da3 100644 (file)
@@ -20,7 +20,12 @@ AliHLTCaloMapper.h \
 AliHLTCaloDefinitions.h \
 AliHLTCaloSanityInspector.h \
 AliHLTCaloSharedMemoryInterfacev2.h \
-AliHLTCaloFourier.h
+AliHLTCaloFourier.h \
+AliHLTCaloConstants.h \
+AliHLTCaloConstantsHandler.h 
+##AliHLTCaloClusterizer.h \
+##AliHLTCaloDigitMaker.h \
+##AliHLTCaloClusterAnalyser.h 
 
 
 ## all source files of this module
@@ -30,9 +35,15 @@ AliHLTCaloFourier.h
 MODULE_SRCS=   $(CLASS_HDRS:.h=.cxx)
 
 ## all header files of this module
-MODULE_HDRS:=  $(CLASS_HDRS)                           \
-               AliHLTCaloConstants.h
-
+MODULE_HDRS:=  $(CLASS_HDRS) \
+               AliHLTCaloConstant.h 
+##             AliHLTCaloDigitDataStruct.h \
+##             AliHLTCaloDigitContainerDataStruct.h \
+##             AliHLTCaloRecPointDataStruct.h \
+##             AliHLTCaloRecPointContainerStruct.h \
+##             AliHLTCaloRecPointHeaderStruct.h \
+##             AliHLTCaloChannelDataStruct.h \
+##             AliHLTCaloChannelDataHeaderStruct.h 
 
 ## the link def file for this module
 ## generated automatically if empty
index d78b147fba2416b325a950249f914cf1049e06cd..dea76b1d15b991b498ce1dd7cf234ce51a1d2485 100644 (file)
@@ -58,7 +58,8 @@ MODULE_HDRS:=   $(CLASS_HDRS) \
                  AliHLTPHOSCoordinate.h \
                  AliHLTPHOSChannelRawDataStruct.h
 
-MODULE_DHDR:=    AliHLTPHOSLinkDef.h
+##Left empty for auto generation:
+MODULE_DHDR:=    
 
 EINCLUDE     := HLT/BASE HLT/BASE/util STEER RAW PHOS