00001 #ifndef TMBTrackCal_H
00002 #define TMBTrackCal_H
00003
00004 #include "TObject.h"
00005
00006 #ifndef ROOT_TRef
00007 #include "TRef.h"
00008 #endif
00009
00010 class TMBVertex;
00011 class TMBTrack;
00012
00013
00021 class TMBTrackCal : public TObject {
00022
00023 private:
00024
00025 Float_t _eta[17];
00026 Float_t _phi[17];
00027
00028 Float_t _e010[17];
00029 Float_t _e015[17];
00030 Float_t _e020[17];
00031 Float_t _e030[17];
00032 Float_t _e040[17];
00033 Float_t _e050[17];
00034 Float_t _e070[17];
00035
00036 Float_t _dcaR;
00037 Float_t _dcaZ;
00038
00039 TRef _chptr;
00040 TRef _vtxref;
00041
00042
00043 public:
00044
00045 TMBTrackCal();
00046 TMBTrackCal(TRef chptr, TRef vtxref, Float_t dcaZ, Float_t dcaR,
00047 Float_t* eta, Float_t* phi,
00048 Float_t* e010, Float_t* e015, Float_t* e020, Float_t* e030, Float_t* e040,
00049 Float_t* e050, Float_t* e070);
00050 virtual ~TMBTrackCal();
00051
00052
00053
00054 void getCalEtaPhi(Int_t layer, Float_t& eta, Float_t& phi) const;
00055 Float_t getE010(Int_t ly) const;
00056 Float_t getE015(Int_t ly) const;
00057 Float_t getE020(Int_t ly) const;
00058 Float_t getE030(Int_t ly) const;
00059 Float_t getE040(Int_t ly) const;
00060 Float_t getE050(Int_t ly) const;
00061 Float_t getE070(Int_t ly) const;
00062
00063 Float_t PtWeighteDetectorEta() const;
00064
00065 Float_t getDCAz() const { return _dcaZ; }
00066 Float_t getDCAr() const { return _dcaR; }
00067
00068 const TMBTrack* GetChargedTrack() const {return _chptr.IsValid() ? (TMBTrack*)_chptr.GetObject() : 0;}
00069 const TMBVertex* GetVertex() const {return _vtxref.IsValid() ? (TMBVertex*)_vtxref.GetObject() : 0;}
00070
00071 void print(std::ostream& os) const;
00072
00073 ClassDef(TMBTrackCal, 1);
00074 };
00075
00076 #endif // TMBTrackCal