/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/EventFilter/HltProcessor/HltSteerData/HltSteerData-01-00-03/src/Signature.cxx

Go to the documentation of this file.
00001 //#ifdef HAVE_NEW_IOSTREAMS
00002 //  #include <sstream>
00003 //  typedef std::stringstream my_sstream;
00004 //#else
00005 //  #include <strstream>
00006 //  typedef strstream my_sstream;
00007 //#endif
00008 
00009 #include "HltSteerData/Signature.h"
00010 #include "GaudiKernel/StatusCode.h"
00011 
00012 using HltProcessor::Signature;
00013 
00015 Signature::Signature() : 
00016 m_SignaturePrescale(1),m_SignatureForcedRate(1.),m_Id(0) {
00017   m_msgSvcProvider = MessageSvcProvider::instance();
00018 }
00019 
00020 Signature::Signature(std::vector<HltCriteria*> vec) :
00021   m_criteriaVec(vec),
00022   m_SignaturePrescale(1),
00023   m_SignatureForcedRate(1.),
00024   m_Id(0),
00025   m_Predecessor_Id(0),
00026   m_Successor_Id(0)
00027 {
00028   m_msgSvcProvider = MessageSvcProvider::instance();
00029 }
00030 
00032 Signature::~Signature() {
00033   int size = m_criteriaVec.size();
00034   for (int i = 0; i < size; i++) delete m_criteriaVec[i];
00035 }
00036 
00038 void Signature::print()
00039 {
00040   MsgStream log(m_msgSvcProvider->msgSvc(), "Signature");
00041   log << MSG::INFO << "< ";
00042   log << MSG::INFO << "> \t prescale " << m_SignaturePrescale 
00043        << " \t forcedAccept " << m_SignatureForcedRate
00044        << " \t id " << m_Id << endreq;
00045 }
00046 
00047 void Signature::makeVectors(HltCriteria* criteria) {
00048   m_criteriaVec.push_back(criteria);
00049 }
00050 
00052 int Signature::id() const { return m_Id; }
00053 
00055 void Signature::setId(int id){ m_Id=id; }
00056 
00058 float Signature::forcedAccept() const
00059 {
00060   return m_SignatureForcedRate;
00061 }
00062 
00064 void Signature::setForcedAccept(float value)
00065 {
00066   m_SignatureForcedRate = value;
00067 }
00068 
00070 int Signature::prescale() const
00071 {
00072   return m_SignaturePrescale;
00073 }
00074 
00076 void Signature::setPrescale(int value)
00077 {
00078   m_SignaturePrescale = value;
00079 }
00080 
00082 bool Signature::isVeto() const
00083 {
00084   return m_SignatureVeto;
00085 }
00086 
00088 void Signature::setVeto(bool value)
00089 {
00090   m_SignatureVeto = value;
00091 }
00092 
00093 int Signature::predecessorId(){
00094   return m_Predecessor_Id;
00095 }
00096 
00097 int Signature::successorId(){
00098   return m_Successor_Id;
00099 }
00100 
00101 void Signature::setPredecessorId(int id){
00102   m_Predecessor_Id=id;
00103 }
00104 
00105 void Signature::setSuccessorId(int id){
00106   m_Successor_Id=id;
00107 }
00108 
00109 void Signature::setSigLabel(std::string label) {
00110   m_Sig_label = label;
00111 }
00112 
00113 std::string Signature::label() const {
00114   return m_Sig_label;
00115 }
00116 
00117 int Signature::isCriteriaMatched() {
00118   int size = m_criteriaVec.size();
00119   m_midMark="";
00120   for (int i = 0; i < size; i++) {
00121     if (m_criteriaVec[i]->satisfyCriteria()) {
00122       m_result = m_criteriaVec[i]->getBehaviour();
00123       std::string::size_type separator=m_result.find('_');
00124       std::string perform = m_result.substr(0, separator);
00125       if(perform=="continue"){
00126         m_midMark = m_result.substr(separator+1);
00127       }
00128       else {
00129         return m_criteriaVec[i]->idCriteria();
00130       }
00131     }
00132   }
00133   m_result = "";
00134   return -1;
00135 }
00136 

Generated on Tue Nov 29 23:12:05 2016 for BOSS_7.0.2 by  doxygen 1.4.7