Back to index

See source file

CTrack.h

 
//----------------------------------------------------------------------------- 
//  $Header: /asis/offline/ceres/cool/project/RCS/CTrack.h,v 3.5 1997/06/23 13:35:28 messer Exp $ 
// 
//  COOL Program Library   
//  Copyright (C) CERES collaboration, 1996 
// 
//  Declaration of base class CTrack. 
// 
//  All theta units in mrad, phi always in rad. 
//  Note, that all enums have class scope in order to not waste 
//  global namespace. 
// 
//----------------------------------------------------------------------------- 
#ifndef CTRACK_H 
#define CTRACK_H 
 
#include <iostream.h> 
#include "cool.h"  
#include "CVertex.h"  
#include "CSidcHit.h"  
#include "CRichLikeHit.h"  
#include "CFittedRing.h"  
#include "C4Momentum.h"  
 
class CTrack { 
public: 
   enum CTrackType { Unknown, Electron = 3, Positron = 2, PiPlus = 8, PiMinus = 9};    
   enum CTrackMask { hasVertex     = 01,  hasSidc1Match = 02, 
                     hasSidc2Match = 04,  hasRich1Match = 010, 
                     hasRich2Match = 020, hasPadCMatch  = 040  }; 
 
public: 
   			CTrack();  
   virtual 		~CTrack();  
    
   int 			operator== (const CTrack&) const; 
   inline int           operator<  (const CTrack&) const;   // needed for sorting 
   inline double        operator-  (const CTrack&) const;   // needed for CSortedList 
    
   virtual void		printProperties(ostream& = cout); 
   void			_printProperties(ostream&); 
    
public: 
   CTrackType		getType() const {return type;} 
   void			setType(CTrackType val) {type = val;} 
 
   unsigned long	getTrackMask() const {return trackMask;} 
   void			setTrackMask(unsigned long val) {trackMask = val;} 
 
   int			getStatusFlag() const {return statusFlag;} 
   void			setStatusFlag(int val) {statusFlag = val;} 
 
   const CVertex*	getVertex() const {return vertex;} 
   void			setVertex(const CVertex* val) {vertex = val;} 
 
   const CSidcHit*	getClosestSidc1Hit() const {return closestSidc1Hit;} 
   void			setClosestSidc1Hit(const CSidcHit* val) {closestSidc1Hit = val;} 
 
   const CSidcHit*	getNextClosestSidc1Hit() const {return nextClosestSidc1Hit;} 
   void			setNextClosestSidc1Hit(const CSidcHit* val) {nextClosestSidc1Hit = val;} 
 
   const CSidcHit*	getClosestSidc2Hit() const {return closestSidc2Hit;} 
   void			setClosestSidc2Hit(const CSidcHit* val) {closestSidc2Hit = val;} 
 
   const CSidcHit*	getNextClosestSidc2Hit() const {return nextClosestSidc2Hit;} 
   void			setNextClosestSidc2Hit(const CSidcHit* val) {nextClosestSidc2Hit = val;} 
 
   double		getThetaSidc() const {return thetaSidc;} 
   void			setThetaSidc(double val) {thetaSidc = val;} 
 
   CAngle		getPhiSidc() const {return phiSidc;} 
   void			setPhiSidc(CAngle val) {phiSidc = val;} 
 
   CAngle		getCombinedFitPhiSidc() const {return combinedFitPhiSidc;} 
   void			setCombinedFitPhiSidc(CAngle val) {combinedFitPhiSidc = val;} 
 
   double		getDeltaRSidc12() const {return deltaRSidc12;} 
   void			setDeltaRSidc12(double val) {deltaRSidc12 = val;} 
 
   double		getDeltaPhiSidc12() const {return deltaPhiSidc12;} 
   void			setDeltaPhiSidc12(double val) {deltaPhiSidc12 = val;} 
 
   const CFittedRing*	getClosestRich1Ring() const {return closestRich1Ring;} 
   void			setClosestRich1Ring(const CFittedRing* val) {closestRich1Ring = val;} 
 
   const CFittedRing*	getNextClosestRich1Ring() const {return nextClosestRich1Ring;} 
   void			setNextClosestRich1Ring(const CFittedRing* val) {nextClosestRich1Ring = val;} 
 
   const CFittedRing*	getClosestRich2Ring() const {return closestRich2Ring;} 
   void			setClosestRich2Ring(const CFittedRing* val) {closestRich2Ring = val;} 
 
