2 // Emcal Container Base class
7 #include <TClonesArray.h>
10 #include "AliNamedArrayI.h"
12 #include "AliEmcalContainer.h"
14 ClassImp(AliEmcalContainer)
16 //________________________________________________________________________
17 AliEmcalContainer::AliEmcalContainer():
18 TNamed("AliEmcalContainer","AliEmcalContainer"),
21 fIsParticleLevel(kFALSE),
27 // Default constructor.
34 //________________________________________________________________________
35 AliEmcalContainer::AliEmcalContainer(const char *name):
39 fIsParticleLevel(kFALSE),
45 // Standard constructor.
52 //________________________________________________________________________
53 void AliEmcalContainer::SetArray(AliVEvent *event)
55 // Get array from event.
57 const AliVVertex *vertex = event->GetPrimaryVertex();
58 if (vertex) vertex->GetXYZ(fVertex);
60 if (!fClArrayName.IsNull() && !fClArray) {
61 fClArray = dynamic_cast<TClonesArray*>(event->FindListObject(fClArrayName));
63 AliError(Form("%s: Could not retrieve array with name %s!", GetName(), fClArrayName.Data()));
70 if (!fClassName.IsNull()) {
71 TString objname(fClArray->GetClass()->GetName());
73 if (!cls.InheritsFrom(fClassName)) {
74 AliError(Form("%s: Objects of type %s in %s are not inherited from %s!",
75 GetName(), cls.GetName(), fClArrayName.Data(), fClassName.Data()));
80 fLabelMap = dynamic_cast<AliNamedArrayI*>(event->FindListObject(fClArrayName + "_Map"));
83 //________________________________________________________________________
84 Int_t AliEmcalContainer::GetIndexFromLabel(Int_t lab) const
87 if (lab < fLabelMap->GetSize()) {
88 return fLabelMap->At(lab);
91 AliDebug(3,Form("%s_AliEmcalContainer::GetIndexFromLabel - Label not found in the map, returning -1...",fClArrayName.Data()));
96 AliDebug(3,Form("%s_AliEmcalContainer::GetIndexFromLabel - No index-label map found, returning label...",fClArrayName.Data()));
101 //________________________________________________________________________
102 UShort_t AliEmcalContainer::GetRejectionReasonBitPosition() const
104 // Returns the highest bit in the rejection map.
106 UInt_t rs = fRejectionReason;
108 while (rs >>= 1) { p++; }