CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/Alignment/CommonAlignmentAlgorithm/interface/AlignableDataIORoot.h

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   // data members
00042 
00044   align::StructureType ObjId;
00045   //unsigned int Id;
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