Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:38

0001 #ifndef INTERFACE_RBCINPUT_H
0002 #define INTERFACE_RBCINPUT_H 1
0003 
0004 // Include files
0005 #include <cstdlib>
0006 #include <istream>
0007 #include <ostream>
0008 #include <iostream>
0009 #include <bitset>
0010 #include <vector>
0011 #include <array>
0012 
0013 /** @class RBCInput RBCInput.h interface/RBCInput.h
0014  *  
0015  *
0016  *  @author Andres Osorio
0017  *
0018  *  email: aosorio@uniandes.edu.co
0019  *
0020  *  @date   2008-10-16
0021  */
0022 class RBCInput {
0023 public:
0024   /// Standard constructor
0025   RBCInput() {
0026     needmapping = false;
0027     m_debug = false;
0028     hasData = false;
0029   };
0030 
0031   RBCInput(const RBCInput &) = default;
0032   RBCInput(RBCInput &&) = default;
0033   RBCInput &operator=(const RBCInput &) = default;
0034   RBCInput &operator=(RBCInput &&) = default;
0035 
0036   // io functions
0037   friend std::istream &operator>>(std::istream &istr, RBCInput &);
0038   friend std::ostream &operator<<(std::ostream &ostr, RBCInput const &);
0039 
0040   bool input[30];
0041   std::array<std::bitset<15>, 2> input_sec;
0042 
0043   void printinfo() const { std::cout << "RBCInput: " << (*this); };
0044 
0045   void mask(const std::vector<int> &);
0046 
0047   void force(const std::vector<int> &);
0048 
0049   bool hasData;
0050   bool needmapping;
0051 
0052   void setWheelId(int wid) { m_wheelId = wid; };
0053 
0054   int wheelId() const { return m_wheelId; };
0055 
0056 private:
0057   bool m_debug;
0058 
0059   int m_wheelId;
0060 };
0061 #endif  // INTERFACE_RBCINPUT_H