#include <TBits.h>
#include "AliExternalTrackParam.h"
#include "AliVTrack.h"
-#include "AliESDTOFcluster.h"
+#include "AliESDTOFCluster.h"
#include "AliPID.h"
#include "AliESDfriendTrack.h"
#include "AliTPCdEdxInfo.h"
class TParticle;
class AliESDVertex;
-class AliESDEvent;
class AliKalmanTrack;
class AliTrackPointArray;
class TPolyMarker3D;
class AliDetectorPID;
class TTreeSRedirector;
+class AliESDEvent;
class AliESDtrack : public AliExternalTrackParam {
public:
void AddCalibObject(TObject * object); // add calib object to the list
TObject * GetCalibObject(Int_t index); // return calib objct at given position
void MakeMiniESDtrack();
- void SetID(Short_t id) { fID =id;}
+ void SetID(Short_t id);
Int_t GetID() const { return fID;}
void SetVertexID(Char_t id) { fVertexID=id;}
Char_t GetVertexID() const { return fVertexID;}
Double_t GetIntegratedLength() const;
Double_t GetIntegratedLengthOld() const {return fTrackLength;}
- void GetIntegratedTimes(Double_t *times) const;
+ void GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIES) const;
Double_t GetIntegratedTimesOld(Int_t i) const {if(fTrackTime) return fTrackTime[i]; else return 0;};
Int_t GetPID(Bool_t tpcOnly=kFALSE) const;
Int_t GetTOFBunchCrossing(Double_t b=0, Bool_t pidTPConly=kTRUE) const;
Double_t M() const;
Double_t E() const;
Double_t Y() const;
-
+
Bool_t GetConstrainedPxPyPz(Double_t *p) const {
if (!fCp) return kFALSE;
return fCp->GetPxPyPz(p);
Bool_t GetOuterExternalParameters
(Double_t &alpha, Double_t &x, Double_t p[5]) const;
Bool_t GetOuterExternalCovariance(Double_t cov[15]) const;
-
+
Bool_t GetOuterHmpExternalParameters
(Double_t &alpha, Double_t &x, Double_t p[5]) const;
- Bool_t GetOuterHmpExternalCovariance(Double_t cov[15]) const;
-
+ Bool_t GetOuterHmpExternalCovariance(Double_t cov[15]) const;
Int_t GetNcls(Int_t idet) const;
Int_t GetClusters(Int_t idet, Int_t *idx) const;
void SetITSchi2Std(Double_t chi2, Int_t step) { if (step>-1&&step<kNITSchi2Std) fITSchi2Std[step] = chi2;}
Char_t GetITSclusters(Int_t *idx) const;
UChar_t GetITSClusterMap() const {return fITSClusterMap;}
+ void SetITSClusterMap(UChar_t amap) {fITSClusterMap = amap;}
+
+ Char_t GetITSNcls() const { return fITSncls;}
UChar_t GetITSSharedMap() const {return fITSSharedMap;}
void SetITSSharedFlag(int lr) {fITSSharedMap |= 0x1<<lr;}
Bool_t GetITSFakeFlag() const {return (fITSSharedMap&BIT(7))!=0;}
fTPCsignalTuned = signal;
}
void SetTPCdEdxInfo(AliTPCdEdxInfo * dEdxInfo);
+ Double_t GetdEdxInfo(Int_t regionID, Int_t calibID, Int_t qID,Int_t valueID);
+ Double_t GetdEdxInfoTRD(Int_t method, Double_t p0, Double_t p1, Double_t p2);
AliTPCdEdxInfo * GetTPCdEdxInfo() const {return fTPCdEdxInfo;}
Double_t GetTPCsignal() const {return fTPCsignal;}
return fFriendTrack!=NULL?fFriendTrack->GetTRDtrack():NULL;
}
+ // this are methods for manipulating with TOF clusters/matches
void SetTOFclusterArray(Int_t ncluster,Int_t *TOFcluster);
Int_t *GetTOFclusterArray() const {return fTOFcluster;}
Int_t GetNTOFclusters() const {return fNtofClusters;}
+ void SuppressTOFMatches();
+ void ReplaceTOFTrackID(int oldID, int newID);
+ void ReplaceTOFClusterID(int oldID, int newID);
+ void ReplaceTOFMatchID(int oldID, int newID);
void AddTOFcluster(Int_t icl);
- void SortTOFcluster();
- void ReMapTOFcluster(Int_t ncl,Int_t *mapping);
+ void SortTOFcluster(); // RS? Not to be used?
+ void ReMapTOFcluster(Int_t ncl,Int_t *mapping); // RS? Not to be used?
- void SetTOFsignal(Double_t tof) {fTOFsignal=tof;}
+ void SetTOFsignal(Double_t tof);
Double_t GetTOFsignal() const;
- void SetTOFsignalToT(Double_t ToT) {fTOFsignalToT=ToT;}
+ void SetTOFsignalToT(Double_t ToT);
Double_t GetTOFsignalToT() const;
- void SetTOFsignalRaw(Double_t tof) {fTOFsignalRaw=tof;}
+ void SetTOFsignalRaw(Double_t tof);
Double_t GetTOFsignalRaw() const;
- void SetTOFsignalDz(Double_t dz) {fTOFsignalDz=dz;}
+ void SetTOFsignalDz(Double_t dz);
Double_t GetTOFsignalDz() const;
- void SetTOFsignalDx(Double_t dx) {fTOFsignalDx=dx;}
+ void SetTOFsignalDx(Double_t dx);
Double_t GetTOFsignalDx() const;
- void SetTOFDeltaBC(Short_t deltaBC) {fTOFdeltaBC=deltaBC;};
+ void SetTOFDeltaBC(Short_t deltaBC);
Short_t GetTOFDeltaBC() const;
- void SetTOFL0L1(Short_t l0l1) {fTOFl0l1=l0l1;};
+ void SetTOFL0L1(Short_t l0l1);
Short_t GetTOFL0L1() const;
Double_t GetTOFchi2() const {return fTOFchi2;};
void SetTOFpid(const Double_t *p);
Int_t GetTOFCalChannel() const;
Int_t GetTOFcluster() const;
void SetTOFcluster(Int_t index) {fTOFindex=index;}
- void SetTOFCalChannel(Int_t index) {fTOFCalChannel=index;}
+ void SetTOFCalChannel(Int_t index);
Int_t GetTOFclusterN() const;
Bool_t IsTOFHitAlreadyMatched() const;
void SetTOFsignalTunedOnData(Double_t signal){fTOFsignalTuned=signal;}
Bool_t
RelateToVertexBxByBz(const AliESDVertex *vtx, Double_t b[3], Double_t maxd,
AliExternalTrackParam *cParam=0);
- void GetImpactParameters(Float_t &xy,Float_t &z) const {xy=fD; z=fZ;}
+ virtual void GetImpactParameters(Float_t &xy,Float_t &z) const {xy=fD; z=fZ;}
void GetImpactParameters(Float_t p[2], Float_t cov[3]) const {
p[0]=fD; p[1]=fZ; cov[0]=fCdd; cov[1]=fCdz; cov[2]=fCzz;
}
virtual void Print(Option_t * opt) const ;
const AliESDEvent* GetESDEvent() const {return fESDEvent;}
+ const AliTOFHeader* GetTOFHeader() const;
+ const AliVEvent* GetEvent() const {return (AliVEvent*)fESDEvent;}
void SetESDEvent(const AliESDEvent* evt) {fESDEvent = evt;}
// Trasient PID object, is owned by the track
// - set lengt of bit fields fTPCClusterMap and fTPCSharedMap to 0
static void OnlineMode(bool mode) {fgkOnlineMode=mode;}
static bool OnlineMode() {return fgkOnlineMode;}
- Double_t GetLengthInActiveZone(const AliExternalTrackParam *paramT, Double_t deltaY, Double_t deltaZ, Double_t bz, Double_t exbPhi =0 , TTreeSRedirector * pcstream =0 ) const;
+ static Double_t GetLengthInActiveZone(const AliExternalTrackParam *paramT, Double_t deltaY, Double_t deltaZ, Double_t bz, Double_t exbPhi =0 , TTreeSRedirector * pcstream =0 );
Double_t GetLengthInActiveZone( Int_t mode, Double_t deltaY, Double_t deltaZ, Double_t bz, Double_t exbPhi =0 , TTreeSRedirector * pcstream =0 ) const;
+
+ //---------------------------------------------------------------------------
+ //--the calibration interface--
+ //--to be used in online calibration/QA
+ //--should also be implemented in ESD so it works offline as well
+ //-----------
+ virtual Int_t GetTrackParam ( AliExternalTrackParam &p ) const {p=*this; return 0;}
+ virtual Int_t GetTrackParamRefitted ( AliExternalTrackParam & ) const {return 0;}
+ virtual Int_t GetTrackParamITSOut ( AliExternalTrackParam & ) const {return 0;}
+
+ Int_t GetTrackParamIp ( AliExternalTrackParam &p ) const {
+ if(!GetInnerParam()) return -1;
+ p=*GetInnerParam();
+ return 0;}
+
+ Int_t GetTrackParamOp ( AliExternalTrackParam &p ) const {
+ if(!GetOuterParam()) return -1;
+ p=*GetOuterParam();
+ return 0;}
+
+ Int_t GetTrackParamTPCInner ( AliExternalTrackParam &p ) const {
+ if(!GetTPCInnerParam()) return -1;
+ p=*GetTPCInnerParam();
+ return 0;}
+
+ Int_t GetTrackParamCp ( AliExternalTrackParam &p ) const {
+ if(!GetConstrainedParam()) return -1;
+ p=*GetConstrainedParam();
+ return 0;}
+
+
protected:
AliExternalTrackParam *fCp; // Track parameters constrained to the primary vertex