#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDMuonTrack.h"
+#include "AliESDMuonCluster.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"
#include "AliPID.h"
const AliHLTCTPData* pCTPData=CTPData();
if (pCTPData) {
- AliHLTUInt64_t mask=pCTPData->ActiveTriggers(trigData);
+ AliHLTTriggerMask_t mask=pCTPData->ActiveTriggers(trigData);
for (int index=0; index<gkNCTPTriggerClasses; index++) {
- if ((mask&((AliHLTUInt64_t)0x1<<index)) == 0) continue;
+ if ((mask&(AliHLTTriggerMask_t(0x1)<<index)) == 0) continue;
pESD->SetTriggerClass(pCTPData->Name(index), index);
}
- pESD->SetTriggerMask(mask);
+ //first 50 triggers
+ AliHLTTriggerMask_t mask50;
+ mask50.set(); // set all bits
+ mask50 >>= 50; // shift 50 right
+ pESD->SetTriggerMask((mask&mask50).to_ulong());
+ /* next 50, to be implemented
+ pESD->SetTriggerMaskNext50((mask>>50).to_ulong());
+ */
}
TTree* pTree = NULL;
for (vector<AliHLTGlobalBarrelTrack>::iterator element=tracks.begin();
element!=tracks.end(); element++) {
Float_t points[4] = {
- element->GetX(),
- element->GetY(),
- element->GetLastPointX(),
- element->GetLastPointY()
+ static_cast<Float_t>(element->GetX()),
+ static_cast<Float_t>(element->GetY()),
+ static_cast<Float_t>(element->GetLastPointX()),
+ static_cast<Float_t>(element->GetLastPointY())
};
Int_t mcLabel = -1;
}
}
- // Add tracks from MUON.
+ // Add tracks and clusters from MUON.
for( const AliHLTComponentBlockData *i= GetFirstInputBlock(kAliHLTAnyDataType | kAliHLTDataOriginMUON); i!=NULL; i=GetNextInputBlock() ){
fBenchmark.AddInput(i->fSize);
}
)
{
const TClonesArray* tracklist = NULL;
+ const TClonesArray* clusterlist = NULL;
if (obj->IsA() == AliESDEvent::Class())
{
const AliESDEvent* event = static_cast<const AliESDEvent*>(obj);
if (event->GetList() == NULL) continue;
tracklist = dynamic_cast<const TClonesArray*>(event->GetList()->FindObject("MuonTracks"));
if (tracklist == NULL) continue;
+ clusterlist = dynamic_cast<const TClonesArray*>(event->GetList()->FindObject("MuonClusters"));
+ if (clusterlist == NULL) continue;
}
else if (obj->IsA() == TClonesArray::Class())
{
- tracklist = static_cast<const TClonesArray*>(obj);
- HLTDebug("Received a MUON TClonesArray of tracks with specification: 0x%X", GetSpecification(obj));
+ if (!strcmp(obj->GetName(), "MuonTracks")) {
+ tracklist = static_cast<const TClonesArray*>(obj);
+ HLTDebug("Received a MUON TClonesArray of tracks with specification: 0x%X", GetSpecification(obj));
+ } else {
+ clusterlist = static_cast<const TClonesArray*>(obj);
+ HLTDebug("Received a MUON TClonesArray of clusters with specification: 0x%X", GetSpecification(obj));
+ }
}
else
{
// Cannot handle this object type.
continue;
}
- HLTDebug("Received %d MUON tracks.", tracklist->GetEntriesFast());
- if (tracklist->GetEntriesFast() > 0)
- {
- const AliESDMuonTrack* track = dynamic_cast<const AliESDMuonTrack*>(tracklist->UncheckedAt(0));
- if (track == NULL)
+ // copy tracks
+ if (tracklist) {
+ HLTDebug("Received %d MUON tracks.", tracklist->GetEntriesFast());
+ if (tracklist->GetEntriesFast() > 0)
+ {
+ const AliESDMuonTrack* track = dynamic_cast<const AliESDMuonTrack*>(tracklist->UncheckedAt(0));
+ if (track == NULL)
+ {
+ HLTError(Form("%s from MUON does not contain AliESDMuonTrack objects.", obj->ClassName()));
+ continue;
+ }
+ }
+ for (Int_t i = 0; i < tracklist->GetEntriesFast(); ++i)
{
- HLTError(Form("%s from MUON does not contain AliESDMuonTrack objects.", obj->ClassName()));
- continue;
+ AliESDMuonTrack* track = pESD->NewMuonTrack();
+ *track = *(static_cast<const AliESDMuonTrack*>(tracklist->UncheckedAt(i)));
}
}
- for (Int_t i = 0; i < tracklist->GetEntriesFast(); ++i)
- {
- const AliESDMuonTrack* track = static_cast<const AliESDMuonTrack*>(tracklist->UncheckedAt(i));
- pESD->AddMuonTrack(track);
+ // copy clusters
+ if (clusterlist) {
+ HLTDebug("Received %d MUON clusters.", clusterlist->GetEntriesFast());
+ if (clusterlist->GetEntriesFast() > 0)
+ {
+ const AliESDMuonCluster* cluster = dynamic_cast<const AliESDMuonCluster*>(clusterlist->UncheckedAt(0));
+ if (cluster == NULL)
+ {
+ HLTError(Form("%s from MUON does not contain AliESDMuonCluster objects.", obj->ClassName()));
+ continue;
+ }
+ }
+ for (Int_t i = 0; i < clusterlist->GetEntriesFast(); ++i)
+ {
+ AliESDMuonCluster* cluster = pESD->NewMuonCluster();
+ *cluster = *(static_cast<const AliESDMuonCluster*>(clusterlist->UncheckedAt(i)));
+ }
}
}