#include "Rtypes.h"
#include "AliVMisc.h"
-#include "AliVVevent.h"
+#include "AliVEvent.h"
#include "AliFlatESDTrack.h"
#include "AliFlatESDVertex.h"
#include "AliFlatESDFriend.h"
class AliESDEvent;
class AliESDVertex;
-class AliFlatESDEvent :public AliVVevent {
+class AliFlatESDEvent :public AliVEvent {
public:
// --------------------------------------------------------------------------------
// -- Constructor / Destructors
void Reinitialize() { new (this) AliFlatESDEvent( AliVReinitialize ); }
// --------------------------------------------------------------------------------
- // Interface to AliVVEvent
Double_t GetMagneticField() const { return fMagneticField; }
UInt_t GetPeriodNumber() const { return fPeriodNumber; }
UInt_t GetEventSpecie() const { return fEventSpecie; }
Int_t GetNumberOfKinks() const { return 0; }
- const AliVVtrack* GetVVTrack(Int_t i) const { return GetFlatTrack(i); }
- AliESDkink* GetKink(Int_t /*i*/) const { return NULL;}
+ AliVTrack *GetVTrack( Int_t i ) const { return GetFlatTrackNonConst(i); }
+ AliESDkink *GetKink(Int_t /*i*/) const { return NULL;}
+ using AliVEvent::GetPrimaryVertex;
+ using AliVEvent::GetPrimaryVertexTPC;
+ using AliVEvent::GetPrimaryVertexSPD;
+ using AliVEvent::GetPrimaryVertexTracks;
+ Int_t GetPrimaryVertex( AliESDVertex &v ) const ;
+ Int_t GetPrimaryVertexTPC( AliESDVertex &v ) const ;
Int_t GetPrimaryVertexSPD( AliESDVertex &v ) const ;
Int_t GetPrimaryVertexTracks( AliESDVertex &v ) const ;
const AliFlatESDV0 *GetV0s() const { return reinterpret_cast<const AliFlatESDV0*>( fContent + fV0Pointer ); }
const AliFlatESDTrack *GetFlatTrack( Int_t i ) const ;
+ AliFlatESDTrack *GetFlatTrackNonConst( Int_t i ) const;
// --------------------------------------------------------------------------------
// -- Size methods
static ULong64_t EstimateSize(AliESDEvent*esd, Bool_t fillV0s=kTRUE );
+ // --------------------------------------------------------------------------------
+ // AliVEvent interface
+ virtual void Print(Option_t *option="") const {if (option){}; return;}
+ virtual void AddObject(TObject* /*obj*/) {}
+ virtual TObject* FindListObject(const char* /*name*/) const {return NULL;}
+ virtual TList* GetList() const {return NULL;}
+ virtual void CreateStdContent() {}
+ virtual void GetStdContent() {}
+ virtual void ReadFromTree(TTree* /*tree*/, Option_t* /*opt*/) {}
+ virtual void WriteToTree(TTree* /*tree*/) const {}
+ virtual void SetStdNames() {}
+ virtual AliVHeader* GetHeader() const {return NULL;}
+ virtual void SetPeriodNumber(UInt_t) {}
+ virtual void SetEventType(UInt_t) {}
+ virtual void SetTriggerCluster(UChar_t) {}
+ virtual UInt_t GetEventType() const {return 0;}
+ virtual UChar_t GetTriggerCluster() const {return 0;}
+ virtual Double_t GetZDCN1Energy() const {return 0.;}
+ virtual Double_t GetZDCP1Energy() const {return 0.;}
+ virtual Double_t GetZDCN2Energy() const {return 0.;}
+ virtual Double_t GetZDCP2Energy() const {return 0.;}
+ virtual Double_t GetZDCEMEnergy(Int_t) const {return 0.;}
+ virtual AliVParticle* GetTrack(Int_t) const;
+ virtual Int_t GetNumberOfCascades() const {return 0;}
+ virtual AliCentrality* GetCentrality() {return NULL;}
+ virtual AliEventplane* GetEventplane() {return NULL;}
+ virtual Int_t EventIndex(Int_t) const {return 0;}
+ virtual Int_t EventIndexForCaloCluster(Int_t) const {return 0;}
+ virtual Int_t EventIndexForPHOSCell(Int_t) const {return 0;}
+ virtual Int_t EventIndexForEMCALCell(Int_t) const {return 0;}
+ virtual AliVVZERO* GetVZEROData() const {return NULL;}
+ virtual AliVZDC *GetZDCData() const {return NULL;}
+ virtual AliVEvent::EDataLayoutType GetDataLayoutType() const;
+
private:
AliFlatESDEvent( const AliFlatESDEvent& );
// -- Variable Size Object
Byte_t fContent[1]; // Variale size object, which contains all data
+
+ ClassDef(AliFlatESDEvent,0)
};
// Inline implementations
+inline AliFlatESDTrack *AliFlatESDEvent::GetFlatTrackNonConst( Int_t i ) const
+{
+ const Long64_t *table = reinterpret_cast<const Long64_t*> (fContent + fTrackTablePointer);
+ if( i<0 || i>(int) fNTracks || table[i]<0 ) return NULL;
+ return reinterpret_cast<AliFlatESDTrack*>( const_cast<Byte_t*>(fContent + table[i]) );
+}
+
inline const AliFlatESDTrack *AliFlatESDEvent::GetFlatTrack( Int_t i ) const
{
const Long64_t *table = reinterpret_cast<const Long64_t*> (fContent + fTrackTablePointer);
fContentSize += triggersSize;
}
-inline const AliFlatESDVertex* AliFlatESDEvent::GetFlatPrimaryVertexSPD() const
-{
- return (fPrimaryVertexMask & 0x1) ? reinterpret_cast<const AliFlatESDVertex*>(fContent + fPrimaryVertexSPDPointer) : NULL;
-}
-
inline const AliFlatESDVertex* AliFlatESDEvent::GetFlatPrimaryVertexTracks() const
{
- return (fPrimaryVertexMask & 0x2) ? (reinterpret_cast<const AliFlatESDVertex*>(fContent + fPrimaryVertexTracksPointer) ) : NULL;
+ return (fPrimaryVertexMask & 0x1) ? (reinterpret_cast<const AliFlatESDVertex*>(fContent + fPrimaryVertexTracksPointer) ) : NULL;
+}
+
+inline const AliFlatESDVertex* AliFlatESDEvent::GetFlatPrimaryVertexSPD() const
+{
+ return (fPrimaryVertexMask & 0x2) ? reinterpret_cast<const AliFlatESDVertex*>(fContent + fPrimaryVertexSPDPointer) : NULL;
}
inline Int_t AliFlatESDEvent::GetPrimaryVertexSPD( AliESDVertex &v ) const
return 0;
}
+inline Int_t AliFlatESDEvent::GetPrimaryVertexTPC( AliESDVertex &/*v*/ ) const
+{
+ return -1;
+}
+
+inline Int_t AliFlatESDEvent::GetPrimaryVertex( AliESDVertex &v ) const
+{
+ int ret = GetPrimaryVertexTracks( v );
+ if( ret<0 ) ret = GetPrimaryVertexSPD( v );
+ return ret;
+}
+
+
#endif