Go to the documentation of this file.00001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignableDataIORoot_h
00002 #define Alignment_CommonAlignmentAlgorithm_AlignableDataIORoot_h
00003
00004 #include <map>
00005
00006 #include "Alignment/CommonAlignment/interface/StructureType.h"
00007 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignableDataIO.h"
00008 #include "Alignment/CommonAlignmentAlgorithm/interface/AlignmentIORootBase.h"
00009
00011
00012 class AlignableDataIORoot : public AlignmentIORootBase, public AlignableDataIO
00013 {
00014
00015 friend class AlignmentIORoot;
00016
00017 private:
00019 AlignableDataIORoot(PosType p);
00020
00022 int open(const char* filename, int iteration, bool writemode)
00023 { newopen=true; return openRoot(filename,iteration,writemode); }
00024
00026 int close(void){ return closeRoot(); }
00027
00029 int writeAbsRaw(const AlignableAbsData &ad);
00031 AlignableAbsData readAbsRaw(Alignable* ali,int& ierr);
00033 int writeRelRaw(const AlignableRelData &ad);
00035 AlignableRelData readRelRaw(Alignable* ali,int& ierr);
00036
00037 int findEntry(align::ID, align::StructureType);
00038 void createBranches(void);
00039 void setBranchAddresses(void);
00040
00041
00042
00044 align::StructureType ObjId;
00045
00046 align::ID Id;
00047 double Pos[3];
00048 double Rot[9];
00049
00050 bool newopen;
00051 typedef std::map< std::pair<align::ID, align::StructureType>, int > treemaptype;
00052 treemaptype treemap;
00053
00054 };
00055
00056
00057
00058 #endif