/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/EvtRecEvent/EvtRecEvent-00-02-02/EvtRecEvent/EvtRecDTag.h

Go to the documentation of this file.
00001 #ifndef Event_EvtRecDTag_H
00002 #define Event_EvtRecDTag_H
00003 
00004 #include "GaudiKernel/ObjectVector.h"
00005 #include "GaudiKernel/ContainedObject.h"
00006 #include "GaudiKernel/SmartRef.h"
00007 #include "GaudiKernel/SmartRefVector.h"
00008 #include "EventModel/EventModel.h"
00009 #include "CLHEP/Matrix/Vector.h"
00010 #include "CLHEP/Matrix/SymMatrix.h"
00011 #include "EvtRecEvent/EvtRecTrack.h"
00012 #include <utility>
00013 #include <vector>
00014 
00015 using CLHEP::HepVector;
00016 using CLHEP::HepSymMatrix;
00017 using namespace EventModel;
00018 extern const CLID & CLID_EvtRecDTag;
00019 
00020 // 
00021 // To store D Tagged events.
00022 // Author : Chunlei Liu   Date: 2009.1.26
00023 //
00024 // Author : Onur Albayrak, Jake Bennett Date: 2014.12.19
00025 //
00026 
00027 class EvtRecDTag : virtual public ContainedObject {
00028  public:
00029   virtual const CLID& clID() const {return EvtRecDTag::classID();}
00030   static  const CLID& classID() {return CLID_EvtRecDTag;}
00031 
00032   EvtRecDTag();
00033   ~EvtRecDTag() {;}
00034 
00035   EvtRecDTag(const EvtRecDTag&);
00036   EvtRecDTag & operator = (const EvtRecDTag &);
00037 
00038 
00039   //selection critera type defined with enum type
00040 
00041   enum SelType
00042     {
00043       Loose,
00044       Tight,
00045       Default
00046     };
00047   
00048   
00049   //  All decay modes are defined as enum types here
00050   enum DecayMode
00051   {
00052     kD0toKPi,
00053     kD0toKPiPi0,
00054     kD0toKPiPi0Pi0,
00055     kD0toKPiPiPi,
00056 
00057     kD0toKPiPiPiPi0,
00058     kD0toKPiEta,
00059 
00060     kD0toKsKPi = 50,
00061     kD0toKsKPiPi0,
00062 
00063     kD0toKsPiPi = 100,
00064     kD0toKsPiPiPi0,
00065     kD0toKsPi0,
00066 
00067     kD0toPiPiPi0,
00068     kD0toPiPi,
00069     kD0toKK,
00070     kD0toKKPi0,
00071     kD0toPi0Pi0,
00072     kD0toKsKs,
00073     kD0toKsKsPi0,
00074     kD0toKsPi0Pi0,
00075     kD0toKsKK,
00076     kD0toKsEta,
00077     kD0toPi0Pi0Pi0,
00078 
00079     kD0toKsKsKs,
00080     kD0toPiPiPiPi,
00081     kD0toPiPiPi0Pi0,
00082     kD0toKKPiPi,
00083     kD0toKKPi0Pi0,
00084     kD0toKsKsPiPi,
00085     kD0toPiPiPiPiPi0,
00086     kD0toKsPiPiPiPi,
00087     kD0toKKPiPiPi0,
00088     kD0toKsPi0Eta,
00089 
00090     kD0toKsEPPiPiEta,
00091     kD0toKsEPRhoGam,
00092     kD0toKsPi0Pi0Pi0,
00093 
00094     kDptoKPiPi =200,
00095     kDptoKPiPiPi0,
00096     kDptoKsPi,
00097     kDptoKsPiPi0,
00098     kDptoKsPiPiPi,
00099     kDptoKKPi,
00100 
00101     kDptoPiPi0,
00102     kDptoKPi0,
00103     kDptoKsK,
00104     kDptoPiPiPi,
00105     kDptoPiPi0Pi0,
00106     kDptoKsKsPi,
00107     kDptoKsKPi0,
00108     kDptoKsKsK,
00109     kDptoPiPiPiPi0,
00110     kDptoKsPiPi0Pi0,
00111     kDptoKsKplusPiPi,
00112     kDptoKsKminusPiPi,
00113     kDptoKKPiPi0,
00114     kDptoPiPiPiPiPi,
00115     kDptoKPiPiPiPi,
00116     kDptoPiEta,
00117     kDptoKsPiEta,
00118 
00119     kDstoKsK = 400,
00120     kDstoKKPi,
00121     kDstoKsKPi0,
00122     kDstoKsKsPi,
00123     kDstoKKPiPi0,
00124     kDstoKsKplusPiPi,
00125     kDstoKsKminusPiPi,
00126     kDstoKKPiPiPi,
00127 
00128     kDstoPiPi0 = 420,
00129     kDstoPiPiPi,
00130     kDstoPiPiPiPi0,
00131     kDstoPiPiPiPiPi,
00132     kDstoPiPiPiPiPiPi0,
00133     kDstoPiPiPiPi0Pi0, // New
00134 
00135     kDstoPiEta = 440,
00136     kDstoPiPi0Eta,
00137     kDstoPiPiPiEta,
00138 
00139     kDstoPiEtaPiPiPi0 = 450, // New
00140     kDstoPiPi0EtaPiPiPi0, // New
00141     kDstoPiPiPiEtaPiPiPi0, // New
00142 
00143     kDstoPiEPPiPiEta = 460,
00144     kDstoPiPi0EPPiPiEta,
00145 
00146     kDstoPiEPPiPiEtaPiPiPi0 = 470, // New
00147     kDstoPiPi0EPPiPiEtaPiPiPi0, // New
00148 
00149     kDstoPiEPRhoGam = 480,
00150     kDstoPiPi0EPRhoGam,
00151 
00152     kDstoKsPi = 500,
00153     kDstoKsPiPi0,
00154     kDstoKPiPi,
00155     kDstoKPiPiPi0,
00156     kDstoKKK,
00157 
00158     kUnknown = 10000
00159 
00160   };
00161 
00162 
00163   DecayMode decayMode() const {return m_decayMode;}
00164   SelType type() const {return m_type;}
00165   double beamE() const {return m_beamE;}
00166   double mass()  const {return m_mass;}
00167   double mBC() const {return m_mBC;}
00168   double deltaE() const {return m_deltaE;}
00169   int    charge() const {return m_charge;}
00170   int    charm() const {return m_charm;}
00171   int    numOfChildren() const{return m_numOfChildren;}
00172   HepLorentzVector p4() const {return m_p4;}
00173   vector< double > vKsMass() const {return m_ksmass;}
00174   vector< double > vFitChi2() const {return m_vfitchi2;}
00175   vector< double > vFitDecayLength() const {return m_vfitlength;}
00176   vector< double > vFitDecayLengthError() const {return m_vfiterror;}
00177 
00178 
00179   SmartRefVector<EvtRecTrack>  tracks(){ return m_tracks;}
00180   SmartRefVector<EvtRecTrack>  showers(){ return m_showers;}
00181   SmartRefVector<EvtRecTrack>  otherTracks(){ return m_otherTracks;}
00182   SmartRefVector<EvtRecTrack>  otherShowers(){ return m_otherShowers;}
00183   SmartRefVector<EvtRecTrack>  pionId(){ return m_pionId;}
00184   SmartRefVector<EvtRecTrack>  kaonId(){ return m_kaonId;}
00185   
00186   
00187   void setdecayMode(DecayMode decayMode) {m_decayMode=decayMode;}
00188   void settype(SelType type) {m_type=type;}
00189   void setbeamE(double beamE) {m_beamE=beamE;}
00190   void setmass(double mass) {m_mass=mass;}
00191   void setmBC(double mBC) {m_mBC=mBC;}  
00192   void setdeltaE(double deltaE) {m_deltaE=deltaE;}
00193   void setcharge(int charge) {m_charge=charge;}
00194   void setcharm(int charm) {m_charm=charm;}
00195   void setnumOfChildren(int numOfChildren) {m_numOfChildren=numOfChildren;}
00196   void setp4(HepLorentzVector p4) {m_p4=p4;}
00197 
00198   void addToFitInfo(double ksmass, double chi2, double length, double error) {
00199     m_ksmass.push_back(ksmass);
00200     m_vfitchi2.push_back(chi2);
00201     m_vfitlength.push_back(length);
00202     m_vfiterror.push_back(error);
00203   }
00204   
00205   void addTrack(const SmartRef<EvtRecTrack> track) {
00206     m_tracks.push_back(track);}
00207   void addShower(const SmartRef<EvtRecTrack> shower) {
00208     m_showers.push_back(shower);}
00209   void addOtherTrack(const SmartRef<EvtRecTrack> track) {
00210     m_otherTracks.push_back(track);}
00211   void addOtherShower(const SmartRef<EvtRecTrack> shower){
00212     m_otherShowers.push_back(shower);}
00213   void addPionId(const SmartRef<EvtRecTrack> pionId){
00214     m_pionId.push_back(pionId);}
00215   void addKaonId(const SmartRef<EvtRecTrack> kaonId){
00216     m_kaonId.push_back(kaonId);}
00217   
00218   
00219   void setTracks(const SmartRefVector<EvtRecTrack> tracks) {
00220     m_tracks=tracks;}
00221   void setShowers(const SmartRefVector<EvtRecTrack> showers) {
00222     m_showers=showers;}
00223   void setOtherTracks(const SmartRefVector<EvtRecTrack> tracks) {
00224     m_otherTracks=tracks;}
00225   void setOtherShowers(const SmartRefVector<EvtRecTrack> showers){
00226     m_otherShowers=showers;}
00227   void setPionId(const SmartRefVector<EvtRecTrack> pionId){
00228     m_pionId=pionId;}
00229   void setKaonId(const SmartRefVector<EvtRecTrack> kaonId){
00230     m_kaonId=kaonId;}
00231   
00232 
00233  private:
00234   DecayMode m_decayMode;
00235   SelType  m_type;
00236   double  m_beamE;
00237   double  m_mass;
00238   double  m_mBC;
00239   double  m_deltaE;
00240   int     m_charge;
00241   int     m_charm;
00242   unsigned int     m_numOfChildren;
00243   HepLorentzVector m_p4;
00244   vector< double > m_ksmass;
00245   vector< double > m_vfitchi2;
00246   vector< double > m_vfitlength;
00247   vector< double > m_vfiterror;
00248   SmartRefVector<EvtRecTrack>  m_tracks;
00249   SmartRefVector<EvtRecTrack>  m_showers;
00250   SmartRefVector<EvtRecTrack>  m_otherTracks;
00251   SmartRefVector<EvtRecTrack>  m_otherShowers;
00252   SmartRefVector<EvtRecTrack>  m_pionId;
00253   SmartRefVector<EvtRecTrack>  m_kaonId;
00254   
00255 };
00256 
00257 
00258 typedef ObjectVector<EvtRecDTag> EvtRecDTagCol;
00259 typedef EvtRecDTagCol::iterator EvtRecDTagIterator;
00260 #endif
00261   

Generated on Tue Nov 29 22:58:29 2016 for BOSS_7.0.2 by  doxygen 1.4.7