#include "AliESDFMD.h"
#include "AliESDVZERO.h"
#include "AliMultiplicity.h"
+#include "AliRawDataErrorLog.h"
+#include "AliESDACORDE.h"
class AliESDfriend;
class AliESD : public TObject {
public:
AliESD();
+ AliESD(const AliESD&);
virtual ~AliESD();
void SetESDfriend(const AliESDfriend *f);
void SetEventNumberInFile(Int_t n) {fEventNumberInFile=n;}
void SetBunchCrossNumber(UShort_t n) {fBunchCrossNumber=n;}
void SetOrbitNumber(UInt_t n) {fOrbitNumber=n;}
+ void SetPeriodNumber(UInt_t n) {fPeriodNumber=n;}
void SetRunNumber(Int_t n) {fRunNumber=n;}
void SetTimeStamp(UInt_t timeStamp){fTimeStamp = timeStamp;}
void SetEventType(UInt_t eventType){fEventType = eventType;}
return (AliESDTrdTrack *)fTrdTracks.UncheckedAt(i);
}
+ Bool_t Clean(Float_t *cleanPars);
+ Bool_t RemoveKink(Int_t i);
+ Bool_t RemoveV0(Int_t i);
+ Bool_t RemoveTrack(Int_t i);
+
Int_t AddTrack(const AliESDtrack *t) {
- AliESDtrack * track = new(fTracks[fTracks.GetEntriesFast()]) AliESDtrack(*t);
- track->SetID(fTracks.GetEntriesFast()-1);
- return track->GetID();
-
+ AliESDtrack * track = new(fTracks[fTracks.GetEntriesFast()]) AliESDtrack(*t);track->SetID(fTracks.GetEntriesFast()-1);return track->GetID();
}
void AddHLTConfMapTrack(const AliESDHLTtrack *t) {
new(fHLTConfMapTracks[fHLTConfMapTracks.GetEntriesFast()]) AliESDHLTtrack(*t);
}
const AliESDVertex *GetPrimaryVertex() const {return &fPrimaryVertex;}
+ void SetDiamond(const AliESDVertex *vertex);
+ Float_t GetDiamondX() const {return fDiamondXY[0];}
+ Float_t GetDiamondY() const {return fDiamondXY[1];}
+ Float_t GetSigma2DiamondX() const {return fDiamondCovXY[0];}
+ Float_t GetSigma2DiamondY() const {return fDiamondCovXY[2];}
+ void GetDiamondCovXY(Float_t cov[3]) const {
+ for(Int_t i=0;i<3;i++) cov[i]=fDiamondCovXY[i]; return;
+ }
+
Int_t GetEventNumberInFile() const {return fEventNumberInFile;}
UShort_t GetBunchCrossNumber() const {return fBunchCrossNumber;}
UInt_t GetOrbitNumber() const {return fOrbitNumber;}
+ UInt_t GetPeriodNumber() const {return fPeriodNumber;}
Int_t GetRunNumber() const {return fRunNumber;}
UInt_t GetTimeStamp() const { return fTimeStamp;}
UInt_t GetEventType() const { return fEventType;}
void SetVZEROData(AliESDVZERO * obj) { fESDVZERO = new AliESDVZERO(*obj); }
AliESDVZERO *GetVZEROData(){ return fESDVZERO; }
-
+ void SetACORDEData(AliESDACORDE * obj){ fESDACORDE = new AliESDACORDE(*obj); }
+ AliESDACORDE *GetACORDEDAta(){ return fESDACORDE; }
+ AliRawDataErrorLog *GetErrorLog(Int_t i) const {
+ return (AliRawDataErrorLog *)fErrorLogs.UncheckedAt(i);
+ }
+ void AddRawDataErrorLog(const AliRawDataErrorLog *log) {
+ new(fErrorLogs[fErrorLogs.GetEntriesFast()]) AliRawDataErrorLog(*log);
+ }
+ Int_t GetNumberOfErrorLogs() const {return fErrorLogs.GetEntriesFast();}
+
protected:
- AliESD(const AliESD&);
AliESD &operator=(const AliESD& source);
// Event Identification
+
Int_t fEventNumberInFile;// running Event count in the file
UShort_t fBunchCrossNumber;// Bunch Crossing Number
UInt_t fOrbitNumber; // Orbit Number
+ UInt_t fPeriodNumber; // Period Number
Int_t fRunNumber; // Run Number
UInt_t fTimeStamp; // Time stamp
UInt_t fEventType; // Type of Event
Float_t fT0zVertex; // vertex z position estimated by the T0
AliESDVertex fSPDVertex; // Primary vertex estimated by the SPD
AliESDVertex fPrimaryVertex; // Primary vertex estimated using ESD tracks
+ Float_t fDiamondXY[2]; // Interaction diamond (x,y) in RUN
+ Float_t fDiamondCovXY[3]; // Interaction diamond covariance (x,y) in RUN
AliMultiplicity fSPDMult; // SPD tracklet multiplicity
Float_t fT0timeStart; // interaction time estimated by the T0
AliESDFMD *fESDFMD; // FMD object containing rough multiplicity
AliESDVZERO *fESDVZERO; // VZERO object containing rough multiplicity
+ AliESDACORDE *fESDACORDE; // ACORDE ESD object containing bit pattern
+
+ TClonesArray fErrorLogs; // Raw-data reading error messages
- ClassDef(AliESD,18) //ESD class
+ ClassDef(AliESD,22) //ESD class
};
#endif