#ifndef ALIMUONESDINTERFACE_H
#define ALIMUONESDINTERFACE_H
#include <AliMpExMap.h>
#include <TObject.h>
#include <TString.h>
#include "AliLog.h"
class AliMUONTrack;
class AliMUONVTrackStore;
class AliMUONVCluster;
class AliMUONVClusterStore;
class AliMUONVDigit;
class AliMUONVDigitStore;
class AliMUONLocalTrigger;
class AliMUONTriggerTrack;
class AliMUONVTriggerTrackStore;
class AliMUONVTriggerStore;
class AliMUONTrackParam;
class AliMUONVTrackReconstructor;
class AliESDEvent;
class AliESDMuonTrack;
class AliESDMuonCluster;
class AliESDMuonPad;
class TIterator;
class AliMUONRecoParam;
class AliMUONESDInterface : public TObject
{
public:
AliMUONESDInterface();
virtual ~AliMUONESDInterface();
virtual void Clear(Option_t* = "");
void LoadEvent(AliESDEvent& esdEvent, Bool_t refit = kTRUE);
AliMUONVTrackStore* GetTracks() const {return fTracks;}
AliMUONVDigitStore* GetDigits() const {return fDigits;}
AliMUONVTriggerStore* GetTriggers() const {return fTriggers;}
Int_t GetNTracks() const;
Int_t GetNClusters() const;
Int_t GetNClusters(UInt_t trackId) const;
Int_t GetNDigits() const;
Int_t GetNDigits(UInt_t trackId) const;
Int_t GetNDigits(UInt_t trackId, UInt_t clusterId) const;
Int_t GetNDigitsInCluster(UInt_t clusterId) const;
Int_t GetNTriggers() const;
Bool_t DigitsStored(UInt_t trackId) const;
AliMUONTrack* FindTrack(UInt_t trackId) const;
AliMUONVCluster* FindCluster(UInt_t clusterId) const;
AliMUONVCluster* FindCluster(UInt_t trackId, UInt_t clusterId) const;
AliMUONVDigit* FindDigit(UInt_t digitId) const;
AliMUONLocalTrigger* FindLocalTrigger(Int_t boardNumber) const;
TIterator* CreateTrackIterator() const;
TIterator* CreateClusterIterator() const;
TIterator* CreateClusterIterator(UInt_t trackId) const;
TIterator* CreateDigitIterator() const;
TIterator* CreateDigitIterator(UInt_t trackId) const;
TIterator* CreateDigitIterator(UInt_t trackId, UInt_t clusterId) const;
TIterator* CreateDigitIteratorInCluster(UInt_t clusterId) const;
TIterator* CreateLocalTriggerIterator() const;
public:
static void ResetTracker(const AliMUONRecoParam* recoParam = 0x0, Bool_t info = kTRUE);
static AliMUONVTrackReconstructor* GetTracker() {return fgTracker;}
static void UseTrackStore(TString name) {fgTrackStoreName = name;}
static void UseClusterStore(TString name) {fgClusterStoreName = name;}
static void UseDigitStore(TString name) {fgDigitStoreName = name;}
static void UseTriggerStore(TString name) {fgTriggerStoreName = name;}
static AliMUONVTrackStore* NewTrackStore();
static AliMUONVClusterStore* NewClusterStore();
static AliMUONVCluster* NewCluster();
static AliMUONVDigitStore* NewDigitStore();
static AliMUONVDigit* NewDigit();
static AliMUONVTriggerStore* NewTriggerStore();
static AliMUONVTriggerTrackStore* NewTriggerTrackStore();
static void GetParamAtVertex(const AliESDMuonTrack& esdTrack, AliMUONTrackParam& trackParam);
static void GetParamAtDCA(const AliESDMuonTrack& esdTrack, AliMUONTrackParam& trackParam);
static void GetParamAtFirstCluster(const AliESDMuonTrack& esdTrack, AliMUONTrackParam& trackParam);
static void GetParamCov(const AliESDMuonTrack& esdTrack, AliMUONTrackParam& trackParam);
static void SetParamAtVertex(const AliMUONTrackParam& trackParam, AliESDMuonTrack& esdTrack);
static void SetParamAtDCA(const AliMUONTrackParam& trackParam, AliESDMuonTrack& esdTrack);
static void SetParamAtFirstCluster(const AliMUONTrackParam& trackParam, AliESDMuonTrack& esdTrack);
static void SetParamCov(const AliMUONTrackParam& trackParam, AliESDMuonTrack& esdTrack);
static void ESDToMUON(const AliESDMuonTrack& esdTrack, AliMUONTrack& track, Bool_t refit = kTRUE);
static void ESDToMUON(const AliESDMuonTrack& esdTrack, AliMUONLocalTrigger& locTrg);
static void ESDToMUON(const AliESDMuonCluster& esdCluster, AliMUONVCluster& cluster);
static void ESDToMUON(const AliESDMuonPad& esdPad, AliMUONVDigit& digit);
static void MUONToESD(const AliMUONTrack& track, AliESDEvent& esd, const Double_t vertex[3],
const AliMUONVDigitStore* digits = 0x0, const AliMUONLocalTrigger* locTrg = 0x0);
static void MUONToESD(const AliMUONTrack& track, AliESDMuonTrack& esdTrack, const Double_t vertex[3],
const AliMUONLocalTrigger* locTrg = 0x0);
static void MUONToESD(const AliMUONLocalTrigger& locTrg, AliESDEvent& esd, UInt_t trackId,
const AliMUONTriggerTrack* triggerTrack = 0x0);
static void MUONToESD(const AliMUONLocalTrigger& locTrg, AliESDMuonTrack& esdTrack, UInt_t trackId,
const AliMUONTriggerTrack* triggerTrack = 0x0);
static void MUONToESD(const AliMUONVCluster& cluster, AliESDEvent& esd, const AliMUONVDigitStore* digits = 0x0);
static void MUONToESD(const AliMUONVCluster& cluster, AliESDMuonCluster& esdCluster, Bool_t copyPadsId = kFALSE);
static void MUONToESD(const AliMUONVDigit& digit, AliESDEvent& esd);
static void MUONToESD(const AliMUONVDigit& digit, AliESDMuonPad& esdPad);
static AliMUONTrack* Add(const AliESDMuonTrack& esdTrack, AliMUONVTrackStore& trackStore, Bool_t refit = kTRUE);
static void Add(const AliESDMuonTrack& esdTrack, AliMUONVTriggerStore& triggerStore);
static AliMUONVCluster* Add(const AliESDMuonCluster& esdCluster, AliMUONVClusterStore& clusterStore);
static AliMUONVDigit* Add(const AliESDMuonPad& esdPad, AliMUONVDigitStore& digitStore);
protected:
AliMUONESDInterface (const AliMUONESDInterface&);
AliMUONESDInterface& operator=(const AliMUONESDInterface&);
private:
void Reset();
private:
static AliMUONRecoParam* fgRecoParam;
static AliMUONVTrackReconstructor* fgTracker;
static TString fgTrackStoreName;
static TString fgClusterStoreName;
static TString fgDigitStoreName;
static TString fgTriggerStoreName;
static TString fgTriggerTrackStoreName;
AliMUONVTrackStore* fTracks;
AliMUONVDigitStore* fDigits;
AliMUONVTriggerStore* fTriggers;
AliMpExMap* fClusterMap;
AliMpExMap* fDigitMap;
ClassDef(AliMUONESDInterface,0)
};
#endif
AliMUONESDInterface.h:100 AliMUONESDInterface.h:101 AliMUONESDInterface.h:102 AliMUONESDInterface.h:103 AliMUONESDInterface.h:104 AliMUONESDInterface.h:105 AliMUONESDInterface.h:106 AliMUONESDInterface.h:107 AliMUONESDInterface.h:108 AliMUONESDInterface.h:109 AliMUONESDInterface.h:110 AliMUONESDInterface.h:111 AliMUONESDInterface.h:112 AliMUONESDInterface.h:113 AliMUONESDInterface.h:114 AliMUONESDInterface.h:115 AliMUONESDInterface.h:116 AliMUONESDInterface.h:117 AliMUONESDInterface.h:118 AliMUONESDInterface.h:119 AliMUONESDInterface.h:120 AliMUONESDInterface.h:121 AliMUONESDInterface.h:122 AliMUONESDInterface.h:123 AliMUONESDInterface.h:124 AliMUONESDInterface.h:125 AliMUONESDInterface.h:126 AliMUONESDInterface.h:127 AliMUONESDInterface.h:128 AliMUONESDInterface.h:129 AliMUONESDInterface.h:130 AliMUONESDInterface.h:131 AliMUONESDInterface.h:132 AliMUONESDInterface.h:133 AliMUONESDInterface.h:134 AliMUONESDInterface.h:135 AliMUONESDInterface.h:136 AliMUONESDInterface.h:137 AliMUONESDInterface.h:138 AliMUONESDInterface.h:139 AliMUONESDInterface.h:140 AliMUONESDInterface.h:141 AliMUONESDInterface.h:142 AliMUONESDInterface.h:143 AliMUONESDInterface.h:144 AliMUONESDInterface.h:145 AliMUONESDInterface.h:146 AliMUONESDInterface.h:147 AliMUONESDInterface.h:148 AliMUONESDInterface.h:149 AliMUONESDInterface.h:150 AliMUONESDInterface.h:151 AliMUONESDInterface.h:152 AliMUONESDInterface.h:153 AliMUONESDInterface.h:154 AliMUONESDInterface.h:155 AliMUONESDInterface.h:156 AliMUONESDInterface.h:157 AliMUONESDInterface.h:158 AliMUONESDInterface.h:159 AliMUONESDInterface.h:160 AliMUONESDInterface.h:161 AliMUONESDInterface.h:162 AliMUONESDInterface.h:163 AliMUONESDInterface.h:164 AliMUONESDInterface.h:165 AliMUONESDInterface.h:166 AliMUONESDInterface.h:167 AliMUONESDInterface.h:168 AliMUONESDInterface.h:169 AliMUONESDInterface.h:170 AliMUONESDInterface.h:171 AliMUONESDInterface.h:172 AliMUONESDInterface.h:173 AliMUONESDInterface.h:174 AliMUONESDInterface.h:175 AliMUONESDInterface.h:176 AliMUONESDInterface.h:177 AliMUONESDInterface.h:178 AliMUONESDInterface.h:179 AliMUONESDInterface.h:180 AliMUONESDInterface.h:181 AliMUONESDInterface.h:182 AliMUONESDInterface.h:183 AliMUONESDInterface.h:184 AliMUONESDInterface.h:185 AliMUONESDInterface.h:186 AliMUONESDInterface.h:187 AliMUONESDInterface.h:188 AliMUONESDInterface.h:189