//================================================= // AliJBaseCard.h // last modified FK 6.NOV 2009 //================================================= #ifndef ALIJBASECARD_H #define ALIJBASECARD_H #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #ifndef AliJMaxDimBuffer #define AliJMaxDimBuffer const int kMaxDimBuffer = 300;//max length of a line read to a buffe #endif class AliJBaseCard { //==== M e m b e r F u n c t i o n s ======== public: AliJBaseCard(); // constructor AliJBaseCard(const char *filename); // constructor AliJBaseCard& operator=(const AliJBaseCard& obj); virtual ~AliJBaseCard(); void AddToKeyTable( TString key, int index ){ TNamed * ko = new TNamed(key.Data(),""); ko->SetUniqueID(index); fKeyTable.Add(ko);// TODO check duplicate } float Get(TString keyword, int VectorComponent=0); //get TVector component TString GetStr(TString keyword ); //get TVector component TVector* GetVector( TString keyword ); int GetN(TString keyword); //get TVector dimension void PrintOut(); void WriteCard(TDirectory *file); virtual void InitCard(); void FinishCard(); void ReadInputLine( const char* buffer ); void ReadLine( const char * buffer ); protected: void ReadInputCard(); int GetNwithIndex(int i){ return fValuesVector[i].GetNrows(); } unsigned int GetTVectorIndex(TString keyword, int tol=0); //==== D a t a M e m b e r s ======== char fcardname[255]; // file name int fnentry; //Number of lines in cfg file std::vector< TString > fKeyWordVector; //array of key words std::vector< TVector > fValuesVector; //array of float number confg parameter vectors std::vector< TString > fValueString; // Storage of raw inut string for each item //std::map< TString, unsigned int > MapKeyWordToTVector;//mapping keywords to TVector THashList fKeyTable; // key map with hash algorithm //ClassDef(AliJBaseCard, 1); // EMCAL for jcorran }; #endif