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 #include "araSoft.h" 00019 00020 #include <vector> 00022 00027 class AraStationInfo: public TObject 00028 { 00029 00030 public: 00031 00032 AraStationInfo(); 00033 AraStationInfo(AraStationId_t stationId); 00034 ~AraStationInfo(); 00035 00036 Int_t getNumCalAnts() {return fNumberCalAntennas;} 00037 Int_t getNumAnts() {return fNumberAntennas;} 00038 void setNumAnts(int numAnts) { fNumberAntennas=numAnts;} 00039 00040 Int_t getNumRFChans() {return numberRFChans;} 00041 void setNumRFChans(int numChans) { numberRFChans=numChans;} 00042 00043 Double_t getCableDelay(int rfChanNum); 00044 AraAntennaInfo *getAntennaInfoForTrigChan(int trigChan); 00045 AraAntennaInfo *getAntennaInfo(int antNum, AraAntPol::AraAntPol_t polType) { return getAntennaInfo(getRFChanByPolAndAnt(antNum,polType));} 00046 AraAntennaInfo *getAntennaInfo(int rfChanNum); 00047 AraCalAntennaInfo *getCalAntennaInfo(int calAntId); 00048 00049 00050 Int_t getRFChanByPolAndAnt(Int_t antNum, AraAntPol::AraAntPol_t polType); 00051 Int_t getElecChanFromRFChan(Int_t rfChan); 00052 Int_t getNumAntennasByPol(AraAntPol::AraAntPol_t polType) {return fAntIndexVec[polType].size();} 00053 00054 //Should add some error checking at some point 00055 Double_t getLowPassFilter(int rfChan) { return fAntInfo[rfChan].lowPassFilterMhz; } 00056 Double_t getHighPassFilter(int rfChan) { return fAntInfo[rfChan].highPassFilterMhz; } 00057 00058 00059 //Below are just for ICRR station 00060 //Maybe they should live elsewhere? 00061 int getIcrrChanIndex(AraLabChip::AraLabChip_t chip, int chan) {return chip*CHANNELS_PER_LAB3 +chan;} 00062 AraLabChip::AraLabChip_t getLabChipForChan(int rfChan) {return fAntInfo[rfChan].labChip;} 00063 int getNumLabChansForChan(int rfChan) { return fAntInfo[rfChan].numLabChans;} 00064 int getFirstLabChanForChan(int rfChan) { return fAntInfo[rfChan].labChans[0];} 00065 int getSecondLabChanForChan(int rfChan) { return fAntInfo[rfChan].labChans[1];} 00066 int getFirstLabChanIndexForChan(int rfChan) { return getIcrrChanIndex(getLabChipForChan(rfChan),getFirstLabChanForChan(rfChan));} 00067 int getSecondLabChanIndexForChan(int rfChan) { return getIcrrChanIndex(getLabChipForChan(rfChan),getSecondLabChanForChan(rfChan));} 00068 int isDiplexed(int rfChan) {return fAntInfo[rfChan].isDiplexed;} 00069 00070 00071 //Labelling for TDA channels just for the ATRI stations 00072 const char *getAtriSingleChannelLabel(Int_t tda, Int_t channel); 00073 const char *getAtriL2Label(Int_t index); 00074 const char *getAtriL3Label(Int_t index); 00075 const char *getAtriL4Label(Int_t index); 00076 static Int_t getTrigChan(Int_t tda, Int_t channel) { 00077 return channel + ANTS_PER_TDA*tda; 00078 } 00079 00080 00081 00082 00083 //At some point will make these private 00084 AraStationId_t fStationId; 00085 std::vector<AraAntennaInfo> fAntInfo; 00086 std::vector<AraCalAntennaInfo> fCalAntInfo; 00087 00088 00089 int numberRFChans; 00090 int fNumberAntennas; 00091 int fNumberCalAntennas; 00092 00093 std::vector<int> fAntIndexVec[3]; 00094 std::vector<int> fTrigChanVec; 00095 00096 00097 private: 00099 AraAntennaInfo *getNewAntennaInfo(int rfChanNum); 00100 AraCalAntennaInfo *getNewCalAntennaInfo(int antCalId); 00101 void fillAntIndexVec(); 00102 void fillTrigChanVec(); 00103 void readChannelMapDbAtri(); 00104 void readChannelMapDbAtri_2(); 00105 void readChannelMapDbIcrr(); 00106 00107 00108 void readCalPulserDb(); 00109 00110 ClassDef(AraStationInfo,1); 00111 }; 00112 00113 #endif //ARASTATIONINFO_H
Generated on Mon Dec 9 13:20:21 2013 for ARA ROOT v3.13 Software by
