// $Id: hpairdata.h,v 1.21 2009-02-19 21:34:58 jurkovic Exp $
// Author: Thomas.Eberl@ph.tum.de, last modified : 2006-11-21 16:05:36
//
// ---------------------------------------------------------------------------
#ifndef HPAIRDATA_H
#define HPAIRDATA_H
// ---------------------------------------------------------------------------
#include "TObject.h"
#include "TString.h"
#include "TVector3.h"
// ---------------------------------------------------------------------------
class HPair;
class HPairExt;
class HPairSimExt;
class HPidParticle;
class HEventHeader;
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
#define storeFWinfo  // to analyze APR07 switch this on!
// ---------------------------------------------------------------------------

class HPairData : public TObject {


public:

    HPairData();
    HPairData(HPair*);
    HPairData(HPairExt*);
    HPairData(HPairSimExt*);
    virtual ~HPairData();
    virtual void print(void);
    Float_t* getArray(void) const;
    static const TString& getVarNames(void);
    Bool_t getInit(){return kIsInit;};
    void   setInit(void){kIsInit = kTRUE;};
    Float_t  getOpeningAngleDeg(void) const {return fOpang;};
    Char_t   getCharge(void) const {return cCharge;};
    Char_t   getIsCutFlag(void) const {return cIsCut;};
    Float_t  getInvMass(void) const {return fMass;};
    Float_t  getRapidity(void) const {return fRapidity;};
    Float_t  getTransverseMomentum(void) const {return fTransverseMomentum;};
    Short_t  getParticleIndex1(void) const {return sIdxP1;}; 
    Short_t  getParticleIndex2(void) const {return sIdxP2;};
    Float_t  getProbability1(void) const {return fProbability1;};
    Float_t  getProbability2(void) const {return fProbability2;};
    Int_t    getPid1(void) const {return nPid1;};
    Int_t    getPid2(void) const {return nPid2;};

    TVector3 getVert(void) const {return aVert;};
    Float_t getVertX(void) const {return aVert.X();};
    Float_t getVertY(void) const {return aVert.Y();};
    Float_t getVertZ(void) const {return aVert.Z();};
    Float_t getDistX(void) const {return aDist.X();};
    Float_t getDistY(void) const {return aDist.Y();};
    Float_t getDistZ(void) const {return aDist.Z();};
    Float_t pDist(void) const {return aDist.Mag();};

    Float_t getThetaDeg1(void) const {return  fThetaDeg1;}
    Float_t getThetaDeg2(void)  const {return  fThetaDeg2;}
    Float_t getPhiDeg1(void)  const {return  fPhiDeg1;}
    Float_t getPhiDeg2(void)  const {return  fPhiDeg2;}
    Float_t getMom1(void)  const {return  fMom1;}
    Float_t getMom2(void)  const {return  fMom2;}


    Float_t getAngleToClosestFittedLepton1(void)  const {return fAngleToClosestFittedLepton1;}
    Float_t getAngleToClosestFittedLepton2(void)  const {return fAngleToClosestFittedLepton2;}
    Float_t getAngleToClosestNonFittedLepton1(void)  const {return fAngleToClosestNonFittedLepton1;}
    Float_t getAngleToClosestNonFittedLepton2(void)  const {return fAngleToClosestNonFittedLepton2;}

    Float_t getAngleToClosestFittedHadron1(void)  const {return fAngleToClosestFittedHadron1;}
    Float_t getAngleToClosestFittedHadron2(void)  const {return fAngleToClosestFittedHadron2;}
    Float_t getAngleToClosestNonFittedHadron1(void)  const {return fAngleToClosestNonFittedHadron1;}
    Float_t getAngleToClosestNonFittedHadron2(void)  const {return fAngleToClosestNonFittedHadron2;}


#if 0
    Bool_t getIsCPCandidate1(void) {return bIsCPCandidate1;}
    Bool_t getIsCPCandidate2(void) {return bIsCPCandidate2;}
#endif // 0

#if 0
    Bool_t getClosestLepIsFitted1(void) {return bClosestLepIsFitted1;}
    Bool_t getClosestHadIsFitted1(void) {return bClosestHadIsFitted1;}

    Bool_t getClosestLepIsFitted2(void) {return bClosestLepIsFitted2;}
    Bool_t getClosestHadIsFitted2(void) {return bClosestHadIsFitted2;}

    Float_t getAngleWithClosestLep1(void) {return fAngleToClosestLep1;}
    Float_t getAngleWithClosestHad1(void) {return fAngleToClosestHad1;}

    Float_t getAngleWithClosestLep2(void) {return fAngleToClosestLep2;}
    Float_t getAngleWithClosestHad2(void) {return fAngleToClosestHad2;}
#endif //0

    Int_t    hasDoubleDetectorHits(void) const;
    Int_t    getBitFieldPassedCuts(void) const {return nBitFieldPassedCuts;};
    static const Int_t getNbDataItems(){return DATAITEMS;};


protected:

    virtual void reset(void);
    virtual Bool_t init(HPair*);
    virtual Bool_t init(HPairExt*);
    virtual Bool_t init(HPairSimExt*);
    virtual Bool_t initData(HPair*,HPidParticle*,HPidParticle*,HEventHeader*);
    
    // event header info
    Int_t   nChrg1;
    Int_t   nChrg2;
    Int_t   nMomAlg1;
    Int_t   nMomAlg2;
    Int_t   nMostProbPid1;
    Int_t   nMostProbPid2;
    Int_t   nPid1;
    Int_t   nPid2;
    Int_t   nSec1;
    Int_t   nSec2;
    Float_t IOm_chi2_1, IOm_chi2_2;
    TVector3 aDist;
    TVector3 aVert;
    Float_t fEvtVertexX, fEvtVertexY, fEvtVertexZ;

