ARA ROOT v3.8 Software

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 doxygen 1.4.7