Back to index

CPair.C

 
//----------------------------------------------------------------------------- 
//  $Header: /tmp_mnt/asis/offline/ceres/cool/project/RCS/CPair.C,v 2.1 1996/10/04 08:45:51 voigt Exp $ 
// 
//  COOL Program Library   
//  Copyright (C) CERES collaboration, 1996 
// 
//  Implementation of class CPair. 
// 
//----------------------------------------------------------------------------- 
#include "CPair.h"  
#include "CElectronTrack.h"  
#include "C4Momentum.h"  
 
CPair::CPair(CElectronTrack& leg1, CElectronTrack& leg2) : firstTrack(leg1), secondTrack(leg2)  
{ 
   statusFlag = 0; 
} 
 
CPair::~CPair() {} 
 
int CPair::getType() const 
{ 
   if (firstTrack.getType() == secondTrack.getType()) { 
      if (firstTrack.getType() == CTrack::Electron) 
         return MinusMinus; 
      else 
	 return PlusPlus; 
   } 
   else 
      return PlusMinus; 
} 
 
CBoolean CPair::isVPair() const 
{ 
   return (firstTrack.getClosestRich1Ring() == secondTrack.getClosestRich1Ring()); 
} 
 
double CPair::getMass() const 
{ 
   return abs(firstTrack.getMomentum()+secondTrack.getMomentum()); 
} 
 
C4Momentum CPair::get4Momentum() const 
{ 
   return (firstTrack.getMomentum()+secondTrack.getMomentum()); 
} 
 
double CPair::getOpeningAngle() const 
{ 
   double arg = firstTrack.getMomentum().getP()* 
                secondTrack.getMomentum().getP()/ 
                firstTrack.getMomentum().getP().getAbs()/ 
                secondTrack.getMomentum().getP().getAbs(); 
   return  acos(arg)*1000.; 
} 
 
int CPair::operator== (const CPair& pair) const 
{ 
   return ( (firstTrack  == pair.firstTrack && secondTrack == pair.secondTrack)  || 
	    (firstTrack  == pair.secondTrack && secondTrack == pair.firstTrack)); 
} 
 
void CPair::printProperties(ostream& ost) 
{ 
   CString chtype; 
   switch (getType()) { 
      case MinusMinus: 
	 chtype = "MinusMinus"; 
	 break; 
      case PlusMinus: 
	 chtype = "PlusMinus"; 
	 break; 
      case PlusPlus: 
	 chtype = "PlusPlus"; 
	 break; 
      default: 
	 chtype = "unknown"; 
	 break; 
   } 
       
   ost << "type:          " << chtype                         << endl; 
   ost << "V-pair:        " << isVPair()                      << endl; 
   ost << "momentum:      " << get4Momentum()                 << endl; 
   ost << "mass:          " << getMass()         << " GeV/c2" << endl; 
   ost << "opening angle: " << getOpeningAngle() << " mrad"   << endl; 
   ost << "status flag:   " << getStatusFlag()                <<  endl; 
} 

Back to index