@brief Component for ploting charge in clusters
*/
-#if __GNUC__>= 3
-using namespace std;
-#endif
-
#include "TFile.h"
#include "TString.h"
#include "TObjString.h"
//#include <stdlib.h>
//#include <cerrno>
+using namespace std;
+
/** ROOT macro for the implementation of ROOT specific class methods */
ClassImp(AliHLTTRDClusterHistoComponent)
AliHLTTRDClusterHistoComponent::AliHLTTRDClusterHistoComponent()
: AliHLTProcessor(),
fOutputSize(100000),
+ fSpec(0),
fClusterArray(NULL),
fNClsDet(NULL),
fClsAmp(NULL),
fClsAmpDrift(NULL),
fClsTB(NULL),
+ fClsAmpDriftDet(),
fClsAmpDist(NULL),
fSClsDist(NULL),
- fNScls(NULL)
+ fNScls(NULL),
+ fEvSize(NULL)
{
// see header file for class documentation
// or
// refer to README to build package
// or
// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
-
+ memset(fClsAmpDriftDet, 0, sizeof(fClsAmpDriftDet));
}
AliHLTTRDClusterHistoComponent::~AliHLTTRDClusterHistoComponent()
fClsAmpDist = new TH1F("trdClsAmpDist", "mean amplitude", 200, 0, 1000);
fSClsDist = new TH1F("sclsdist", "Super cluster spectrum", 200, 0, 8000);
fNScls = new TH1F("nscls", "No. of Kr clusters per event", 540, 0, 540);
+ fEvSize = new TH1F("TrdClEvSize", "Clusters size per event per ddl in kbyte", 512, 0, 512);
for(int i=0; i<540; i++) {
fClsAmpDriftDet[i] = new TH1F(Form("trdClsDriftDet_%d",i), "", 200, -0.5, 199.5);
if (fClsAmpDist) delete fClsAmpDist;
if (fSClsDist) delete fSClsDist;
if (fNScls) delete fNScls;
+ if (fEvSize) delete fEvSize;
for(int i=0; i<540; i++){
if (fClsAmpDriftDet[i]) delete fClsAmpDriftDet[i];
// return 0;
// }
- if (GetFirstInputBlock(kAliHLTDataTypeSOR) || GetFirstInputBlock(kAliHLTDataTypeEOR)) return 0;
+ if(!IsDataEvent())return 0;
const AliHLTComponentBlockData* iter = NULL;
Bool_t gotData = kFALSE;
- AliHLTUInt32_t spec = 0;
for ( iter = GetFirstInputBlock(AliHLTTRDDefinitions::fgkClusterDataType);
iter != NULL; iter = GetNextInputBlock() ) {
- HLTDebug("We get the right data type: Block Ptr: 0x%x; Block Size: %i",
- iter->fPtr, iter->fSize);
-
+ 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;
- HLTDebug("TClonesArray of clusters: nbEntries = %i", fClusterArray->GetEntriesFast());
-
Float_t sClusterCharge[540] = { 0 };
AliTRDcluster *cls;
//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*)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;
}