    Float_t fAngleToClosestFittedLepton1, fAngleToClosestFittedLepton2;
    Float_t fAngleToClosestNonFittedLepton1, fAngleToClosestNonFittedLepton2;
    Float_t fAngleToClosestFittedHadron1, fAngleToClosestFittedHadron2;
    Float_t fAngleToClosestNonFittedHadron1, fAngleToClosestNonFittedHadron2;
#if 0
    Bool_t bClosestHadIsFitted1, bClosestHadIsFitted2;
    Bool_t bClosestLepIsFitted1, bClosestLepIsFitted2;
#endif // 0
    Char_t cCharge;
    Char_t cIsCut;
#if 0
    Float_t fAngleToClosestHad1, fAngleToClosestHad2;
    Float_t fAngleToClosestLep1, fAngleToClosestLep2;
#endif // 0
    Float_t fBetaExp1;
    Float_t fBetaExp2;
    Float_t fDeltaPhiRM1;   
    Float_t fDeltaPhiRM2;   
    Float_t fDeltaThetaRM1;
    Float_t fDeltaThetaRM2; 
    Float_t fInnerChiSquare1, fOuterChiSquare1, fDistanceToVertex1;
    Float_t fInnerChiSquare2, fOuterChiSquare2, fDistanceToVertex2; 
    Float_t fMass;
    Float_t fMassExp1;   
    Float_t fMassExp2;   
    Float_t fMom1;
    Float_t fMom2;
    Float_t fOpang;
    Float_t fPhiDeg1;
    Float_t fPhiDeg2;
    Float_t fProbability1;
    Float_t fProbability2;
    Float_t fR1;
    Float_t fR2;
    Float_t fRapidity;
    Float_t fRichPhi1;      
    Float_t fRichPhi2;      
    Float_t fRichTheta1;    
    Float_t fRichTheta2;    
    Float_t fRingCentroid1; 
    Float_t fRingCentroid2; 
    Float_t fSys1;
    Float_t fSys2;
    Float_t fThetaDeg1; 
    Float_t fThetaDeg2; 
    Float_t fTof1;          
    Float_t fTof2;          
    Float_t fTransverseMomentum;
    Float_t fWeightMostProbPID1;
    Float_t fWeightMostProbPID2;
    Float_t fZ1;
    Float_t fZ2;
    Int_t nBitFieldPassedCuts;
    Int_t nDSflag;
    Int_t nEvtNr;
    Int_t nRingAmplitude1;
    Int_t nRingAmplitude2;
    Int_t nRingHouTra1;   
    Int_t nRingHouTra2;   
    Int_t nRingLocalMax41;
    Int_t nRingLocalMax42;
    Int_t nRingPadNr1;    
    Int_t nRingPadNr2;    
    Int_t nRingPatMat1;   
    Int_t nRingPatMat2;   
    Int_t nRun;
    Int_t nTrigDec;
    Int_t nTrigTBit;
    Float_t qSpline1,qSpline2;
    Float_t rkchi1, rkchi2;
    Float_t fMetaEloss1,fMetaEloss2;
    Float_t metamatchqa1,metamatchqa2;

#ifdef  storeFWinfo
//if FW
    Int_t   fwMult;
    Float_t fwTime1, fwTime2, fwTime3;
    Float_t fwCharge1, fwCharge2, fwCharge3;
    Int_t   fwCell1, fwCell2, fwCell3;
    Float_t fwTheta1, fwTheta2, fwTheta3;
    Float_t fwPhi1, fwPhi2, fwPhi3;
    Float_t fwDist1, fwDist2, fwDist3;
    Short_t tofrecflag;    
//endif FW
#endif

    Float_t fInnerMdcdEdx1,fInnerMdcdEdx2;
    Float_t fInnerMdcdEdxSigma1,fInnerMdcdEdxSigma2;
    Float_t fOuterMdcdEdx1,fOuterMdcdEdx2;
    Float_t fOuterMdcdEdxSigma1,fOuterMdcdEdxSigma2;
    Float_t fCombinedMdcdEdx1,fCombinedMdcdEdx2;
    Float_t fCombinedMdcdEdxSigma1,fCombinedMdcdEdxSigma2;
    Float_t fShower_Sum0_1, fShower_Sum0_2;
    Float_t dxRkMeta1, dyRkMeta1, dzRkMeta1, dxRkMeta2, dyRkMeta2, dzRkMeta2;
    Float_t dxMdcMeta1, dyMdcMeta1, dxMdcMeta2, dyMdcMeta2;
    Short_t sIdxP1; 
    Short_t sIdxP2;
    Short_t sIdxPidCand1;
    Short_t sIdxPidCand2;
    Short_t sIndInnerSeg1;
    Short_t sIndInnerSeg2;
    Short_t sIndOuterSeg1;
    Short_t sIndOuterSeg2;
    Short_t sIndRICH1;
    Short_t sIndRICH2;
    Short_t sIndShower1;
    Short_t sIndShower2;
    Short_t sIndTOF1;
    Short_t sIndTOF2;

    Int_t flags1;
    Int_t flags2;


    static const TString cVars;
    static const Int_t DATAITEMS;
    
    Bool_t kIsInit;//!

#ifdef  storeFWinfo
private:
    HIterator *iterFwHit;         //! HWallHit iterator (used for APR07)
#endif

// ---------------------------------------------------------------------------
    ClassDef(HPairData,4)
	};
#endif // HPAIRDATA_H

Last change: Sat May 22 13:06:07 2010
Last generated: 2010-05-22 13:06

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.