]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/MUON/AliHLTMUONConstants.h
bugfix: mc labels for padrow-sorted cluster data block; preparing the track index...
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONConstants.h
index 1a9abf38e6165805e7dbd319b7a7e9504656c1fc..7f453c383b84c9e924bb9ac42c519a836290fee4 100644 (file)
@@ -1,22 +1,49 @@
 #ifndef ALIHLTMUONCONSTANTS_H
 #define ALIHLTMUONCONSTANTS_H
-/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
-
-/* $Id$ */
+/**************************************************************************
+ * This file is property of and copyright by the ALICE HLT Project        * 
+ * All rights reserved.                                                   *
+ *                                                                        *
+ * Primary Authors:                                                       *
+ *   Indranil Das <indra.das@saha.ac.in>                                  *
+ *   Artur Szostak <artursz@iafrica.com>                                  *
+ *                                                                        *
+ * 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.                  *
+ **************************************************************************/
+
+// $Id$
 
 /**
  * @file   AliHLTMUONConstants.h
  * @author Indranil Das <indra.das@saha.ac.in>,
  *         Artur Szostak <artursz@iafrica.com>
- * @date   
+ * @date   17 May 2007
  * @brief  Class containing various dimuon HLT constants used in the system.
  */
 
-#include "AliHLTMUONTriggerRecordsBlockStruct.h"
-#include "AliHLTMUONRecHitsBlockStruct.h"
-#include "AliHLTMUONClustersBlockStruct.h"
-#include "AliHLTMUONChannelsBlockStruct.h"
+#include "TObject.h"
+
+// Forward declare structures.
+extern "C" {
+struct AliHLTComponentDataType;
+struct AliHLTMUONTriggerRecordStruct;
+struct AliHLTMUONTrigRecInfoStruct;
+struct AliHLTMUONRecHitStruct;
+struct AliHLTMUONChannelStruct;
+struct AliHLTMUONClusterStruct;
+struct AliHLTMUONMansoTrackStruct;
+struct AliHLTMUONMansoRoIStruct;
+struct AliHLTMUONMansoCandidateStruct;
+struct AliHLTMUONTrackStruct;
+struct AliHLTMUONTrackDecisionStruct;
+struct AliHLTMUONPairDecisionStruct;
+} // extern "C"
 
 /**
  * AliHLTMUONConstants contains a list of global dimuon HLT specific constants
@@ -27,140 +54,86 @@ class AliHLTMUONConstants
 {
 public:
 
-       static const AliHLTMUONRecHitStruct& NilRecHitStruct()
-       {
-               return fgkNilRecHitStruct;
-       }
-
-       static const AliHLTMUONChannelStruct& NilChannelStruct()
-       {
-               return fgkNilChannelStruct;
-       }
-
-       static const AliHLTMUONClusterStruct& NilClusterStruct()
-       {
-               return fgkNilClusterStruct;
-       }
-
-       static const AliHLTComponentDataType& TriggerDDLStreamDataType()
-       {
-               return fgkTriggerDDLStreamDataType;
-       }
-
-       static const AliHLTComponentDataType& TrackingDDLStreamDataType()
-       {
-               return fgkTrackingDDLStreamDataType;
-       }
-
-       static const AliHLTComponentDataType& TriggerRecordsBlockDataType()
-       {
-               return fgkTriggerRecordsBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& TrigRecsDebugBlockDataType()
-       {
-               return fgkTrigRecsDebugBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& TriggerChannelBlockDataType()
-       {
-               return fgkTriggerChannelBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& RecHitsBlockDataType()
-       {
-               return fgkRecHitsBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& ClusterBlockDataType()
-       {
-               return fgkClusterBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& ChannelBlockDataType()
-       {
-               return fgkChannelBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& MansoTracksBlockDataType()
-       {
-               return fgkMansoTracksBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& MansoRoIBlockDataType()
-       {
-               return fgkMansoRoIBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& MansoTrialsBlockDataType()
-       {
-               return fgkMansoTrialsBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& DecisionBlockDataType()
-       {
-               return fgkDecisionBlockDataType;
-       }
-
-       static const AliHLTComponentDataType& DecisionDebugBlockDataType()
-       {
-               return fgkDecisionDebugBlockDataType;
-       }
+       // The following methods return null/nil structures that can also be used as sentinels:
+       static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct();
+       static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct();
+       static const AliHLTMUONRecHitStruct& NilRecHitStruct();
+       static const AliHLTMUONChannelStruct& NilChannelStruct();
+       static const AliHLTMUONClusterStruct& NilClusterStruct();
+       static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct();
+       static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct();
+       static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct();
+       static const AliHLTMUONTrackStruct& NilTrackStruct();
+       static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct();
+       static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct();
+
+       // Methods returning HLT component input and output data block types:
+       
+       /**
+        * Returns the raw data type for MUON DDLs. To figure out if the DDL format
+        * will be for a tracking DDL or trigger DDL one needs to also check the
+        * sepcification word of the input data block. If one of the first 20 least
+        * significant bits are set then it is a tracker DDL otherwise if it is
+        * the 21st or 22nd bit then it is from the muon trigger.
+        */
+       static const AliHLTComponentDataType& DDLRawDataType();
+
+       static const AliHLTComponentDataType& TriggerRecordsBlockDataType();
+       static const AliHLTComponentDataType& TrigRecsDebugBlockDataType();
+       static const AliHLTComponentDataType& RecHitsBlockDataType();
+       static const AliHLTComponentDataType& ClusterBlockDataType();
+       static const AliHLTComponentDataType& ChannelBlockDataType();
+       static const AliHLTComponentDataType& MansoTracksBlockDataType();
+       static const AliHLTComponentDataType& MansoCandidatesBlockDataType();
+       static const AliHLTComponentDataType& TracksBlockDataType();
+       static const AliHLTComponentDataType& SinglesDecisionBlockDataType();
+       static const AliHLTComponentDataType& PairsDecisionBlockDataType();
+       static const AliHLTComponentDataType& RootifiedEventDataType();
+       static const AliHLTComponentDataType& ESDDataType();
+       static const AliHLTComponentDataType& ClusterStoreDataType();
+       static const AliHLTComponentDataType& HistogramDataType();
+       
+       
+       // Methods to return component ID names:
+       static const char* RecHitsSourceId();
+       static const char* TriggerRecordsSourceId();
+       static const char* TracksSourceId();
+       static const char* DigitPublisherId();
+       static const char* TriggerReconstructorId();
+       static const char* HitReconstructorId();
+       static const char* MansoTrackerFSMId();
+       static const char* FullTrackerId();
+       static const char* DecisionComponentId();
+       static const char* ESDMakerId();
+       static const char* RootifierComponentId();
+       static const char* EmptyEventFilterComponentId();
+       static const char* DataCheckerComponentId();
+       static const char* ClusterFinderId();
+       static const char* RawDataHistogrammerId();
+       static const char* ClusterHistogrammerId();
+       
+       // Methods for returning the CDB path entries to configuration information:
+       static const char* TriggerReconstructorCDBPath();
+       static const char* HitReconstructorCDBPath();
+       static const char* MansoTrackerFSMCDBPath();
+       static const char* DecisionComponentCDBPath();
+       static const char* FieldIntegralsCDBPath();
+       
+       /// Returns the typical X (non-bending plane) resolution of the hit reconstruction (units = cm).
+       static double DefaultNonBendingReso();
+       
+       /// Returns the typical Y (bending plane) resolution of the hit reconstruction (units = cm).
+       static double DefaultBendingReso();
 
 private:
