From d9cc42ed6d6f4d444f5cead40ba1cffea637a507 Mon Sep 17 00:00:00 2001 From: cvetan Date: Fri, 24 Mar 2006 16:20:50 +0000 Subject: [PATCH] New constructors added to AliAlignObj and the derived classes (R.Grosso) --- STEER/AliAlignObj.cxx | 17 +++++++++++++++++ STEER/AliAlignObj.h | 13 ++++++++----- STEER/AliAlignObjAngles.cxx | 17 +++++++++++------ STEER/AliAlignObjAngles.h | 1 + STEER/AliAlignObjMatrix.cxx | 21 ++++++++++++--------- STEER/AliAlignObjMatrix.h | 1 + 6 files changed, 50 insertions(+), 20 deletions(-) diff --git a/STEER/AliAlignObj.cxx b/STEER/AliAlignObj.cxx index 1b198fa658d..7ef8c3c1c54 100644 --- a/STEER/AliAlignObj.cxx +++ b/STEER/AliAlignObj.cxx @@ -98,6 +98,23 @@ AliAlignObj::AliAlignObj(): InitVolPaths(); } +//_____________________________________________________________________________ +AliAlignObj::AliAlignObj(const char* volpath, UShort_t voluid) : TObject() +{ + // standard constructor + // + fVolPath=volpath; + fVolUID=voluid; +} + +AliAlignObj::AliAlignObj(const char* volpath, ELayerID detId, Int_t volId) : TObject() +{ + // standard constructor + // + fVolPath=volpath; + SetVolUID(detId,volId); +} + //_____________________________________________________________________________ AliAlignObj::AliAlignObj(const AliAlignObj& theAlignObj) : TObject(theAlignObj) diff --git a/STEER/AliAlignObj.h b/STEER/AliAlignObj.h index 3746ae05ff1..6810d5336c7 100644 --- a/STEER/AliAlignObj.h +++ b/STEER/AliAlignObj.h @@ -18,11 +18,6 @@ class AliAlignObj : public TObject { public: - AliAlignObj(); - AliAlignObj(const AliAlignObj& theAlignObj); - AliAlignObj& operator= (const AliAlignObj& theAlignObj); - AliAlignObj& operator*=(const AliAlignObj& theAlignObj); - virtual ~AliAlignObj(); enum ELayerID{kInvalidLayer=0, kFirstLayer=1, kSPD1=1, kSPD2=2, @@ -35,6 +30,13 @@ class AliAlignObj : public TObject { kRICH=18, kMUON=19, kLastLayer=20}; + AliAlignObj(); + AliAlignObj(const char* volpath, UShort_t voluid); + AliAlignObj(const char* volpath, ELayerID detId, Int_t modId); + AliAlignObj(const AliAlignObj& theAlignObj); + AliAlignObj& operator= (const AliAlignObj& theAlignObj); + AliAlignObj& operator*=(const AliAlignObj& theAlignObj); + virtual ~AliAlignObj(); //Setters virtual void SetTranslation(Double_t x, Double_t y, Double_t z) = 0; @@ -59,6 +61,7 @@ class AliAlignObj : public TObject { virtual void GetPars(Double_t transl[], Double_t rot[]) const=0; virtual void GetMatrix(TGeoHMatrix& m) const=0; + Bool_t IsSortable() const {return kTRUE;} Int_t GetLevel() const; virtual Int_t Compare(const TObject* obj) const; diff --git a/STEER/AliAlignObjAngles.cxx b/STEER/AliAlignObjAngles.cxx index 46f2d9fb852..3741f65868f 100644 --- a/STEER/AliAlignObjAngles.cxx +++ b/STEER/AliAlignObjAngles.cxx @@ -35,18 +35,16 @@ AliAlignObjAngles::AliAlignObjAngles() : AliAlignObj() } //_____________________________________________________________________________ -AliAlignObjAngles::AliAlignObjAngles(const char* volpath, UShort_t voluid, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi) : AliAlignObj() +AliAlignObjAngles::AliAlignObjAngles(const char* volpath, UShort_t volUID, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi) : AliAlignObj(volpath,volUID) { // standard constructor with 3 translation + 3 rotation parameters // - fVolPath=volpath; - fVolUID=voluid; fTranslation[0]=x; fTranslation[1]=y; fTranslation[2]=z; fRotation[0]=psi; fRotation[1]=theta; fRotation[2]=phi; } //_____________________________________________________________________________ -AliAlignObjAngles::AliAlignObjAngles(const char* volpath, ELayerID detId, Int_t volId, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi, Bool_t global) throw (const Char_t *) : AliAlignObj() +AliAlignObjAngles::AliAlignObjAngles(const char* volpath, ELayerID layerId, Int_t volId, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi, Bool_t global) throw (const Char_t *) : AliAlignObj(volpath,layerId,volId) { // standard constructor with 3 translation + 3 rotation parameters // If the user explicitly sets the global variable to kFALSE then the @@ -54,8 +52,6 @@ AliAlignObjAngles::AliAlignObjAngles(const char* volpath, ELayerID detId, Int_t // This requires to have a gGeoMenager active instance, otherwise the // constructor will fail (no object created) // - fVolPath=volpath; - SetVolUID(detId,volId); if(global){ fTranslation[0]=x; fTranslation[1]=y; fTranslation[2]=z; fRotation[0]=psi; fRotation[1]=theta; fRotation[2]=phi; @@ -75,6 +71,15 @@ AliAlignObjAngles::AliAlignObjAngles(const char* volpath, UShort_t voluid, TGeoM SetRotation(m); } +//_____________________________________________________________________________ +AliAlignObjAngles::AliAlignObjAngles(const char* volpath, ELayerID layerId, Int_t volId, TGeoMatrix& m) : AliAlignObj(volpath,layerId,volId) +{ + // standard constructor with TGeoMatrix + // + SetTranslation(m); + SetRotation(m); +} + //_____________________________________________________________________________ AliAlignObjAngles::AliAlignObjAngles(const AliAlignObj& theAlignObj) : AliAlignObj(theAlignObj) diff --git a/STEER/AliAlignObjAngles.h b/STEER/AliAlignObjAngles.h index 48824ac5230..b07ec4a30b2 100644 --- a/STEER/AliAlignObjAngles.h +++ b/STEER/AliAlignObjAngles.h @@ -22,6 +22,7 @@ class AliAlignObjAngles : public AliAlignObj{ AliAlignObjAngles(const char* volpath, UShort_t voluid, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi); AliAlignObjAngles(const char* volpath, ELayerID detId, Int_t volId, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi, Bool_t global=1) throw (const Char_t *); AliAlignObjAngles(const char* volpath, UShort_t voluid, TGeoMatrix& m); + AliAlignObjAngles(const char* volpath, ELayerID layerId, Int_t volId, TGeoMatrix& m); AliAlignObjAngles(const AliAlignObj& theAlignObj); AliAlignObjAngles& operator= (const AliAlignObj& theAlignObj); virtual ~AliAlignObjAngles(); diff --git a/STEER/AliAlignObjMatrix.cxx b/STEER/AliAlignObjMatrix.cxx index 69386253ab3..73608957446 100644 --- a/STEER/AliAlignObjMatrix.cxx +++ b/STEER/AliAlignObjMatrix.cxx @@ -33,18 +33,16 @@ AliAlignObjMatrix::AliAlignObjMatrix() : AliAlignObj() } //_____________________________________________________________________________ -AliAlignObjMatrix::AliAlignObjMatrix(const char* volpath, UShort_t voluid, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi) : AliAlignObj() +AliAlignObjMatrix::AliAlignObjMatrix(const char* volpath, UShort_t voluid, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi) : AliAlignObj(volpath, voluid) { // standard constructor with 3 translation + 3 rotation parameters // - fVolPath=volpath; - fVolUID=voluid; SetTranslation(x, y, z); SetRotation(psi, theta, phi); } //_____________________________________________________________________________ -AliAlignObjMatrix::AliAlignObjMatrix(const char* volpath, ELayerID detId, Int_t volId, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi, Bool_t global) throw (const Char_t *) : AliAlignObj() +AliAlignObjMatrix::AliAlignObjMatrix(const char* volpath, ELayerID layerId, Int_t volId, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi, Bool_t global) throw (const Char_t *) : AliAlignObj(volpath,layerId,volId) { // standard constructor with 3 translation + 3 rotation parameters // If the user explicitly sets the global variable to kFALSE then the @@ -52,8 +50,6 @@ AliAlignObjMatrix::AliAlignObjMatrix(const char* volpath, ELayerID detId, Int_t // This requires to have a gGeoMenager active instance, otherwise the // constructor will fail (no object created) // - fVolPath=volpath; - SetVolUID(detId,volId); if(global){ SetTranslation(x, y, z); SetRotation(psi, theta, phi); @@ -64,12 +60,19 @@ AliAlignObjMatrix::AliAlignObjMatrix(const char* volpath, ELayerID detId, Int_t //_____________________________________________________________________________ -AliAlignObjMatrix::AliAlignObjMatrix(const char* volpath, UShort_t voluid, TGeoMatrix& m) : AliAlignObj() +AliAlignObjMatrix::AliAlignObjMatrix(const char* volpath, UShort_t volUID, TGeoMatrix& m) : AliAlignObj(volpath,volUID) +{ + // standard constructor with TGeoMatrix + // + SetTranslation(m); + SetRotation(m); +} + +//_____________________________________________________________________________ +AliAlignObjMatrix::AliAlignObjMatrix(const char* volpath, ELayerID layerId, Int_t volId, TGeoMatrix& m) : AliAlignObj(volpath,layerId,volId) { // standard constructor with TGeoMatrix // - fVolPath=volpath; - fVolUID=voluid; SetTranslation(m); SetRotation(m); } diff --git a/STEER/AliAlignObjMatrix.h b/STEER/AliAlignObjMatrix.h index c33f2738a4f..70c50984ee9 100644 --- a/STEER/AliAlignObjMatrix.h +++ b/STEER/AliAlignObjMatrix.h @@ -18,6 +18,7 @@ class AliAlignObjMatrix : public AliAlignObj { AliAlignObjMatrix(const char* volpath, UShort_t voluid, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi); AliAlignObjMatrix(const char* volpath, ELayerID detId, Int_t volId, Double_t x, Double_t y, Double_t z, Double_t psi, Double_t theta, Double_t phi, Bool_t global=1) throw (const Char_t *); AliAlignObjMatrix(const char* volpath, UShort_t voluid, TGeoMatrix& m); + AliAlignObjMatrix(const char* volpath, ELayerID layerId, Int_t volId, TGeoMatrix& m); AliAlignObjMatrix(const AliAlignObj& theAlignObj); AliAlignObjMatrix& operator= (const AliAlignObj& theAlignObj); virtual ~AliAlignObjMatrix(); -- 2.43.0