#include <TClonesArray.h>
-
-#include "AliEmcalJet.h"
#include "AliVEvent.h"
#include "AliLog.h"
+#include "AliNamedArrayI.h"
#include "AliEmcalContainer.h"
//________________________________________________________________________
AliEmcalContainer::AliEmcalContainer():
TNamed("AliEmcalContainer","AliEmcalContainer"),
- fClArray(0),
fClArrayName(),
fClassName(),
- fCurrentID(0)
+ fIsParticleLevel(kFALSE),
+ fClArray(0),
+ fCurrentID(0),
+ fLabelMap(0),
+ fRejectionReason(0)
{
// Default constructor.
//________________________________________________________________________
AliEmcalContainer::AliEmcalContainer(const char *name):
TNamed(name,name),
- fClArray(0),
fClArrayName(),
fClassName(),
- fCurrentID(0)
+ fIsParticleLevel(kFALSE),
+ fClArray(0),
+ fCurrentID(0),
+ fLabelMap(0),
+ fRejectionReason(0)
{
// Standard constructor.
fClArray = 0;
}
}
+
+ fLabelMap = dynamic_cast<AliNamedArrayI*>(event->FindListObject(fClArrayName + "_Map"));
+}
+
+//________________________________________________________________________
+Int_t AliEmcalContainer::GetIndexFromLabel(Int_t lab) const
+{
+ if (fLabelMap) {
+ if (lab < fLabelMap->GetSize()) {
+ return fLabelMap->At(lab);
+ }
+ else {
+ AliDebug(3,Form("%s_AliEmcalContainer::GetIndexFromLabel - Label not found in the map, returning -1...",fClArrayName.Data()));
+ return -1;
+ }
+ }
+ else {
+ AliDebug(3,Form("%s_AliEmcalContainer::GetIndexFromLabel - No index-label map found, returning label...",fClArrayName.Data()));
+ return lab;
+ }
+}
+
+//________________________________________________________________________
+UShort_t AliEmcalContainer::GetRejectionReasonBitPosition() const
+{
+ // Returns the highest bit in the rejection map.
+
+ UInt_t rs = fRejectionReason;
+ UShort_t p = 0;
+ while (rs >>= 1) { p++; }
+ return p;
}