extern "C"
{
-typedef signed char AliHLTInt8_t;
-typedef signed int AliHLTInt32_t;
-typedef float AliHLTFloat32_t;
-typedef double AliHLTFloat64_t;
-
/**
* The common internal dimuon HLT data block header.
* These headers help to identify the data block when it is written to disk and
AliHLTUInt32_t fNrecords; // Number of records in this data block.
};
+/**
+ * The field structure of a single row of the AliHLTMUONHitReconstructor component's
+ * lookup table.
+ */
+struct AliHLTMUONHitRecoLutRow
+{
+ AliHLTInt32_t fDetElemId; // The detector element ID of the pad.
+ AliHLTInt32_t fIX, fIY; // The X,Y number of the pad.
+ AliHLTFloat32_t fRealX, fRealY, fRealZ; // The real coordinate of the pad.
+ AliHLTFloat32_t fHalfPadSize; // half padsize in X for bending and Y for nonbending
+ AliHLTInt32_t fPlane; // The plane and PCB zone ID numbers.
+ AliHLTFloat32_t fPed, fSigma, fA0, fA1; // Calibration values
+ AliHLTInt32_t fThres, fSat; //Calibration values
+};
+
+/**
+ * The field structure of a single row of the AliHLTMUONTriggerReconstructor component's
+ * lookup table.
+ */
+struct AliHLTMUONTriggerRecoLutRow
+{
+ AliHLTUInt32_t fIdFlags; /// The chamber and detector element identifier packed in AliHLTMUONRecHitStruct::fFlags format.
+ AliHLTFloat32_t fX; // Global X coordinate of channel.
+ AliHLTFloat32_t fY; // Global Y coordinate of channel.
+ AliHLTFloat32_t fZ; // Global Z coordinate of channel.
+};
+
+/**
+ * The lookup table structure for the AliHLTMUONTriggerReconstructor component.
+ * The LUT is used for translating from channel addresses to geometrical positions
+ * and other relevant information of the strips in the trigger chambers.
+ */
+struct AliHLTMUONTriggerRecoLookupTable
+{
+ // The dimentions of the LUT are as follows:
+ // [trigger crate ID][local board ID][chamber][cathode - X/Y][bit set in bit pattern]
+ // - The trigger crate ID comes form the regional headers in the DDL payload.
+ // - Local board ID numbers come from the local trigger structures in the
+ // DDL payload.
+ // - The chamber is for chambers 11 to 14 coded as [0..3], 0 for chamber 11,
+ // 1 for chamber 12 etc.
+ // - The cathode 0 is for the X trigger strips (bending plane) and 1 is
+ // for the Y strips (non-bending plane).
+ // - The "bit set in pattern" indicates the bit number that was set in
+ // the strip patterns found in the local structures of the DDL payload.
+ AliHLTMUONTriggerRecoLutRow fRow[16][16][4][2][16];
+};
+
} // extern "C"
/**
- * The sign of a particle.
+ * The sign/charge of a particle.
*/
enum AliHLTMUONParticleSign
{
*/
enum AliHLTMUONChamberName
{
+ kUnknownChamber = -1,
kChamber1 = 0,
kChamber2 = 1,
kChamber3 = 2,
kUnknownDataBlock = 0,
kTriggerRecordsDataBlock = 1000,
kTrigRecsDebugDataBlock = 1001,
- kTriggerChannelDataBlock = 1002,
kRecHitsDataBlock = 2000,
kClustersDataBlock = 2001,
kChannelsDataBlock = 2002,
kMansoTracksDataBlock = 3000,
- kMansoRoIDataBlock = 3001,
- kMansoTrialsDataBlock = 3002,
- kDecisionDataBlock = 4000,
- kDecisionDebugDataBlock = 4001
+ kMansoCandidatesDataBlock = 3001,
+ kSinglesDecisionDataBlock = 4000,
+ kPairsDecisionDataBlock = 4001
};
{
switch (chamber)
{
- case kChamber1: stream << "kChamber1"; break;
- case kChamber2: stream << "kChamber2"; break;
- case kChamber3: stream << "kChamber3"; break;
- case kChamber4: stream << "kChamber4"; break;
- case kChamber5: stream << "kChamber5"; break;
- case kChamber6: stream << "kChamber6"; break;
- case kChamber7: stream << "kChamber7"; break;
- case kChamber8: stream << "kChamber8"; break;
- case kChamber9: stream << "kChamber9"; break;
- case kChamber10: stream << "kChamber10"; break;
- case kChamber11: stream << "kChamber11"; break;
- case kChamber12: stream << "kChamber12"; break;
- case kChamber13: stream << "kChamber13"; break;
- case kChamber14: stream << "kChamber14"; break;
- default: stream << "INVALID";
+ case kUnknownChamber: stream << "kUnknownChamber"; break;
+ case kChamber1: stream << "kChamber1"; break;
+ case kChamber2: stream << "kChamber2"; break;
+ case kChamber3: stream << "kChamber3"; break;
+ case kChamber4: stream << "kChamber4"; break;
+ case kChamber5: stream << "kChamber5"; break;
+ case kChamber6: stream << "kChamber6"; break;
+ case kChamber7: stream << "kChamber7"; break;
+ case kChamber8: stream << "kChamber8"; break;
+ case kChamber9: stream << "kChamber9"; break;
+ case kChamber10: stream << "kChamber10"; break;
+ case kChamber11: stream << "kChamber11"; break;
+ case kChamber12: stream << "kChamber12"; break;
+ case kChamber13: stream << "kChamber13"; break;
+ case kChamber14: stream << "kChamber14"; break;
+ default: stream << "INVALID";
}
return stream;
}
{
switch (type)
{
- case kUnknownDataBlock: stream << "kUnknownDataBlock"; break;
- case kTriggerRecordsDataBlock: stream << "kTriggerRecordsDataBlock"; break;
- case kTrigRecsDebugDataBlock: stream << "kTrigRecsDebugDataBlock"; break;
- case kTriggerChannelDataBlock: stream << "kTriggerChannelDataBlock"; break;
- case kRecHitsDataBlock: stream << "kRecHitsDataBlock"; break;
- case kClustersDataBlock: stream << "kClustersDataBlock"; break;
- case kChannelsDataBlock: stream << "kChannelsDataBlock"; break;
- case kMansoTracksDataBlock: stream << "kMansoTracksDataBlock"; break;
- case kMansoRoIDataBlock: stream << "kMansoRoIDataBlock"; break;
- case kMansoTrialsDataBlock: stream << "kMansoTrialsDataBlock"; break;
- case kDecisionDataBlock: stream << "kDecisionDataBlock"; break;
- case kDecisionDebugDataBlock: stream << "kDecisionDebugDataBlock"; break;
- default: stream << "INVALID";
+ case kUnknownDataBlock: stream << "kUnknownDataBlock"; break;
+ case kTriggerRecordsDataBlock: stream << "kTriggerRecordsDataBlock"; break;
+ case kTrigRecsDebugDataBlock: stream << "kTrigRecsDebugDataBlock"; break;
+ case kRecHitsDataBlock: stream << "kRecHitsDataBlock"; break;
+ case kClustersDataBlock: stream << "kClustersDataBlock"; break;
+ case kChannelsDataBlock: stream << "kChannelsDataBlock"; break;
+ case kMansoTracksDataBlock: stream << "kMansoTracksDataBlock"; break;
+ case kMansoCandidatesDataBlock: stream << "kMansoCandidatesDataBlock"; break;
+ case kSinglesDecisionDataBlock: stream << "kSinglesDecisionDataBlock"; break;
+ case kPairsDecisionDataBlock: stream << "kPairsDecisionDataBlock"; break;
+ default: stream << "INVALID";
}
return stream;
}