Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

BDTarget.h

Go to the documentation of this file.
00001 
00029 #ifndef BDTARGET_H
00030 #define BDTARGET_H
00031 
00032 #include <BeamDataUtil/BDProcessor.h>
00033 #include <BeamDataUtil/BDProfMon.h>
00034 
00035 class RawBeamMonHeaderBlock;
00036 class RawBeamMonBlock;
00037 class RawBeamData;
00038 
00039 #include <vector>
00040 
00041 class BDTarget : public BDProcessor {
00042 public:
00043     BDTarget();
00044     virtual ~BDTarget();
00045 
00051     enum BeamType {
00052         kUnknown = 0,           
00053         kLE,                    
00054         kME,                    
00055         kHE,                    
00056         kPsME,                  
00057         kPsHE                   
00058     };
00059 
00060     // BDProcessor API
00061 
00063     void SetSpill(const RawBeamMonHeaderBlock& rbmhb,
00064                   const RawBeamMonBlock& rbmb);
00065 
00066     BDProfMon& GetPM121() { return fPM121; }
00067     BDProfMon& GetPMTGT() { return fPMTGT; }
00068 
00074     void BpmProjection(std::vector<double> &xp, std::vector<double> &yp,
00075                        std::vector<double> &xi, std::vector<double> &yi) const;
00076 
00083     int ProfileProjection(double &x, double &y, double &xrms, double &yrms) const;
00084     
00097     BeamType TargetIn(bool &is_in, double& z_location, double spilltime=0) const;
00098 
00099 private:
00100     const RawBeamData *fBpms[6], *fPMs[2], *fTgt[3];
00101     BDProfMon fPM121, fPMTGT;   
00102 
00103     // Return number of batches, including average in zero-th element
00104     int GetNbatches() const;
00105 };
00106 
00107 
00108 #endif  // BDTARGET_H

Generated on Mon Feb 15 11:06:24 2010 for loon by  doxygen 1.3.9.1