CMS 3D CMS Logo

MillePedeVariablesIORoot.h
Go to the documentation of this file.
1 #ifndef MILLEPEDEVARIABLESIOROOT_H
2 #define MILLEPEDEVARIABLESIOROOT_H
3 
13 
14 
17 
18 #include <vector>
19 
20 // ROOT types:
21 #include "Rtypes.h"
22 
23 class Alignable;
25 
26 
27 //__________________________________________________________________________________________________
28 
30 {
31  public:
34 
36  void writeMillePedeVariables(const std::vector<Alignable*> &alivec, const char *filename,
37  int iter, bool validCheck, int &ierr);
38 
40  std::vector<AlignmentUserVariables*> readMillePedeVariables
41  (const std::vector<Alignable*> &alivec, const char *filename, int iter, int &ierr);
42 
43  protected:
44 
46  virtual int writeOne(Alignable *ali); // inherited from AlignmentUserVariablesIO
47 
49  virtual AlignmentUserVariables* readOne(Alignable *ali, int &ierr);
50  // previous inherited from AlignmentUserVariablesIO
51  // inherited from AlignmentUserVariablesIO
53  virtual int open(const char *filename, int iteration, bool writemode)
54  { return this->openRoot(filename, iteration, writemode);}
55 
57  virtual int close() {return this->closeRoot();} // inherited from AlignmentUserVariablesIO
58 
60  virtual void createBranches(); // inherited from AlignmentIORootBase
62  virtual void setBranchAddresses(); // inherited from AlignmentIORootBase
63 
64  private:
65  // variables for ROOT tree
66  enum {kMaxNumPar = 20}; // slighly above 'two bowed surfaces' limit
67 
68  unsigned int myId;
69  int myObjId;
70 
71  unsigned int myNumPar;
77  Float_t mySigma[kMaxNumPar];
78  UInt_t myHitsX;
79  UInt_t myHitsY;
80  UInt_t myLabel;
81 };
82 
83 #endif
std::vector< AlignmentUserVariables * > readMillePedeVariables(const std::vector< Alignable * > &alivec, const char *filename, int iter, int &ierr)
virtual AlignmentUserVariables * readOne(Alignable *ali, int &ierr)
Base class for ROOT-based I/O of Alignment parameters etc.
virtual int open(const char *filename, int iteration, bool writemode)
(Abstract) Base class for alignment algorithm user variables
void writeMillePedeVariables(const std::vector< Alignable * > &alivec, const char *filename, int iter, bool validCheck, int &ierr)
virtual void setBranchAddresses()
set root branche addresses
int closeRoot(void)
close IO
int openRoot(const char *filename, int iteration, bool writemode)
open IO
virtual void createBranches()
create root branches
virtual int writeOne(Alignable *ali)