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),
26 // Default constructor.
33 //________________________________________________________________________
34 AliEmcalContainer::AliEmcalContainer(const char *name):
38 fIsParticleLevel(kFALSE),
43 // Standard constructor.
50 //________________________________________________________________________
51 void AliEmcalContainer::SetArray(AliVEvent *event)
53 // Get array from event.
55 const AliVVertex *vertex = event->GetPrimaryVertex();
56 if (vertex) vertex->GetXYZ(fVertex);
58 if (!fClArrayName.IsNull() && !fClArray) {
59 fClArray = dynamic_cast<TClonesArray*>(event->FindListObject(fClArrayName));
61 AliError(Form("%s: Could not retrieve array with name %s!", GetName(), fClArrayName.Data()));
68 if (!fClassName.IsNull()) {
69 TString objname(fClArray->GetClass()->GetName());
71 if (!cls.InheritsFrom(fClassName)) {
72 AliError(Form("%s: Objects of type %s in %s are not inherited from %s!",
73 GetName(), cls.GetName(), fClArrayName.Data(), fClassName.Data()));
78 fLabelMap = dynamic_cast<AliNamedArrayI*>(event->FindListObject(fClArrayName + "_Map"));
81 //________________________________________________________________________
82 Int_t AliEmcalContainer::GetIndexFromLabel(Int_t lab) const
85 if (lab < fLabelMap->GetSize()) {
86 return fLabelMap->At(lab);
89 AliDebug(3,Form("%s_AliEmcalContainer::GetIndexFromLabel - Label not found in the map, returning -1...",fClArrayName.Data()));
94 AliDebug(3,Form("%s_AliEmcalContainer::GetIndexFromLabel - No index-label map found, returning label...",fClArrayName.Data()));