CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/CondFormats/L1TObjects/src/L1GtMuonTemplate.cc

Go to the documentation of this file.
00001 
00017 // this class header
00018 #include "CondFormats/L1TObjects/interface/L1GtMuonTemplate.h"
00019 
00020 // system include files
00021 
00022 #include <iostream>
00023 #include <iomanip>
00024 
00025 // user include files
00026 
00027 //   base class
00028 
00029 #include "CondFormats/L1TObjects/interface/L1GtFwd.h"
00030 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
00031 
00032 // forward declarations
00033 
00034 // constructors
00035 L1GtMuonTemplate::L1GtMuonTemplate()
00036         : L1GtCondition()
00037 {
00038 
00039     m_condCategory = CondMuon;
00040 
00041 }
00042 
00043 L1GtMuonTemplate::L1GtMuonTemplate(const std::string& cName)
00044         : L1GtCondition(cName)
00045 {
00046 
00047     m_condCategory = CondMuon;
00048 
00049 }
00050 
00051 L1GtMuonTemplate::L1GtMuonTemplate(const std::string& cName, const L1GtConditionType& cType)
00052         : L1GtCondition(cName, CondMuon, cType)
00053 {
00054 
00055     int nObjects = nrObjects();
00056 
00057     if (nObjects > 0) {
00058         m_objectParameter.reserve(nObjects);
00059 
00060         m_objectType.reserve(nObjects);
00061         m_objectType.assign(nObjects, Mu);
00062     }
00063 
00064 }
00065 
00066 // copy constructor
00067 L1GtMuonTemplate::L1GtMuonTemplate(const L1GtMuonTemplate& cp)
00068         : L1GtCondition(cp.m_condName)
00069 {
00070     copy(cp);
00071 }
00072 
00073 // destructor
00074 L1GtMuonTemplate::~L1GtMuonTemplate()
00075 {
00076     // empty now
00077 }
00078 
00079 // assign operator
00080 L1GtMuonTemplate& L1GtMuonTemplate::operator= (const L1GtMuonTemplate& cp)
00081 {
00082 
00083     copy(cp);
00084     return *this;
00085 }
00086 
00087 
00088 // setConditionParameter - set the parameters of the condition
00089 void L1GtMuonTemplate::setConditionParameter(
00090     const std::vector<ObjectParameter>& objParameter,
00091     const CorrelationParameter& corrParameter)
00092 {
00093 
00094     m_objectParameter = objParameter;
00095     m_correlationParameter = corrParameter;
00096 
00097 }
00098 
00099 void L1GtMuonTemplate::print(std::ostream& myCout) const
00100 {
00101 
00102     myCout << "\n  L1GtMuonTemplate print..." << std::endl;
00103 
00104     L1GtCondition::print(myCout);
00105 
00106     int nObjects = nrObjects();
00107 
00108     for (int i = 0; i < nObjects; i++) {
00109         myCout << std::endl;
00110         myCout << "  Template for object " << i << " [ hex ]" << std::endl;
00111         myCout << "    ptHighThreshold   = "
00112         << std::hex << m_objectParameter[i].ptHighThreshold << std::endl;
00113         myCout << "    ptLowThreshold    = "
00114         << std::hex << m_objectParameter[i].ptLowThreshold << std::endl;
00115         myCout << "    enableMip         = "
00116         << std::hex << m_objectParameter[i].enableMip << std::endl;
00117         myCout << "    enableIso         = "
00118         << std::hex << m_objectParameter[i].enableIso << std::endl;
00119         myCout << "    requestIso        = "
00120         << std::hex << m_objectParameter[i].requestIso << std::endl;
00121         myCout << "    qualityRange      = "
00122         << std::hex << m_objectParameter[i].qualityRange << std::endl;
00123         myCout << "    etaRange          = "
00124         << std::hex << m_objectParameter[i].etaRange << std::endl;
00125         myCout << "    phiHigh           = "
00126         << std::hex << m_objectParameter[i].phiHigh << std::endl;
00127         myCout << "    phiLow            = "
00128         << std::hex << m_objectParameter[i].phiLow << std::endl;
00129     }
00130 
00131 
00132     if ( wsc() ) {
00133         myCout << "  Correlation parameters " << "[ hex ]" <<  std::endl;
00134 
00135         myCout <<     "    chargeCorrelation  = "
00136         << std::hex << m_correlationParameter.chargeCorrelation
00137         << std::endl;
00138 
00139         myCout << "    deltaEtaRange      = "
00140         << std::hex << m_correlationParameter.deltaEtaRange << std::endl;
00141         myCout << "    deltaPhiRange1Word = "
00142         << std::hex << m_correlationParameter.deltaPhiRange1Word << std::endl;
00143         myCout << "    deltaPhiRange0Word = "
00144         << std::hex << m_correlationParameter.deltaPhiRange0Word << std::endl;
00145         myCout << "    deltaPhiMaxbits    = "
00146         << std::hex << m_correlationParameter.deltaPhiMaxbits << std::endl;
00147     } else {
00148 
00149         if (m_condType == Type1s) {
00150             myCout << "  Correlation parameters " << "[ hex ]" <<  std::endl;
00151 
00152             myCout <<     "    chargeCorrelation  = "
00153             << std::hex << m_correlationParameter.chargeCorrelation
00154             << " (charge sign) " << std::endl;
00155 
00156         } else {
00157 
00158             myCout << "\n  Correlation parameters " << "[ hex ]" <<  std::endl;
00159 
00160             myCout <<     "    chargeCorrelation  = "
00161             << std::hex << m_correlationParameter.chargeCorrelation
00162             << std::endl;
00163         }
00164     }
00165 
00166     // reset to decimal output
00167     myCout << std::dec << std::endl;
00168 }
00169 
00170 void L1GtMuonTemplate::copy(const L1GtMuonTemplate& cp)
00171 {
00172 
00173     m_condName     = cp.condName();
00174     m_condCategory = cp.condCategory();
00175     m_condType     = cp.condType();
00176     m_objectType   = cp.objectType();
00177     m_condGEq      = cp.condGEq();
00178     m_condChipNr   = cp.condChipNr();
00179 
00180     m_objectParameter = *(cp.objectParameter());
00181     m_correlationParameter = *(cp.correlationParameter());
00182 
00183 }
00184 
00185 // output stream operator
00186 std::ostream& operator<<(std::ostream& os, const L1GtMuonTemplate& result)
00187 {
00188     result.print(os);
00189     return os;
00190 
00191 }
00192 
00193