00001
00025 #include <Stiostream.h>
00026 #include "Stiostream.h"
00027
00028 #ifndef StEmcDecoder_HH
00029 #define StEmcDecoder_HH
00030
00031 #include "TObject.h"
00032 #include "TDatime.h"
00033
00034 class StEmcMappingDb;
00035
00036 class StEmcDecoder : public TObject
00037 {
00038 public:
00039 StEmcDecoder(unsigned int date=20330101,unsigned int time=000000, bool TowerMapBug = false);
00040 virtual ~StEmcDecoder();
00041
00042 void SetDateTime(const TDatime& dt) { SetDateTime(dt.GetDate(), dt.GetTime()); }
00043 void SetDateTime(unsigned int date, unsigned int time);
00044 bool GetFixTowerMapBug(void) const;
00045 void SetFixTowerMapBug(bool fix);
00046
00047 int GetTowerBugCorrectionShift(int id_original, int &shift) const;
00048 int GetPreshowerBugCorrectionShift(int id_original, int &shift) const;
00049 int GetSmdBugCorrectionShift(int id_original, int &shift) const;
00050
00051
00052 int GetTowerBin(int softId,int &m,int &e,int &s) const;
00053 int GetDaqIdFromTowerId(int softId,int &RDO) const;
00054 int GetCrateFromTowerId(int softId, int &crate, int &sequence) const;
00055 int GetTDCFromTowerId(int softId, int &TDC) const;
00056 int GetTriggerPatchFromTowerId(int softId, int &patchId) const;
00057 int GetJetPatchFromTowerId(int softId, int &jetPatch) const;
00058
00059
00060 int GetTowerIdFromBin(int m, int e, int s, int &softId) const;
00061 int GetTowerIdFromDaqId(int RDO, int &softId) const;
00062 int GetTowerIdFromCrate(int crate, int sequence, int &softId) const;
00063 int GetTowerIdFromTDC(int TDC, int sequence, int &softId) const;
00064
00065
00066 int GetTowerCrateFromDaqId(int RDO,int &crate, int &sequence) const;
00067 int GetTowerCrateFromTDC(int TDC, int &crate) const;
00068 int GetTowerTDCFromCrate(int crate, int &TDC) const;
00069 int GetTowerTDCFromDaqId(int RDO, int &TDC) const;
00070
00071
00072 int GetTriggerPatchFromCrate(int crate, int sequence, int &patchId) const;
00073 int GetCrateAndSequenceFromTriggerPatch(int patchId, int &crate, int &sequence) const;
00074 int GetTriggerPatchFromJetPatch(int jetPatch, int sequence, int &patchId) const;
00075 int GetJetPatchAndSequenceFromTriggerPatch(int patchId, int &jetPatch, int &sequence) const;
00076
00078 int GetDSMFromTriggerPatch(int patchId, int &dsmModule) const;
00079
00081 int GetTriggerPatchesFromDSM(int dsmModule, int *triggerPatches) const;
00082
00083
00084 int GetSmdCoord(int RDO, int posInFiber, int &det, int &m, int &e, int &s, bool print=false) const;
00085 int GetSmdCoord(int RDO, int posInFiber, int &det, int &m, int &e, int &s, int &wire, int &A_value, bool print=false) const;
00086 int GetSmdRDO(int detector, int m, int e, int s, int &RDO, int &posInFiber) const;
00087
00088
00089 int GetPsdId(int RDO, int posInFiber, int &softId,bool print=false) const;
00090 int GetPsdId(int RDO, int posInFiber, int &softId, int &PMTbox, int &wire, int &A_value, bool print=false) const;
00091 int GetPsdRDO(int softId, int &RDO, int &posInFiber) const;
00092
00093 void PrintTowerMap(ofstream *out) const;
00094 void PrintSmdMap(ofstream *out) const;
00095 void PrintPsdMap(ofstream *out) const;
00096
00097 private:
00098 bool mTowerMapBug;
00099 int TowerBugFixIndex[4800];
00100 int PreshowerBugFixIndex[4800];
00101 int SmdBugFixIndex[18000];
00102 StEmcMappingDb* mapping;
00103
00104 ClassDef(StEmcDecoder,1)
00105 };
00106 #endif
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143