ROOT logo
//=================================================
// AliJBaseCard.h
// last modified FK 6.NOV 2009
//=================================================

#ifndef ALIJBASECARD_H
#define ALIJBASECARD_H

#include <TObject.h>

#include <iostream>
#include <fstream>

#include <TString.h>
#include <TVector.h>
#include <TMath.h>
#include <TObjArray.h>
#include <TObjString.h>
#include <TFile.h>
#include <TF1.h>
#include <vector>
#include <THashList.h>
#include <TNamed.h>

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






















 AliJBaseCard.h:1
 AliJBaseCard.h:2
 AliJBaseCard.h:3
 AliJBaseCard.h:4
 AliJBaseCard.h:5
 AliJBaseCard.h:6
 AliJBaseCard.h:7
 AliJBaseCard.h:8
 AliJBaseCard.h:9
 AliJBaseCard.h:10
 AliJBaseCard.h:11
 AliJBaseCard.h:12
 AliJBaseCard.h:13
 AliJBaseCard.h:14
 AliJBaseCard.h:15
 AliJBaseCard.h:16
 AliJBaseCard.h:17
 AliJBaseCard.h:18
 AliJBaseCard.h:19
 AliJBaseCard.h:20
 AliJBaseCard.h:21
 AliJBaseCard.h:22
 AliJBaseCard.h:23
 AliJBaseCard.h:24
 AliJBaseCard.h:25
 AliJBaseCard.h:26
 AliJBaseCard.h:27
 AliJBaseCard.h:28
 AliJBaseCard.h:29
 AliJBaseCard.h:30
 AliJBaseCard.h:31
 AliJBaseCard.h:32
 AliJBaseCard.h:33
 AliJBaseCard.h:34
 AliJBaseCard.h:35
 AliJBaseCard.h:36
 AliJBaseCard.h:37
 AliJBaseCard.h:38
 AliJBaseCard.h:39
 AliJBaseCard.h:40
 AliJBaseCard.h:41
 AliJBaseCard.h:42
 AliJBaseCard.h:43
 AliJBaseCard.h:44
 AliJBaseCard.h:45
 AliJBaseCard.h:46
 AliJBaseCard.h:47
 AliJBaseCard.h:48
 AliJBaseCard.h:49
 AliJBaseCard.h:50
 AliJBaseCard.h:51
 AliJBaseCard.h:52
 AliJBaseCard.h:53
 AliJBaseCard.h:54
 AliJBaseCard.h:55
 AliJBaseCard.h:56
 AliJBaseCard.h:57
 AliJBaseCard.h:58
 AliJBaseCard.h:59
 AliJBaseCard.h:60
 AliJBaseCard.h:61
 AliJBaseCard.h:62
 AliJBaseCard.h:63
 AliJBaseCard.h:64
 AliJBaseCard.h:65
 AliJBaseCard.h:66
 AliJBaseCard.h:67
 AliJBaseCard.h:68
 AliJBaseCard.h:69
 AliJBaseCard.h:70
 AliJBaseCard.h:71
 AliJBaseCard.h:72
 AliJBaseCard.h:73
 AliJBaseCard.h:74
 AliJBaseCard.h:75
 AliJBaseCard.h:76
 AliJBaseCard.h:77
 AliJBaseCard.h:78
 AliJBaseCard.h:79
 AliJBaseCard.h:80
 AliJBaseCard.h:81
 AliJBaseCard.h:82
 AliJBaseCard.h:83
 AliJBaseCard.h:84
 AliJBaseCard.h:85
 AliJBaseCard.h:86
 AliJBaseCard.h:87
 AliJBaseCard.h:88
 AliJBaseCard.h:89
 AliJBaseCard.h:90
 AliJBaseCard.h:91
 AliJBaseCard.h:92
 AliJBaseCard.h:93
 AliJBaseCard.h:94
 AliJBaseCard.h:95
 AliJBaseCard.h:96
 AliJBaseCard.h:97
 AliJBaseCard.h:98
 AliJBaseCard.h:99
 AliJBaseCard.h:100
 AliJBaseCard.h:101
 AliJBaseCard.h:102
 AliJBaseCard.h:103