#include "AliHLTHOMERBlockDesc.h"
#include "AliHLTMessage.h"
#include "TMath.h"
#include "TClass.h"
ClassImp(AliHLTHOMERBlockDesc)
AliHLTHOMERBlockDesc::AliHLTHOMERBlockDesc() :
fData(NULL),
fSize(0),
fBlockName(),
fIsTObject(kFALSE),
fIsRawData(kFALSE),
fMessage(NULL),
fTObject(NULL),
fClassName(),
fDataType(),
fDetector(),
fSpecification(0),
fSubDetector(0),
fSubSubDetector(0),
fHasSubDetectorRange(kFALSE),
fHasSubSubDetectorRange(kFALSE) {
}
AliHLTHOMERBlockDesc::~AliHLTHOMERBlockDesc() {
if ( fMessage != NULL )
delete fMessage;
fMessage = NULL;
if ( fData )
delete [] fData;
fData = NULL;
if ( fTObject )
delete fTObject;
fTObject = NULL;
}
void AliHLTHOMERBlockDesc::SetBlock( void * data, ULong_t size, TString origin,
TString dataType, ULong_t specification ) {
fData = new Char_t[size];
memcpy( fData, data, size);
fSize = size;
fDetector = origin;
fDataType = dataType;
fSpecification = specification;
fBlockName.Form("%s_%s_0x%08lX", fDetector.Data(), fDataType.Data(), fSpecification );
SetBlockParameters();
return;
}
void AliHLTHOMERBlockDesc::SetBlockParameters() {
if ( ! fDetector.CompareTo("TPC") ) {
Int_t minPatch = (fSpecification & 0x000000FF);
Int_t maxPatch = (fSpecification & 0x0000FF00) >> 8;
Int_t minSector = (fSpecification & 0x00FF0000) >> 16 ;
Int_t maxSector = (fSpecification & 0xFF000000) >> 24;
fSubDetector = minSector;
fSubSubDetector = minPatch;
if ( minSector != maxSector )
fHasSubDetectorRange = kTRUE;
if ( minPatch != maxPatch )
fHasSubSubDetectorRange = kTRUE;
}
else {
if ( fSpecification ) {
fSubDetector = TMath::FloorNint( TMath::Log2(fSpecification) );
if ( TMath::Log2(fSpecification) !=
static_cast<Double_t>(TMath::FloorNint(TMath::Log2(fSpecification))) )
fHasSubDetectorRange = kTRUE;
}
}
if ( CheckIfRawData() )
return;
if ( CheckIfTObject() )
return;
if ( ! fDetector.CompareTo("TPC") ) {
if ( ! fDataType.CompareTo("CLUSTERS") )
fClassName = "AliHLTTPCSpacePoints";
}
return;
}
Bool_t AliHLTHOMERBlockDesc::CheckIfTObject() {
UInt_t len = *( (UInt_t*) fData );
if ( len != ( fSize - sizeof(UInt_t) ) )
return fIsTObject;
if ( fMessage )
delete fMessage;
fMessage = NULL;
fMessage = new AliHLTMessage( fData, fSize );
if ( fMessage->What() == kMESS_OBJECT and fMessage->GetClass() != NULL and fMessage->GetClass() != (TClass*)-1)
{
fClassName = fMessage->GetClass()->GetName();
fIsTObject = kTRUE;
fTObject = fMessage->ReadObject( fMessage->GetClass() );
}
fMessage->Reset();
return fIsTObject;
}
Bool_t AliHLTHOMERBlockDesc::CheckIfRawData() {
if ( ! fDataType.CompareTo("DDL_RAW") )
fIsRawData = kTRUE;
return fIsRawData;
}
AliHLTHOMERBlockDesc.cxx:1 AliHLTHOMERBlockDesc.cxx:2 AliHLTHOMERBlockDesc.cxx:3 AliHLTHOMERBlockDesc.cxx:4 AliHLTHOMERBlockDesc.cxx:5 AliHLTHOMERBlockDesc.cxx:6 AliHLTHOMERBlockDesc.cxx:7 AliHLTHOMERBlockDesc.cxx:8 AliHLTHOMERBlockDesc.cxx:9 AliHLTHOMERBlockDesc.cxx:10 AliHLTHOMERBlockDesc.cxx:11 AliHLTHOMERBlockDesc.cxx:12 AliHLTHOMERBlockDesc.cxx:13 AliHLTHOMERBlockDesc.cxx:14 AliHLTHOMERBlockDesc.cxx:15 AliHLTHOMERBlockDesc.cxx:16 AliHLTHOMERBlockDesc.cxx:17 AliHLTHOMERBlockDesc.cxx:18 AliHLTHOMERBlockDesc.cxx:19 AliHLTHOMERBlockDesc.cxx:20 AliHLTHOMERBlockDesc.cxx:21 AliHLTHOMERBlockDesc.cxx:22 AliHLTHOMERBlockDesc.cxx:23 AliHLTHOMERBlockDesc.cxx:24 AliHLTHOMERBlockDesc.cxx:25 AliHLTHOMERBlockDesc.cxx:26 AliHLTHOMERBlockDesc.cxx:27 AliHLTHOMERBlockDesc.cxx:28 AliHLTHOMERBlockDesc.cxx:29 AliHLTHOMERBlockDesc.cxx:30 AliHLTHOMERBlockDesc.cxx:31 AliHLTHOMERBlockDesc.cxx:32 AliHLTHOMERBlockDesc.cxx:33 AliHLTHOMERBlockDesc.cxx:34 AliHLTHOMERBlockDesc.cxx:35 AliHLTHOMERBlockDesc.cxx:36 AliHLTHOMERBlockDesc.cxx:37 AliHLTHOMERBlockDesc.cxx:38 AliHLTHOMERBlockDesc.cxx:39 AliHLTHOMERBlockDesc.cxx:40 AliHLTHOMERBlockDesc.cxx:41 AliHLTHOMERBlockDesc.cxx:42 AliHLTHOMERBlockDesc.cxx:43 AliHLTHOMERBlockDesc.cxx:44 AliHLTHOMERBlockDesc.cxx:45 AliHLTHOMERBlockDesc.cxx:46 AliHLTHOMERBlockDesc.cxx:47 AliHLTHOMERBlockDesc.cxx:48 AliHLTHOMERBlockDesc.cxx:49 AliHLTHOMERBlockDesc.cxx:50 AliHLTHOMERBlockDesc.cxx:51 AliHLTHOMERBlockDesc.cxx:52 AliHLTHOMERBlockDesc.cxx:53 AliHLTHOMERBlockDesc.cxx:54 AliHLTHOMERBlockDesc.cxx:55 AliHLTHOMERBlockDesc.cxx:56 AliHLTHOMERBlockDesc.cxx:57 AliHLTHOMERBlockDesc.cxx:58 AliHLTHOMERBlockDesc.cxx:59 AliHLTHOMERBlockDesc.cxx:60 AliHLTHOMERBlockDesc.cxx:61 AliHLTHOMERBlockDesc.cxx:62 AliHLTHOMERBlockDesc.cxx:63 AliHLTHOMERBlockDesc.cxx:64 AliHLTHOMERBlockDesc.cxx:65 AliHLTHOMERBlockDesc.cxx:66 AliHLTHOMERBlockDesc.cxx:67 AliHLTHOMERBlockDesc.cxx:68 AliHLTHOMERBlockDesc.cxx:69 AliHLTHOMERBlockDesc.cxx:70 AliHLTHOMERBlockDesc.cxx:71 AliHLTHOMERBlockDesc.cxx:72 AliHLTHOMERBlockDesc.cxx:73 AliHLTHOMERBlockDesc.cxx:74 AliHLTHOMERBlockDesc.cxx:75 AliHLTHOMERBlockDesc.cxx:76 AliHLTHOMERBlockDesc.cxx:77 AliHLTHOMERBlockDesc.cxx:78 AliHLTHOMERBlockDesc.cxx:79 AliHLTHOMERBlockDesc.cxx:80 AliHLTHOMERBlockDesc.cxx:81 AliHLTHOMERBlockDesc.cxx:82 AliHLTHOMERBlockDesc.cxx:83 AliHLTHOMERBlockDesc.cxx:84 AliHLTHOMERBlockDesc.cxx:85 AliHLTHOMERBlockDesc.cxx:86 AliHLTHOMERBlockDesc.cxx:87 AliHLTHOMERBlockDesc.cxx:88 AliHLTHOMERBlockDesc.cxx:89 AliHLTHOMERBlockDesc.cxx:90 AliHLTHOMERBlockDesc.cxx:91 AliHLTHOMERBlockDesc.cxx:92 AliHLTHOMERBlockDesc.cxx:93 AliHLTHOMERBlockDesc.cxx:94 AliHLTHOMERBlockDesc.cxx:95 AliHLTHOMERBlockDesc.cxx:96 AliHLTHOMERBlockDesc.cxx:97 AliHLTHOMERBlockDesc.cxx:98 AliHLTHOMERBlockDesc.cxx:99 AliHLTHOMERBlockDesc.cxx:100 AliHLTHOMERBlockDesc.cxx:101 AliHLTHOMERBlockDesc.cxx:102 AliHLTHOMERBlockDesc.cxx:103 AliHLTHOMERBlockDesc.cxx:104 AliHLTHOMERBlockDesc.cxx:105 AliHLTHOMERBlockDesc.cxx:106 AliHLTHOMERBlockDesc.cxx:107 AliHLTHOMERBlockDesc.cxx:108 AliHLTHOMERBlockDesc.cxx:109 AliHLTHOMERBlockDesc.cxx:110 AliHLTHOMERBlockDesc.cxx:111 AliHLTHOMERBlockDesc.cxx:112 AliHLTHOMERBlockDesc.cxx:113 AliHLTHOMERBlockDesc.cxx:114 AliHLTHOMERBlockDesc.cxx:115 AliHLTHOMERBlockDesc.cxx:116 AliHLTHOMERBlockDesc.cxx:117 AliHLTHOMERBlockDesc.cxx:118 AliHLTHOMERBlockDesc.cxx:119 AliHLTHOMERBlockDesc.cxx:120 AliHLTHOMERBlockDesc.cxx:121 AliHLTHOMERBlockDesc.cxx:122 AliHLTHOMERBlockDesc.cxx:123 AliHLTHOMERBlockDesc.cxx:124 AliHLTHOMERBlockDesc.cxx:125 AliHLTHOMERBlockDesc.cxx:126 AliHLTHOMERBlockDesc.cxx:127 AliHLTHOMERBlockDesc.cxx:128 AliHLTHOMERBlockDesc.cxx:129 AliHLTHOMERBlockDesc.cxx:130 AliHLTHOMERBlockDesc.cxx:131 AliHLTHOMERBlockDesc.cxx:132 AliHLTHOMERBlockDesc.cxx:133 AliHLTHOMERBlockDesc.cxx:134 AliHLTHOMERBlockDesc.cxx:135 AliHLTHOMERBlockDesc.cxx:136 AliHLTHOMERBlockDesc.cxx:137 AliHLTHOMERBlockDesc.cxx:138 AliHLTHOMERBlockDesc.cxx:139 AliHLTHOMERBlockDesc.cxx:140 AliHLTHOMERBlockDesc.cxx:141 AliHLTHOMERBlockDesc.cxx:142 AliHLTHOMERBlockDesc.cxx:143 AliHLTHOMERBlockDesc.cxx:144 AliHLTHOMERBlockDesc.cxx:145 AliHLTHOMERBlockDesc.cxx:146 AliHLTHOMERBlockDesc.cxx:147 AliHLTHOMERBlockDesc.cxx:148 AliHLTHOMERBlockDesc.cxx:149 AliHLTHOMERBlockDesc.cxx:150 AliHLTHOMERBlockDesc.cxx:151 AliHLTHOMERBlockDesc.cxx:152 AliHLTHOMERBlockDesc.cxx:153 AliHLTHOMERBlockDesc.cxx:154 AliHLTHOMERBlockDesc.cxx:155 AliHLTHOMERBlockDesc.cxx:156 AliHLTHOMERBlockDesc.cxx:157 AliHLTHOMERBlockDesc.cxx:158 AliHLTHOMERBlockDesc.cxx:159 AliHLTHOMERBlockDesc.cxx:160 AliHLTHOMERBlockDesc.cxx:161 AliHLTHOMERBlockDesc.cxx:162 AliHLTHOMERBlockDesc.cxx:163 AliHLTHOMERBlockDesc.cxx:164 AliHLTHOMERBlockDesc.cxx:165 AliHLTHOMERBlockDesc.cxx:166 AliHLTHOMERBlockDesc.cxx:167 AliHLTHOMERBlockDesc.cxx:168 AliHLTHOMERBlockDesc.cxx:169 AliHLTHOMERBlockDesc.cxx:170 AliHLTHOMERBlockDesc.cxx:171 AliHLTHOMERBlockDesc.cxx:172 AliHLTHOMERBlockDesc.cxx:173 AliHLTHOMERBlockDesc.cxx:174 AliHLTHOMERBlockDesc.cxx:175 AliHLTHOMERBlockDesc.cxx:176 AliHLTHOMERBlockDesc.cxx:177 AliHLTHOMERBlockDesc.cxx:178 AliHLTHOMERBlockDesc.cxx:179 AliHLTHOMERBlockDesc.cxx:180 AliHLTHOMERBlockDesc.cxx:181 AliHLTHOMERBlockDesc.cxx:182 AliHLTHOMERBlockDesc.cxx:183 AliHLTHOMERBlockDesc.cxx:184 AliHLTHOMERBlockDesc.cxx:185 AliHLTHOMERBlockDesc.cxx:186 AliHLTHOMERBlockDesc.cxx:187 AliHLTHOMERBlockDesc.cxx:188 AliHLTHOMERBlockDesc.cxx:189 AliHLTHOMERBlockDesc.cxx:190 AliHLTHOMERBlockDesc.cxx:191 AliHLTHOMERBlockDesc.cxx:192 AliHLTHOMERBlockDesc.cxx:193 AliHLTHOMERBlockDesc.cxx:194 AliHLTHOMERBlockDesc.cxx:195 AliHLTHOMERBlockDesc.cxx:196 AliHLTHOMERBlockDesc.cxx:197 AliHLTHOMERBlockDesc.cxx:198 AliHLTHOMERBlockDesc.cxx:199 AliHLTHOMERBlockDesc.cxx:200 AliHLTHOMERBlockDesc.cxx:201 AliHLTHOMERBlockDesc.cxx:202 AliHLTHOMERBlockDesc.cxx:203 AliHLTHOMERBlockDesc.cxx:204 AliHLTHOMERBlockDesc.cxx:205 AliHLTHOMERBlockDesc.cxx:206 AliHLTHOMERBlockDesc.cxx:207 AliHLTHOMERBlockDesc.cxx:208 AliHLTHOMERBlockDesc.cxx:209 AliHLTHOMERBlockDesc.cxx:210 AliHLTHOMERBlockDesc.cxx:211 AliHLTHOMERBlockDesc.cxx:212 AliHLTHOMERBlockDesc.cxx:213 AliHLTHOMERBlockDesc.cxx:214 AliHLTHOMERBlockDesc.cxx:215 AliHLTHOMERBlockDesc.cxx:216 AliHLTHOMERBlockDesc.cxx:217 AliHLTHOMERBlockDesc.cxx:218 AliHLTHOMERBlockDesc.cxx:219 AliHLTHOMERBlockDesc.cxx:220 AliHLTHOMERBlockDesc.cxx:221 AliHLTHOMERBlockDesc.cxx:222 AliHLTHOMERBlockDesc.cxx:223 AliHLTHOMERBlockDesc.cxx:224 AliHLTHOMERBlockDesc.cxx:225 AliHLTHOMERBlockDesc.cxx:226 AliHLTHOMERBlockDesc.cxx:227 AliHLTHOMERBlockDesc.cxx:228 AliHLTHOMERBlockDesc.cxx:229 AliHLTHOMERBlockDesc.cxx:230 AliHLTHOMERBlockDesc.cxx:231 AliHLTHOMERBlockDesc.cxx:232 AliHLTHOMERBlockDesc.cxx:233 AliHLTHOMERBlockDesc.cxx:234 AliHLTHOMERBlockDesc.cxx:235 AliHLTHOMERBlockDesc.cxx:236 AliHLTHOMERBlockDesc.cxx:237 AliHLTHOMERBlockDesc.cxx:238 AliHLTHOMERBlockDesc.cxx:239 AliHLTHOMERBlockDesc.cxx:240 AliHLTHOMERBlockDesc.cxx:241 AliHLTHOMERBlockDesc.cxx:242 AliHLTHOMERBlockDesc.cxx:243 AliHLTHOMERBlockDesc.cxx:244 AliHLTHOMERBlockDesc.cxx:245 AliHLTHOMERBlockDesc.cxx:246 AliHLTHOMERBlockDesc.cxx:247 AliHLTHOMERBlockDesc.cxx:248 AliHLTHOMERBlockDesc.cxx:249 AliHLTHOMERBlockDesc.cxx:250 AliHLTHOMERBlockDesc.cxx:251