// $Id: RecoTrackDirection2.hh,v 1.3 2005/01/18 16:03:54 etaddei Exp $
// Author: R.Pesce   2005/01/04

/*****************************************************************************
 * ESAF: Euso Simulation and Analysis Framework                              *
 *                                                                           *
 *  Id: RecoTrackDirection2                                                  *
 *  Package: <packagename>                                                   *
 *  Coordinator: <coordinator>                                               *
 *                                                                           *
 *****************************************************************************/

#ifndef __RECOTRACKDIRECTION2_HH__
#define __RECOTRACKDIRECTION2_HH__

#include "TObject.h"

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// RecoTrackDirection2                                                                 //
//                                                                            //  
// <brief class description>                                                  //  
//                                                                            //  
////////////////////////////////////////////////////////////////////////////////

class RecoTrackDirection2 : public TObject {
public:
    RecoTrackDirection2();
    //ctor

    RecoTrackDirection2( const RecoTrackDirection2& );
    //copy ctor
    
    virtual ~RecoTrackDirection2();
    //dtor

    virtual void Copy( TObject& ) const;
    //copy to a new obj

    void Clear();
    //clear method

    //setters
    inline void SetAA1(Double_t t1,Double_t t2,Double_t t3){ fThetaAA1 = t1; fPhiAA1 = t2; fErrorDirectionAA1 = t3; }
    inline void SetAA2(Double_t t1,Double_t t2,Double_t t3){ fThetaAA2 = t1; fPhiAA2 = t2; fErrorDirectionAA2 = t3; }
    inline void SetNE1(Double_t t1,Double_t t2,Double_t t3){ fThetaNE1 = t1; fPhiNE1 = t2; fErrorDirectionNE1 = t3; }
    inline void SetNE2(Double_t t1,Double_t t2,Double_t t3){ fThetaNE2 = t1; fPhiNE2 = t2; fErrorDirectionNE2 = t3; }
    inline void SetAE1(Double_t t1,Double_t t2,Double_t t3){ fThetaAE1 = t1; fPhiAE1 = t2; fErrorDirectionAE1 = t3; }
    
    inline void SetQuality(Double_t t)        {fQuality = t;}
    inline void SetTheta(Double_t t)          {fTheta = t;}
    inline void SetErrorTheta(Double_t t)     {fErrorTheta = t;}
    inline void SetPhi(Double_t t)            {fPhi = t;}
    inline void SetErrorPhi(Double_t t)       {fErrorPhi = t;}
    inline void SetErrorDirection(Double_t t) {fErrorDirection = t;}
    inline void SetErrorTDP(Double_t t)       {fErrorTDP = t;}

    //getters
    inline Double_t GetQuality()        const {return fQuality;}
    inline Double_t GetTheta()          const {return fTheta;}
    inline Double_t GetPhi()            const {return fPhi;}
    inline Double_t GetErrorTheta()     const {return fErrorTheta;}
    inline Double_t GetErrorPhi()       const {return fErrorPhi;}
    inline Double_t GetErrorDirection() const {return fErrorDirection;}
    inline Double_t GetErrorTDP()       const {return fErrorTDP;}
    


private:
    Double_t fQuality;               // reconstruction quality variable defined by the the module responsible
    Double_t fTheta;                 // reconstructed Theta
    Double_t fPhi;                   // reconstructed Phi
    Double_t fErrorTheta;            // reconstruction error on Theta
    Double_t fErrorPhi;              // reconstruction error on Phi
    Double_t fErrorDirection;        // reconstruction error on the track direction
    Double_t fErrorTDP;        		 // reconstruction error on vector perpendicular to TDP 
	Double_t fThetaAA1, fThetaAA2, fThetaNE1, fThetaNE2, fThetaAE1;             
    Double_t fPhiAA1, fPhiAA2, fPhiNE1, fPhiNE2, fPhiAE1;
    Double_t fErrorDirectionAA1, fErrorDirectionAA2, fErrorDirectionNE1, fErrorDirectionNE2, fErrorDirectionAE1; 
    ClassDef(RecoTrackDirection2,1)
};

#endif  /* __RECOTRACKDIRECTION2_HH__ */