AraEvent/AraStationInfo.h
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 #ifndef ARASTATIONINFO_H 00011 #define ARASTATIONINFO_H 00012 00013 //Includes 00014 #include <TObject.h> 00015 #include "araIcrrDefines.h" 00016 #include "AraAntennaInfo.h" 00017 #include "AraCalAntennaInfo.h" 00018 00019 #include <vector> 00021 00026 class AraStationInfo: public TObject 00027 { 00028 00029 public: 00030 00031 AraStationInfo(); 00032 AraStationInfo(AraStationId_t stationId); 00033 ~AraStationInfo(); 00034 00035 Int_t getNumCalAnts() {return fNumberCalAntennas;} 00036 Int_t getNumAnts() {return fNumberAntennas;} 00037 void setNumAnts(int numAnts) { fNumberAntennas=numAnts;} 00038 00039 Int_t getNumRFChans() {return numberRFChans;} 00040 void setNumRFChans(int numChans) { numberRFChans=numChans;} 00041 00042 Double_t getCableDelay(int rfChanNum); 00043 AraAntennaInfo *getAntennaInfo(int antNum, AraAntPol::AraAntPol_t polType) { return getAntennaInfo(getRFChanByPolAndAnt(antNum,polType));} 00044 AraAntennaInfo *getAntennaInfo(int rfChanNum); 00045 AraCalAntennaInfo *getCalAntennaInfo(int calAntId); 00046 00047 00048 Int_t getRFChanByPolAndAnt(Int_t antNum, AraAntPol::AraAntPol_t polType); 00049 Int_t getElecChanFromRFChan(Int_t rfChan); 00050 Int_t getNumAntennasByPol(AraAntPol::AraAntPol_t polType) {return fAntIndexVec[polType].size();} 00051 00052 //Should add some error checking at some point 00053 Double_t getLowPassFilter(int rfChan) { return fAntInfo[rfChan].lowPassFilterMhz; } 00054 Double_t getHighPassFilter(int rfChan) { return fAntInfo[rfChan].highPassFilterMhz; } 00055 00056 00057 //Below are just for ICRR station 00058 //Maybe they should live elsewhere? 00059 int getIcrrChanIndex(AraLabChip::AraLabChip_t chip, int chan) {return chip*CHANNELS_PER_LAB3 +chan;} 00060 AraLabChip::AraLabChip_t getLabChipForChan(int rfChan) {return fAntInfo[rfChan].labChip;} 00061 int getNumLabChansForChan(int rfChan) { return fAntInfo[rfChan].numLabChans;} 00062 int getFirstLabChanForChan(int rfChan) { return fAntInfo[rfChan].labChans[0];} 00063 int getSecondLabChanForChan(int rfChan) { return fAntInfo[rfChan].labChans[1];} 00064 int getFirstLabChanIndexForChan(int rfChan) { return getIcrrChanIndex(getLabChipForChan(rfChan),getFirstLabChanForChan(rfChan));} 00065 int getSecondLabChanIndexForChan(int rfChan) { return getIcrrChanIndex(getLabChipForChan(rfChan),getSecondLabChanForChan(rfChan));} 00066 int isDiplexed(int rfChan) {return fAntInfo[rfChan].isDiplexed;} 00067 00068 00069 00070 00071 00072 00073 //At some point will make these private 00074 AraStationId_t fStationId; 00075 std::vector<AraAntennaInfo> fAntInfo; 00076 std::vector<AraCalAntennaInfo> fCalAntInfo; 00077 00078 00079 int numberRFChans; 00080 int fNumberAntennas; 00081 int fNumberCalAntennas; 00082 00083 std::vector<int> fAntIndexVec[3]; 00084 00085 00086 private: 00088 AraAntennaInfo *getNewAntennaInfo(int rfChanNum); 00089 AraCalAntennaInfo *getNewCalAntennaInfo(int antCalId); 00090 void fillAntIndexVec(); 00091 void readChannelMapDbAtri(); 00092 void readChannelMapDbAtri_2(); 00093 void readChannelMapDbIcrr(); 00094 00095 00096 void readCalPulserDb(); 00097 00098 ClassDef(AraStationInfo,1); 00099 }; 00100 00101 #endif //ARASTATIONINFO_H
Generated on Mon Jun 3 14:59:46 2013 for ARA ROOT v3.8 Software by
