Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:12

0001 #ifndef HCALTBEVENTPOSITION_H
0002 #define HCALTBEVENTPOSITION_H 1
0003 
0004 #include <string>
0005 #include <iostream>
0006 #include <vector>
0007 
0008 /** \class HcalTBEventPosition
0009 
0010 
0011 This class contains event position information, including the table
0012 position as well as hits from the delay wire chambers.
0013       
0014 $Date: 2006/04/04 15:00:27 $
0015 $Revision: 1.3 $
0016 \author P. Dudero - Minnesota
0017 */
0018 class HcalTBEventPosition {
0019 public:
0020   /// Null constructor
0021   HcalTBEventPosition();
0022 
0023   /// Get the X position (mm) of the HF table (if present in this run)
0024   double hfTableX() const { return hfTableX_; }
0025   /// Get the Y position (mm) of the HF table (if present in this run)
0026   double hfTableY() const { return hfTableY_; }
0027   /// Get the V position of the HF table (if present in this run)
0028   double hfTableV() const { return hfTableV_; }
0029   /// Get the eta (not ieta) position of the HB/HE/HO table (if present in this run)
0030   double hbheTableEta() const { return hbheTableEta_; }
0031   /// Get the phi (not iphi) position of the HB/HE/HO table (if present in this run)
0032   double hbheTablePhi() const { return hbheTablePhi_; }
0033 
0034   /** \brief Get the wire chamber hits for the specified chamber
0035       For HB/HE/HO running, chambers A, B, and C were active while
0036       all five (A, B, C, D, and E) were active for HF running.
0037   */
0038   void getChamberHits(char chamberch,  // 'A','B','C','D', or 'E'
0039                       std::vector<double>& xvec,
0040                       std::vector<double>& yvec) const;
0041 
0042   // Setter methods
0043   void setHFtableCoords(double x, double y, double v);
0044   void setHBHEtableCoords(double eta, double phi);
0045   void setChamberHits(char chamberch, const std::vector<double>& xvec, const std::vector<double>& yvec);
0046 
0047 private:
0048   double hfTableX_, hfTableY_, hfTableV_;
0049   double hbheTableEta_, hbheTablePhi_;
0050 
0051   std::vector<double> ax_, ay_, bx_, by_, cx_, cy_, dx_, dy_, ex_, ey_, fx_, fy_, gx_, gy_, hx_, hy_;
0052 };
0053 
0054 std::ostream& operator<<(std::ostream& s, const HcalTBEventPosition& htbep);
0055 
0056 #endif