AliHLTTRDClusterHistoComponent::AliHLTTRDClusterHistoComponent()
: AliHLTProcessor(),
fOutputSize(100000),
+ fSpec(0),
fClusterArray(NULL),
fNClsDet(NULL),
fClsAmp(NULL),
const AliHLTComponentBlockData* iter = NULL;
Bool_t gotData = kFALSE;
- AliHLTUInt32_t spec = 0;
for ( iter = GetFirstInputBlock(AliHLTTRDDefinitions::fgkClusterDataType);
iter != NULL; iter = GetNextInputBlock() ) {
- HLTDebug("TClonesArray of clusters: nbEntries = %i", fClusterArray->GetEntriesFast());
-
fEvSize->Fill((iter->fSize+0.5f)/1024);
AliHLTTRDUtils::ReadClusters(fClusterArray, iter->fPtr, iter->fSize);
+ HLTDebug("TClonesArray of clusters: nbEntries = %i", fClusterArray->GetEntriesFast());
gotData = kTRUE;
- spec = iter->fSpecification;
+ fSpec |= iter->fSpecification;
}
if(!gotData) return 0;
//fNScls->Fill(nSClusters);
- PushBack((TObject*)fNClsDet, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, spec);
- PushBack((TObject*)fClsAmp, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, spec);
- PushBack((TObject*)fClsAmpDrift, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, spec);
- PushBack((TObject*)fClsTB, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, spec);
- //PushBack((TObject*)fClsAmpDist, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, spec);
- //PushBack((TObject*)fNScls, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, spec);
- PushBack((TObject*)fSClsDist, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, spec);
- PushBack((TObject*)fEvSize, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, spec);
+ PushBack((TObject*)fNClsDet, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fClsAmp, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fClsAmpDrift, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fClsTB, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ //PushBack((TObject*)fClsAmpDist, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ //PushBack((TObject*)fNScls, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fSClsDist, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fEvSize, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
return 0;
}
*/
AliHLTUInt32_t fOutputSize; // output size
+ AliHLTUInt32_t fSpec; // accumulated specification
TClonesArray* fClusterArray; // input array
- TH1F *fNClsDet;
- TH1F *fClsAmp;
- TH1F *fClsAmpDrift;
- TH1F *fClsTB;
+ TH1F *fNClsDet; // distribution of detectors
+ TH1F *fClsAmp; // distribution of charge
+ TH1F *fClsAmpDrift; // distribution of charge in drift region
+ TH1F *fClsTB; // distribution of time bins
TH1F *fClsAmpDriftDet[540];
TH1F *fClsAmpDist;
AliHLTTRDTrackHistoComponent::AliHLTTRDTrackHistoComponent()
: AliHLTProcessor(),
fOutputSize(100000),
+ fSpec(0),
fTracksArray(NULL),
fClPerTrkl(NULL),
fTrklPerTrk(NULL),
AliHLTTRDUtils::ReadTracks(fTracksArray, iter->fPtr, iter->fSize);
HLTDebug("TClonesArray of tracks: nbEntries = %i", fTracksArray->GetEntriesFast());
gotData=kTRUE;
+ fSpec |= iter->fSpecification;
}
if(!gotData) return 0;
fTracksArray->Delete();
- PushBack((TObject*)fClPerTrkl, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, 0);
- PushBack((TObject*)fTrklPerTrk, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, 0);
- PushBack((TObject*)fEvSize, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, 0);
- PushBack((TObject*)fEtaDistrib, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, 0);
- PushBack((TObject*)fPhiDistrib, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, 0);
- PushBack((TObject*)fPtDistrib, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, 0);
+ PushBack((TObject*)fClPerTrkl, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fTrklPerTrk, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fEvSize, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fEtaDistrib, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fPhiDistrib, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
+ PushBack((TObject*)fPtDistrib, kAliHLTDataTypeHistogram | kAliHLTDataOriginTRD, fSpec);
return 0;
}
*/
AliHLTUInt32_t fOutputSize; // output size
- TClonesArray* fTracksArray; // input array
+ AliHLTUInt32_t fSpec; // accumulated specification
+ TClonesArray* fTracksArray; // input array
TH1F *fClPerTrkl; // Number of clusters per tracklet
TH1F *fTrklPerTrk; // Number of tracklets per track
TObjString strg;
strg.String() += fNtimeBins;
if(trdTracks)
- PushBack(trdTracks, AliHLTTRDDefinitions::fgkHiLvlTracksDataType, 0);
+ PushBack(trdTracks, AliHLTTRDDefinitions::fgkHiLvlTracksDataType, block.fSpecification);
else{
TClonesArray temp("AliTRDtrackV1");
- PushBack(&temp, AliHLTTRDDefinitions::fgkHiLvlTracksDataType, 0);
+ PushBack(&temp, AliHLTTRDDefinitions::fgkHiLvlTracksDataType, block.fSpecification);
}
- PushBack(&strg, AliHLTTRDDefinitions::fgkHiLvlTracksDataType, 0);
+ PushBack(&strg, AliHLTTRDDefinitions::fgkHiLvlTracksDataType, block.fSpecification);
if(fEmulateHLTTracks && trdTracks){
trdTracks->Delete();
AliHLTUInt32_t AliHLTTRDUtils::GetSM(AliHLTUInt32_t spec)
{
- spec -= 1;
- int count = 0;
+ spec = (spec&-spec); // use only least significant bit
+ spec -= 1; // as spec is now power of 2, this creates ones..
+ int count = 0; // .. which are counted
while (spec) {
count++;
spec &= spec - 1;