https://github.com/root-project/root
Tip revision: 8483108b510b110a664c89af1e452e5547bdaa38 authored by Fons Rademakers on 31 October 2013, 15:46:31 UTC
make version v5-34-11.
make version v5-34-11.
Tip revision: 8483108
TBench.h
#ifndef ROOT_TBENCH
#define ROOT_TBENCH
#include "TClonesArray.h"
namespace stdext {}
#include <vector>
#include <deque>
#include <list>
#include <set>
#include <map>
#ifndef R__GLOBALSTL
#ifndef WIN32
using std::vector;
using std::list;
using std::deque;
using std::set;
using std::multiset;
using std::map;
using std::multimap;
#else
using namespace std;
using namespace stdext;
#endif
#endif
#ifdef R__HPUX
namespace std {
using ::make_pair;
using ::pair;
}
#endif
#ifdef __CINT__
template<class a,class b,class c> class hash_map : public map<a,b,c> {};
template<class a,class b> class hash_set : public set<a,b> {};
template<class a,class b,class c> class hash_multimap : public multimap<a,b,c> {};
template<class a,class b> class hash_multiset : public multiset<a,b> {};
#else
//#include <hash_map>
//#include <hash_set>
#endif
//-------------------------------------------------------------
class THit {
protected:
float fX; //x position at center
float fY; //y position at center
float fZ; //z position at center
int fNpulses; //Number of pulses
int *fPulses; //[fNpulses]
int fTime[10]; //time at the 10 layers
public:
THit();
THit(const THit &);
THit(int time);
virtual ~THit();
void Set (int time);
inline int Get(int i) { return fTime[i]; }
bool operator==(const THit& c) const { return this==&c;}
bool operator<(const THit& c) const { return this<&c;}
THit& operator=(const THit& c);
friend TBuffer &operator<<(TBuffer &b, const THit *hit);
ClassDef(THit,1) // the hit class
};
namespace stdext {
template<class T> inline size_t __gnu_cxx_hash_obj(const T& __o) {
unsigned long __h = 0;
const char* s = (const char*)&__o;
for (size_t i=0; i<sizeof(T); ++s, ++i)
__h = 5*__h + *s;
return size_t(__h);
}
template <class _Key> struct hash { };
inline size_t hash_value(const THit& s) {
return __gnu_cxx_hash_obj(s);
}
}
#if defined R__TEMPLATE_OVERLOAD_BUG
template <>
#endif
inline TBuffer &operator>>(TBuffer &buf,THit *&obj)
{
obj = new THit();
obj->Streamer(buf);
return buf;
}
//-------------------------------------------------------------
class TObjHit : public TObject, public THit {
public:
TObjHit();
TObjHit(int time);
virtual ~TObjHit(){;}
ClassDef(TObjHit,1) // the hit class
};
//-------------------------------------------------------------
class TSTLhit {
protected:
Int_t fNhits;
vector <THit> fList1;
public:
TSTLhit();
TSTLhit(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhit();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhit,1) // STL vector of THit
};
//-------------------------------------------------------------
class TSTLhitList {
protected:
Int_t fNhits;
list <THit> fList1;
public:
TSTLhitList();
TSTLhitList(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitList();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitList,1) // STL vector of THit
};
//-------------------------------------------------------------
class TSTLhitDeque {
protected:
Int_t fNhits;
deque <THit> fList1;
public:
TSTLhitDeque();
TSTLhitDeque(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitDeque();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitDeque,1) // STL vector of THit
};
//-------------------------------------------------------------
class TSTLhitMultiset {
protected:
Int_t fNhits;
multiset <THit> fList1;
public:
TSTLhitMultiset();
TSTLhitMultiset(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitMultiset();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitMultiset,1) // STL vector of THit
};
//-------------------------------------------------------------
class TSTLhitSet {
protected:
Int_t fNhits;
set <THit> fList1;
public:
TSTLhitSet();
TSTLhitSet(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitSet();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitSet,1) // STL vector of THit
};
//-------------------------------------------------------------
class TSTLhitMap {
protected:
Int_t fNhits;
map <int,THit> fList1;
public:
TSTLhitMap();
TSTLhitMap(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitMap();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitMap,1) // STL vector of THit
};
//-------------------------------------------------------------
class TSTLhitMultiMap {
protected:
Int_t fNhits;
multimap <int,THit> fList1;
public:
TSTLhitMultiMap();
TSTLhitMultiMap(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitMultiMap();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitMultiMap,1) // STL vector of THit
};
#if 0
//-------------------------------------------------------------
class TSTLhitHashSet {
protected:
Int_t fNhits;
hash_set <THit> fList1;
public:
TSTLhitHashSet();
TSTLhitHashSet(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitHashSet();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitHashSet,1) // STL vector of THit
};
//-------------------------------------------------------------
class TSTLhitHashMultiSet {
protected:
Int_t fNhits;
hash_multiset <THit> fList1;
public:
TSTLhitHashMultiSet();
TSTLhitHashMultiSet(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitHashMultiSet();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitHashMultiSet,1) // STL vector of THit
};
#endif
//-------------------------------------------------------------
class TSTLhitStar {
protected:
Int_t fNhits;
vector <THit*> fList2; //
public:
TSTLhitStar();
TSTLhitStar(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitStar();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitStar,1) // STL vector of pointers to THit
};
//-------------------------------------------------------------
class TSTLhitStarList {
protected:
Int_t fNhits;
list <THit*> fList2; //
public:
TSTLhitStarList();
TSTLhitStarList(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitStarList();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitStarList,1) // STL vector of pointers to THit
};
//-------------------------------------------------------------
class TSTLhitStarDeque {
protected:
Int_t fNhits;
deque <THit*> fList2; //
public:
TSTLhitStarDeque();
TSTLhitStarDeque(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitStarDeque();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitStarDeque,1) // STL vector of pointers to THit
};
//-------------------------------------------------------------
class TSTLhitStarSet {
protected:
Int_t fNhits;
set <THit*> fList2; //
public:
TSTLhitStarSet();
TSTLhitStarSet(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitStarSet();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitStarSet,1) // STL vector of pointers to THit
};
//-------------------------------------------------------------
class TSTLhitStarMultiSet {
protected:
Int_t fNhits;
multiset <THit*> fList2; //
public:
TSTLhitStarMultiSet();
TSTLhitStarMultiSet(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitStarMultiSet();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitStarMultiSet,1) // STL vector of pointers to THit
};
//-------------------------------------------------------------
class TSTLhitStarMap {
protected:
Int_t fNhits;
map <int,THit*> fList2; //
public:
TSTLhitStarMap();
TSTLhitStarMap(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitStarMap();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitStarMap,1) // STL vector of pointers to THit
};
//-------------------------------------------------------------
class TSTLhitStarMultiMap {
protected:
Int_t fNhits;
multimap<int,THit*> fList2; //
public:
TSTLhitStarMultiMap();
TSTLhitStarMultiMap(int nmax);
void Clear(Option_t *option="");
virtual ~TSTLhitStarMultiMap();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TSTLhitStarMultiMap,1) // STL vector of pointers to THit
};
//-------------------------------------------------------------
class TCloneshit {
protected:
Int_t fNhits;
TClonesArray *fList3; //->
public:
TCloneshit();
TCloneshit(int nmax);
void Clear(Option_t *option="");
virtual ~TCloneshit();
void MakeEvent(int ievent);
Int_t MakeTree(int mode, int nevents, int compression, int split, float &cx);
Int_t ReadTree();
ClassDef(TCloneshit,1) // TClonesArray of TObjHit
};
#endif