From 672b5f431b0c30fd97dc3e080fa06accab03bc9a Mon Sep 17 00:00:00 2001 From: hristov Date: Thu, 4 Dec 2003 15:12:05 +0000 Subject: [PATCH] New classes for MUON and PHOS ESD (Yu.Belikov --- STEER/AliESD.cxx | 2 ++ STEER/AliESD.h | 23 ++++++++++++++++++++++- STEER/AliESDCaloTrack.cxx | 4 ++++ STEER/AliESDCaloTrack.h | 10 ++++++++++ STEER/AliESDMuonTrack.cxx | 4 ++++ STEER/AliESDMuonTrack.h | 10 ++++++++++ STEER/AliESDtrack.cxx | 32 +++++++++++++++++++++++++++++++- STEER/AliESDtrack.h | 9 ++++++--- STEER/STEERLinkDef.h | 5 ++--- STEER/libSTEER.pkg | 4 ++-- 10 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 STEER/AliESDCaloTrack.cxx create mode 100644 STEER/AliESDCaloTrack.h create mode 100644 STEER/AliESDMuonTrack.cxx create mode 100644 STEER/AliESDMuonTrack.h diff --git a/STEER/AliESD.cxx b/STEER/AliESD.cxx index ea915ff4bda..e7e39a912d8 100644 --- a/STEER/AliESD.cxx +++ b/STEER/AliESD.cxx @@ -33,6 +33,8 @@ AliESD::AliESD(): fTrigger(0), fRecoVersion(0), fTracks("AliESDtrack",15000), + fCaloTracks("AliESDCaloTrack",500), + fMuonTracks("AliESDMuonTrack",30), fV0s("AliESDv0",200), fCascades("AliESDcascade",20) { diff --git a/STEER/AliESD.h b/STEER/AliESD.h index eed56ba0976..19df050e99a 100644 --- a/STEER/AliESD.h +++ b/STEER/AliESD.h @@ -16,6 +16,8 @@ #include "TObject.h" #include "TClonesArray.h" #include "AliESDtrack.h" +#include "AliESDMuonTrack.h" +#include "AliESDCaloTrack.h" #include "AliESDv0.h" #include "AliESDcascade.h" @@ -24,6 +26,8 @@ public: AliESD(); virtual ~AliESD() { fTracks.Delete(); + fCaloTracks.Delete(); + fMuonTracks.Delete(); fV0s.Delete(); fCascades.Delete(); } @@ -33,9 +37,22 @@ public: AliESDtrack *GetTrack(Int_t i) { return (AliESDtrack *)fTracks.UncheckedAt(i); } + AliESDCaloTrack *GetCaloTrack(Int_t i) { + return (AliESDCaloTrack *)fCaloTracks.UncheckedAt(i); + } + AliESDMuonTrack *GetMuonTrack(Int_t i) { + return (AliESDMuonTrack *)fMuonTracks.UncheckedAt(i); + } + void AddTrack(const AliESDtrack *t) { new(fTracks[fTracks.GetEntriesFast()]) AliESDtrack(*t); } + void AddCaloTrack(const AliESDCaloTrack *t) { + new(fCaloTracks[fCaloTracks.GetEntriesFast()]) AliESDCaloTrack(*t); + } + void AddMuonTrack(const AliESDMuonTrack *t) { + new(fMuonTracks[fMuonTracks.GetEntriesFast()]) AliESDMuonTrack(*t); + } AliESDv0 *GetV0(Int_t i) { return (AliESDv0 *)fV0s.UncheckedAt(i); @@ -55,7 +72,9 @@ public: Int_t GetRunNumber() const {return fRunNumber;} Long_t GetTrigger() const {return fTrigger;} - Int_t GetNumberOfTracks() const {return fTracks.GetEntriesFast();} + Int_t GetNumberOfTracks() const {return fTracks.GetEntriesFast();} + Int_t GetNumberOfCaloTracks() const {return fCaloTracks.GetEntriesFast();} + Int_t GetNumberOfMuonTracks() const {return fMuonTracks.GetEntriesFast();} Int_t GetNumberOfV0s() const {return fV0s.GetEntriesFast();} Int_t GetNumberOfCascades() const {return fCascades.GetEntriesFast();} @@ -68,6 +87,8 @@ protected: Int_t fRecoVersion; // Version of reconstruction TClonesArray fTracks; // ESD tracks + TClonesArray fCaloTracks; // Calorimeters' ESD tracks + TClonesArray fMuonTracks; // MUON ESD tracks TClonesArray fV0s; // V0 vertices TClonesArray fCascades; // Cascade vertices diff --git a/STEER/AliESDCaloTrack.cxx b/STEER/AliESDCaloTrack.cxx new file mode 100644 index 00000000000..799264434b3 --- /dev/null +++ b/STEER/AliESDCaloTrack.cxx @@ -0,0 +1,4 @@ +#include "AliESDCaloTrack.h" + +ClassImp(AliESDCaloTrack) + diff --git a/STEER/AliESDCaloTrack.h b/STEER/AliESDCaloTrack.h new file mode 100644 index 00000000000..b983b0fb5e7 --- /dev/null +++ b/STEER/AliESDCaloTrack.h @@ -0,0 +1,10 @@ +#ifndef ALIESDCALOTRACK_H +#define ALIESDCALOTRACK_H + +#include "TObject.h" + +class AliESDCaloTrack : public TObject { + ClassDef(AliESDCaloTrack,1) //ESD calorimeter track class +}; + +#endif diff --git a/STEER/AliESDMuonTrack.cxx b/STEER/AliESDMuonTrack.cxx new file mode 100644 index 00000000000..e9b970b2e17 --- /dev/null +++ b/STEER/AliESDMuonTrack.cxx @@ -0,0 +1,4 @@ +#include "AliESDMuonTrack.h" + +ClassImp(AliESDMuonTrack) + diff --git a/STEER/AliESDMuonTrack.h b/STEER/AliESDMuonTrack.h new file mode 100644 index 00000000000..18d872af666 --- /dev/null +++ b/STEER/AliESDMuonTrack.h @@ -0,0 +1,10 @@ +#ifndef ALIESDMUONTRACK_H +#define ALIESDMUONTRACK_H + +#include "TObject.h" + +class AliESDMuonTrack : public TObject { + ClassDef(AliESDMuonTrack,1) //MUON ESD track class +}; + +#endif diff --git a/STEER/AliESDtrack.cxx b/STEER/AliESDtrack.cxx index 60076dd448e..6fbe66e8a6a 100644 --- a/STEER/AliESDtrack.cxx +++ b/STEER/AliESDtrack.cxx @@ -130,7 +130,17 @@ Bool_t AliESDtrack::UpdateTrackParams(AliKalmanTrack *t, ULong_t flags) { else fR[3]=1.;} // break; - case kTRDin: case kTRDout: case kTRDrefit: + case kTRDout: + { //requested by the PHOS ("temporary solution") + Double_t r=474.; + t->PropagateTo(r,30.,0.); + fOalpha=fRalpha; + fOx=fRx; + Int_t i; + for (i=0; i<5; i++) fOp[i]=fRp[i]; + for (i=0; i<15;i++) fOc[i]=fRc[i]; + } + case kTRDin: case kTRDrefit: fTRDncls=t->GetNumberOfClusters(); fTRDchi2=t->GetChi2(); for (Int_t i=0;iGetClusterIndex(i); @@ -201,6 +211,26 @@ void AliESDtrack::GetInnerXYZ(Double_t *xyz) const { xyz[0]=r*TMath::Cos(phi); xyz[1]=r*TMath::Sin(phi); xyz[2]=fIp[1]; } +void AliESDtrack::GetOuterPxPyPz(Double_t *p) const { + //--------------------------------------------------------------------- + // This function returns the global track momentum components + // af the radius of the PHOS + //--------------------------------------------------------------------- + Double_t phi=TMath::ASin(fOp[2]) + fOalpha; + Double_t pt=1./TMath::Abs(fOp[4]); + p[0]=pt*TMath::Cos(phi); p[1]=pt*TMath::Sin(phi); p[2]=pt*fOp[3]; +} + +void AliESDtrack::GetOuterXYZ(Double_t *xyz) const { + //--------------------------------------------------------------------- + // This function returns the global track position + // af the radius of the PHOS + //--------------------------------------------------------------------- + Double_t phi=TMath::ATan2(fOp[0],fOx) + fOalpha; + Double_t r=TMath::Sqrt(fOx*fOx + fOp[0]*fOp[0]); + xyz[0]=r*TMath::Cos(phi); xyz[1]=r*TMath::Sin(phi); xyz[2]=fOp[1]; +} + //_______________________________________________________________________ void AliESDtrack::GetExternalCovariance(Double_t c[15]) const { //--------------------------------------------------------------------- diff --git a/STEER/AliESDtrack.h b/STEER/AliESDtrack.h index 79e1de9131a..3b57394ec0f 100644 --- a/STEER/AliESDtrack.h +++ b/STEER/AliESDtrack.h @@ -40,6 +40,9 @@ public: void GetInnerPxPyPz(Double_t *p) const; void GetInnerXYZ(Double_t *r) const; + void GetOuterPxPyPz(Double_t *p) const; + void GetOuterXYZ(Double_t *r) const; + void SetTPCpid(const Double_t *p); void GetTPCpid(Double_t *p) const; Float_t GetTPCsignal() const {return fTPCsignal;} @@ -90,11 +93,11 @@ protected: Double_t fRp[5]; // external track parameters Double_t fRc[15]; // external cov. matrix of the track parameters -//Track parameters at the innermost measured point in the TPC +//Track parameters at the inner wall of the TPC Double_t fIalpha,fIx,fIp[5],fIc[15]; -//Track parameters at the outermost measured point - //Double_t fOalpha,fOx,fOp[5],fOc[15]; +//Track parameters at the radius of the PHOS + Double_t fOalpha,fOx,fOp[5],fOc[15]; // ITS related track information Float_t fITSchi2; // chi2 in the ITS diff --git a/STEER/STEERLinkDef.h b/STEER/STEERLinkDef.h index 0ee5cb5f841..24b4e174ecc 100644 --- a/STEER/STEERLinkDef.h +++ b/STEER/STEERLinkDef.h @@ -10,8 +10,6 @@ #pragma link C++ global gAlice; #pragma link C++ global gMC; -#pragma link C++ global kAliDetMax; -#pragma link C++ global kAliDetAll; #pragma link C++ enum VertexSmear_t; #pragma link C++ enum VertexSource_t; @@ -67,6 +65,8 @@ #pragma link C++ class AliTrackReference+; #pragma link C++ class AliESD+; #pragma link C++ class AliESDtrack+; +#pragma link C++ class AliESDCaloTrack+; +#pragma link C++ class AliESDMuonTrack+; #pragma link C++ class AliESDv0+; #pragma link C++ class AliESDcascade+; #pragma link C++ class AliESDvertex+; @@ -77,7 +77,6 @@ #pragma link C++ class AliMemoryWatcher+; #pragma link C++ class AliBarrelTrack+; #pragma link C++ class AliMC+; -#pragma link C++ class AliSimulation+; #endif diff --git a/STEER/libSTEER.pkg b/STEER/libSTEER.pkg index d5767b8e227..3c022fe2741 100644 --- a/STEER/libSTEER.pkg +++ b/STEER/libSTEER.pkg @@ -16,8 +16,8 @@ AliMergeCombi.cxx AliMagFMaps.cxx AliFieldMap.cxx \ AliGausCorr.cxx AliTrackReference.cxx AliESD.cxx \ AliTrackMap.cxx AliTrackMapper.cxx AliCollisionGeometry.cxx \ AliMemoryWatcher.cxx AliBarrelTrack.cxx \ -AliESDtrack.cxx AliESDv0.cxx AliESDcascade.cxx AliESDvertex.cxx AliESDpid.cxx \ -AliMC.cxx AliSimulation.cxx +AliESDtrack.cxx AliESDCaloTrack.cxx AliESDMuonTrack.cxx AliESDv0.cxx AliESDcascade.cxx AliESDvertex.cxx AliESDpid.cxx \ +AliMC.cxx HDRS:= $(SRCS:.cxx=.h) DHDR= STEERLinkDef.h -- 2.39.3