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_t Pos[3];
00048 Double_t Rot[9];
00049 UInt_t numDeformationValues_;
00050 enum {kMaxNumPar = 20};
00051 Float_t deformationValues_[kMaxNumPar];
00052
00053 bool newopen;
00054 typedef std::map< std::pair<align::ID, align::StructureType>, int > treemaptype;
00055 treemaptype treemap;
00056
00057 };
00058
00059
00060
00061 #endif