1#ifndef Podd_THaCrateMap_h_
2#define Podd_THaCrateMap_h_
38 explicit THaCrateMap(
const char* db =
"cratemap" );
67 int init(
const std::string& the_map);
69 int init( FILE* fi,
const char* fname );
70 void print(std::ostream& os = std::cout)
const;
143 assert( crate <
crdat.size() );
150 assert( crate <
crdat.size() );
151 return (
crdat[crate].crate_code ==
kVME ||
158 assert( crate <
crdat.size() );
165 assert( crate <
crdat.size() );
172 assert( crate <
crdat.size() );
173 return (
crdat[crate].bank_structure);
179 assert( crate <
crdat.size() );
180 return (
crdat[crate].all_banks);
186 assert( crate <
crdat.size() );
187 return crdat[crate].crate_used;
193 assert( crate <
crdat.size() && slot <
crdat[crate].sltdat.size() );
194 if( crate >=
crdat.size() || slot >=
crdat[crate].sltdat.size() )
196 return crdat[crate].sltdat[slot].used;
202 assert( crate <
crdat.size() && slot <
crdat[crate].sltdat.size() );
203 return crdat[crate].sltdat[slot].clear;
209 assert( crate <
crdat.size() && slot <
crdat[crate].sltdat.size() );
210 return crdat[crate].sltdat[slot].model;
216 assert( crate <
crdat.size() && slot <
crdat[crate].sltdat.size() );
217 return crdat[crate].sltdat[slot].headmask;
223 assert( crate <
crdat.size() && slot <
crdat[crate].sltdat.size() );
224 return crdat[crate].sltdat[slot].bank;
230 assert( crate <
crdat.size() && slot <
crdat[crate].sltdat.size() );
231 return crdat[crate].sltdat[slot].nchan;
237 assert( crate <
crdat.size() && slot <
crdat[crate].sltdat.size() );
238 return crdat[crate].sltdat[slot].ndata;
244 assert( crate <
crdat.size() );
245 return crdat[crate].used_slots.size();
251 assert( crate <
crdat.size() );
252 return crdat[crate].scalerloc.c_str();
258 assert( crate <
crdat.size() && slot <
crdat[crate].sltdat.size() );
259 return crdat[crate].sltdat[slot].cfgstr.c_str();
265 assert( crate <
crdat.size() );
266 if(
crdat[crate].used_slots.empty() )
268 return crdat[crate].used_slots.front();
274 assert( crate <
crdat.size() );
275 if(
crdat[crate].used_slots.empty() )
277 return crdat[crate].used_slots.back();
289 assert( crate <
crdat.size() && slot <
crdat[crate].sltdat.size() );
290 return crdat[crate].sltdat[slot].header;
302 assert( crate <
crdat.size() );
303 return crdat[crate].used_slots;
#define ClassDef(name, id)
std::string crate_type_name
std::array< SlotInfo_t, MAXSLOT > sltdat
std::vector< UInt_t > used_slots
Int_t ParseSlotInfo(THaCrateMap *crmap, UInt_t crate, std::string &line)
const std::vector< UInt_t > & GetUsedSlots(UInt_t crate) const
UInt_t getNchan(UInt_t crate, UInt_t slot) const
UInt_t getNslot(UInt_t crate) const
bool slotUsed(UInt_t crate, UInt_t slot) const
void setUsed(UInt_t crate, UInt_t slot)
static const UInt_t MAXDATA
static const UInt_t MAXCHAN
const std::vector< UInt_t > & GetUsedCrates() const
void print(std::ostream &os=std::cout) const
UInt_t getHeader(UInt_t crate, UInt_t slot) const
Int_t loadConfig(std::string &line, std::string &cfgstr)
std::vector< UInt_t > used_crates
UInt_t getScalerCrate(UInt_t word) const
bool isFastBus(UInt_t crate) const
Int_t ParseCrateInfo(const std::string &line, UInt_t &crate)
bool isBankStructure(UInt_t crate) const
const char * GetName() const
UInt_t getNdata(UInt_t crate, UInt_t slot) const
bool isAllBanks(UInt_t crate) const
bool slotClear(UInt_t crate, UInt_t slot) const
bool isVme(UInt_t crate) const
Int_t resetCrate(UInt_t crate)
bool crateUsed(UInt_t crate) const
Int_t setModel(UInt_t crate, UInt_t slot, Int_t mod, UInt_t nchan=MAXCHAN, UInt_t ndata=MAXDATA)
bool isCamac(UInt_t crate) const
int init(const std::string &the_map)
UInt_t getMinSlot(UInt_t crate) const
static const Int_t CM_ERR
static Int_t readFile(FILE *fi, std::string &text)
static const UInt_t DEFAULT_TSROC
UInt_t getMaxSlot(UInt_t crate) const
virtual ~THaCrateMap()=default
Int_t SetModelSize(UInt_t crate, UInt_t slot, UInt_t model)
void setUnused(UInt_t crate, UInt_t slot)
const char * getConfigStr(UInt_t crate, UInt_t slot) const
Int_t getModel(UInt_t crate, UInt_t slot) const
const char * getScalerLoc(UInt_t crate) const
std::vector< CrateInfo_t > crdat
bool isScalerCrate(UInt_t crate) const
Int_t setCrateType(UInt_t crate, const char *stype)
UInt_t getMask(UInt_t crate, UInt_t slot) const
Int_t getBank(UInt_t crate, UInt_t slot) const
unsigned long long ULong64_t