-       // Should never have to create or destroy this object.
-       AliHLTMUONConstants();
-       ~AliHLTMUONConstants();
-
-       // Sentinel structure for a reconstructed hit.
-       static const AliHLTMUONRecHitStruct fgkNilRecHitStruct;
-
-       // Sentinel structure for channel information.
-       static const AliHLTMUONChannelStruct fgkNilChannelStruct;
-
-       // Sentinel structure for cluster information.
-       static const AliHLTMUONClusterStruct fgkNilClusterStruct;
-
-       // DDL packed data block type from dimuon trigger stations.
-       static const AliHLTComponentDataType fgkTriggerDDLStreamDataType;
-
-       // DDL packed data block type from dimuon tracking stations.
-       static const AliHLTComponentDataType fgkTrackingDDLStreamDataType;
-
-       // Trigger records block type generated by trigger DDL translation components.
-       static const AliHLTComponentDataType fgkTriggerRecordsBlockDataType;
-
-       // Debugging information block type generated by trigger DDL translation components.
-       static const AliHLTComponentDataType fgkTrigRecsDebugBlockDataType;
-
-       // Debugging information about the channels from the hardware trigger.
-       static const AliHLTComponentDataType fgkTriggerChannelBlockDataType;
-
-       // Reconstructed hits block type generated by hit reconstruction components.
-       static const AliHLTComponentDataType fgkRecHitsBlockDataType;
-
-       // Debugging information block type for reconstructed hit clusters.
-       static const AliHLTComponentDataType fgkClusterBlockDataType;
-
-       // Debugging information block type for channels corresponding to clusters.
-       static const AliHLTComponentDataType fgkChannelBlockDataType;
-
-       // Manso tracks block type generated by Manso tracker components.
-       static const AliHLTComponentDataType fgkMansoTracksBlockDataType;
-
-       // Debugging information block type containing region of interests
-       // considered by the Manso tracker components.
-       static const AliHLTComponentDataType fgkMansoRoIBlockDataType;
-
-       // Debugging information block type containing the trial tracks considered
-       // by the Manso tracker components.
-       static const AliHLTComponentDataType fgkMansoTrialsBlockDataType;
-
-       // Trigger decision block type generated by dimuon HLT trigger components.
-       static const AliHLTComponentDataType fgkDecisionBlockDataType;
 
-       // Debugging information block type generated by dimuon HLT trigger components.
-       static const AliHLTComponentDataType fgkDecisionDebugBlockDataType;
+       // Should never have to create, destroy or copy this object.
+       AliHLTMUONConstants() {}
+       AliHLTMUONConstants(const AliHLTMUONConstants& obj);
+       virtual ~AliHLTMUONConstants() {}
+       AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
+       
+       ClassDef(AliHLTMUONConstants, 0);  // Interface class to dHLT constants.
 };
 
 #endif // ALIHLTMUONCONSTANTS_H