Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:22:11

0001 #ifndef GCTTESTELECTRONS_H_
0002 #define GCTTESTELECTRONS_H_
0003 
0004 /*!
0005  * \class gctTestElectrons
0006  * \brief Test of the electron sorting
0007  * 
0008  * Electron sort test functionality migrated from standalone test programs
0009  *
0010  * \author Greg Heath
0011  * \date March 2007
0012  *
0013  */
0014 
0015 #include "DataFormats/L1GlobalCaloTrigger/interface/L1GctEmCand.h"
0016 #include "DataFormats/L1CaloTrigger/interface/L1CaloEmCand.h"
0017 
0018 #include <vector>
0019 #include <string>
0020 
0021 class L1GlobalCaloTrigger;
0022 class L1GctElectronSorter;
0023 
0024 class gctTestElectrons {
0025 public:
0026   gctTestElectrons();
0027   ~gctTestElectrons();
0028 
0029   /// Load another event into the gct. Overloaded for the various ways of doing this.
0030   std::vector<L1CaloEmCand> loadEvent(L1GlobalCaloTrigger*& gct, const std::string fileName, const int16_t bx);
0031 
0032   /// Read the input electron data (after GCT processing).
0033   void fillElectronData(const L1GlobalCaloTrigger* gct);
0034 
0035   /// Repeat the sort locally and check the result
0036   bool checkElectrons(const L1GlobalCaloTrigger* gct, const int bxStart, const int numOfBx);
0037 
0038 private:
0039   void LoadFileData(const std::string& inputFile, const int16_t bx);
0040   void print(const std::vector<L1GctEmCand> cands) const;
0041 
0042   L1GctElectronSorter* m_theIsoEmCandSorter;
0043   L1GctElectronSorter* m_nonIsoEmCandSorter;
0044 
0045   std::string m_fileNameUsed;
0046 
0047   std::vector<L1GctEmCand> m_theIsoEmCandsFromGct;
0048   std::vector<L1GctEmCand> m_nonIsoEmCandsFromGct;
0049 
0050   std::vector<L1CaloEmCand> m_theIsoEmCandsFromFileInput;
0051   std::vector<L1CaloEmCand> m_nonIsoEmCandsFromFileInput;
0052 
0053   std::vector<L1GctEmCand> m_theIsoEmCandsFromFileSorted;
0054   std::vector<L1GctEmCand> m_nonIsoEmCandsFromFileSorted;
0055 };
0056 
0057 #endif /*GCTTEST_H_*/