]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/EMCAL/AliEmcalContainer.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalContainer.cxx
index 86d9048a2e8a5c600cd9e4570731223ad64d7dff..6a9ce44150964cff8a6cccc46eba8f068e238bf6 100644 (file)
@@ -5,10 +5,9 @@
 
 
 #include <TClonesArray.h>
-
-#include "AliEmcalJet.h"
 #include "AliVEvent.h"
 #include "AliLog.h"
+#include "AliNamedArrayI.h"
 
 #include "AliEmcalContainer.h"
 
@@ -17,10 +16,13 @@ ClassImp(AliEmcalContainer)
 //________________________________________________________________________
 AliEmcalContainer::AliEmcalContainer():
   TNamed("AliEmcalContainer","AliEmcalContainer"),
-  fClArray(0),
   fClArrayName(),
   fClassName(),
-  fCurrentID(0)
+  fIsParticleLevel(kFALSE),
+  fClArray(0),
+  fCurrentID(0),
+  fLabelMap(0),
+  fRejectionReason(0)
 {
   // Default constructor.
 
@@ -32,10 +34,13 @@ AliEmcalContainer::AliEmcalContainer():
 //________________________________________________________________________
 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.
 
@@ -71,4 +76,35 @@ void AliEmcalContainer::SetArray(AliVEvent *event)
       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;
 }