   const CFittedRing*	getNextClosestRich2Ring() const {return nextClosestRich2Ring;} 
   void			setNextClosestRich2Ring(const CFittedRing* val) {nextClosestRich2Ring = val;} 
 
   double		getDeltaThetaRich12() const {return deltaThetaRich12;} 
   void			setDeltaThetaRich12(double val) {deltaThetaRich12 = val;} 
 
   double		getDeltaPhiRich12() const {return deltaPhiRich12;} 
   void			setDeltaPhiRich12(double val) {deltaPhiRich12 = val;} 
 
   const CRichLikeHit*	getClosestPadCHit() const {return closestPadCHit;} 
   void			setClosestPadCHit(const CRichLikeHit* val) {closestPadCHit = val;} 
 
   const CRichLikeHit*	getNextClosestPadCHit() const {return nextClosestPadCHit;} 
   void			setNextClosestPadCHit(const CRichLikeHit* val) {nextClosestPadCHit = val;} 
 
   double		getThetaPadC() const {return thetaPadC;} 
   void			setThetaPadC(double val) {thetaPadC = val;} 
 
   double		getPhiPadC() const {return phiPadC;} 
   void			setPhiPadC(double val) {phiPadC = val;} 
 
   double		getDeltaThetaSidcRich() const {return deltaThetaSidcRich;} 
   void			setDeltaThetaSidcRich(double val) {deltaThetaSidcRich = val;} 
 
   double		getDeltaPhiSidcRich() const {return deltaPhiSidcRich;} 
   void			setDeltaPhiSidcRich(double val) {deltaPhiSidcRich = val;} 
 
   double		getDeltaThetaSidcPadC() const {return deltaThetaSidcPadC;} 
   void			setDeltaThetaSidcPadC(double val) {deltaThetaSidcPadC = val;} 
 
   double		getDeltaPhiSidcPadC() const {return deltaPhiSidcPadC;} 
   void			setDeltaPhiSidcPadC(double val) {deltaPhiSidcPadC = val;} 
 
   double		getDeltaThetaRich2PadC() const {return deltaThetaRich2PadC;} 
   void			setDeltaThetaRich2PadC(double val) {deltaThetaRich2PadC = val;} 
 
   double		getDeltaPhiRich2PadC() const {return deltaPhiRich2PadC;} 
   void			setDeltaPhiRich2PadC(double val) {deltaPhiRich2PadC = val;} 
 
   virtual const C4Momentum&	getMomentum() const {return momentum;} 
   virtual void		setMomentum(C4Momentum val) {momentum = val;} 
    
protected:  
   CTrackType		type; 
   unsigned long	trackMask; 
   int			statusFlag; 
 
   C4Momentum	momentum;	 
 
   const CVertex	*vertex; 
    
   const CSidcHit	*closestSidc1Hit; 
   const CSidcHit	*nextClosestSidc1Hit; 
   const CSidcHit	*closestSidc2Hit; 
   const CSidcHit	*nextClosestSidc2Hit; 
   double		thetaSidc; 
   CAngle		phiSidc; 
   CAngle		combinedFitPhiSidc; 
   double		deltaRSidc12; 
   double		deltaPhiSidc12; 
 
   const CFittedRing	*closestRich1Ring; 
   const CFittedRing	*nextClosestRich1Ring; 
   const CFittedRing	*closestRich2Ring; 
   const CFittedRing	*nextClosestRich2Ring; 
   double		deltaThetaRich12; 
   double		deltaPhiRich12; 
    
   const CRichLikeHit	*closestPadCHit; 
   const CRichLikeHit	*nextClosestPadCHit; 
   double		thetaPadC; 
   double		phiPadC; 
    
   double		deltaThetaSidcRich; 
   double		deltaPhiSidcRich; 
   double		deltaThetaSidcPadC; 
   double		deltaPhiSidcPadC; 
   double		deltaThetaRich2PadC; 
   double		deltaPhiRich2PadC; 
}; 
 
inline int CTrack::operator< (const CTrack& track) const  
{ 
   return (phiSidc < track.phiSidc); 
} 
 
inline double CTrack::operator- (const CTrack& track) const  
{ 
   return (phiSidc - track.phiSidc); 
} 
 
#endif /* CTRACK_H */  
 

Back to index

See source file