--- /dev/null
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * *
+ * Author: The ALICE Off-line Project. *
+ * Contributors are mentioned in the code where appropriate. *
+ * *
+ * Permission to use, copy, modify and distribute this software and its *
+ * documentation strictly for non-commercial purposes is hereby granted *
+ * without fee, provided that the above copyright notice appears in all *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
+ * about the suitability of this software for any purpose. It is *
+ * provided "as is" without express or implied warranty. *
+ **************************************************************************/
+
+/* $Id$ */
+
+////////////////////////////////////////////////
+// class for PHOS alignment parameters //
+////////////////////////////////////////////////
+
+#include "AliPHOSAlignData.h"
+
+ClassImp(AliPHOSAlignData)
+
+//________________________________________________________________
+AliPHOSAlignData::AliPHOSAlignData()
+{
+ // Default constructor
+ Reset();
+}
+
+//________________________________________________________________
+AliPHOSAlignData::AliPHOSAlignData(const char* name)
+{
+ // Constructor
+ TString namst = "Align_";
+ namst += name;
+ SetName(namst.Data());
+ SetTitle(namst.Data());
+ Reset();
+}
+
+//________________________________________________________________
+AliPHOSAlignData::AliPHOSAlignData(const AliPHOSAlignData& alignda) :
+ TNamed(alignda)
+{
+ // copy constructor
+ SetName(alignda.GetName());
+ SetTitle(alignda.GetName());
+ Reset();
+ fNModules = alignda.GetNModules();
+ for(Int_t module=0; module<fNModules; module++) {
+ for (Int_t axis=0; axis<3; axis++) {
+ fModuleCenter[module][axis] =
+ alignda.GetModuleCenter(module,axis);
+ for (Int_t angle=0; angle<2; angle++) {
+ fModuleAngle[module][axis][angle] =
+ alignda.GetModuleAngle(module,axis,angle);
+ }
+ }
+ }
+}
+
+//________________________________________________________________
+AliPHOSAlignData &AliPHOSAlignData::operator =(const AliPHOSAlignData& alignda)
+{
+ // assignment operator
+ SetName(alignda.GetName());
+ SetTitle(alignda.GetName());
+ Reset();
+ fNModules = alignda.GetNModules();
+ for(Int_t module=0; module<fNModules; module++) {
+ for (Int_t axis=0; axis<3; axis++) {
+ fModuleCenter[module][axis] =
+ alignda.GetModuleCenter(module,axis);
+ for (Int_t angle=0; angle<2; angle++) {
+ fModuleAngle[module][axis][angle] =
+ alignda.GetModuleAngle(module,axis,angle);
+ }
+ }
+ }
+ return *this;
+}
+
+//________________________________________________________________
+AliPHOSAlignData::~AliPHOSAlignData()
+{
+ // Destructor
+}
+
+//________________________________________________________________
+void AliPHOSAlignData::Reset()
+{
+ // Set all to default values
+ fNModules = 5;
+ memset(fModuleCenter,0,5*3*sizeof(Float_t));
+ memset(fModuleAngle ,0,5*3*2*sizeof(Float_t));
+}
+
+//________________________________________________________________
+void AliPHOSAlignData::Print(Option_t */*option =""*/) const
+{
+ // Print alignment data
+
+ printf("PHOS alignment object\n");
+ printf(" Number of modules: %d\n",fNModules);
+}
+
+//________________________________________________________________
--- /dev/null
+#ifndef ALIPHOSALIGNDATA_H
+#define ALIPHOSALIGNDATA_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+/* $Id$ */
+
+////////////////////////////////////////////////
+// class for PHOS alignment parameters //
+////////////////////////////////////////////////
+
+#include "TNamed.h"
+
+class AliPHOSAlignData: public TNamed {
+
+ public:
+ AliPHOSAlignData();
+ AliPHOSAlignData(const char* name);
+ AliPHOSAlignData(const AliPHOSAlignData &alignda);
+ AliPHOSAlignData& operator= (const AliPHOSAlignData &alignda);
+ virtual ~AliPHOSAlignData();
+ void Reset();
+ virtual void Print(Option_t *option = "") const;
+
+ // Getters
+ Int_t GetNModules() const {return fNModules;}
+ Float_t GetModuleCenter(Int_t module, Int_t axis) const {
+ return fModuleCenter[module][axis];}
+ Float_t GetModuleAngle(Int_t module, Int_t axis, Int_t angle) const {
+ return fModuleAngle[module][axis][angle];}
+
+ // Setters
+ void SetNModules(Int_t nModules) {fNModules = nModules;}
+ void SetModuleCenter(Int_t module, Int_t axis, Float_t coord) {
+ fModuleCenter[module][axis] = coord;}
+ void SetModuleAngle(Int_t module, Int_t axis, Int_t angle, Float_t value) {
+ fModuleAngle[module][axis][angle] = value;}
+
+ protected:
+ Int_t fNModules; // number of PHOS modules (max=5)
+ Float_t fModuleCenter[5][3]; // xyz-position of the module center
+ Float_t fModuleAngle[5][3][2]; // polar and azymuth angles for 3 axes of modules
+
+ ClassDef(AliPHOSAlignData,1) // PHOS Alignment data
+};
+
+#endif
AliPHOSLoader * AliPHOSGetter::fgPhosLoader = 0;
Int_t AliPHOSGetter::fgDebug = 0;
AliPHOSCalibData* AliPHOSGetter::fCalibData = 0;
+AliPHOSAlignData* AliPHOSGetter::fAlignData = 0;
// TFile * AliPHOSGetter::fgFile = 0 ;
AliPHOSCalibData* AliPHOSGetter::CalibData()
{
+ // Check if the instance of AliPHOSCalibData exists, and return it
- if( !(AliCDBManager::Instance()->IsDefaultStorageSet()) ) {
+ if( !(AliCDBManager::Instance()->IsDefaultStorageSet()) )
fCalibData=0x0;
- Warning("CalibData","Calibration DB is not initiated!");
- return fCalibData;
- }
-
return fCalibData;
+}
+//____________________________________________________________________________
-
+AliPHOSAlignData* AliPHOSGetter::AlignData()
+{
+ // Check if the instance of AliPHOSAlignData exists, and return it
+
+ if( !(AliCDBManager::Instance()->IsDefaultStorageSet()) )
+ fAlignData=0x0;
+ return fAlignData;
}
#include "AliPHOSDigitizer.h"
#include "AliPHOSSDigitizer.h"
#include "AliPHOSCalibData.h"
+#include "AliPHOSAlignData.h"
class AliPHOS ;
class AliPHOSGeometry ;
void SetCalibrationDB(AliPHOSCalibrationDB * cdb) {fcdb = cdb ;}
void SetCalibData(AliPHOSCalibData* calibda) { fCalibData = calibda; }
+ void SetAlignData(AliPHOSAlignData* alignda) { fAlignData = alignda; }
AliPHOSCalibData * CalibData();
+ AliPHOSAlignData * AlignData();
//=========== Primaries ============
virtual TClonesArray * Primaries(void) ;
AliPHOSCalibrationDB * fcdb ; //!
static AliPHOSCalibData * fCalibData;
+ static AliPHOSAlignData * fAlignData;
static AliPHOSLoader * fgPhosLoader ; // the loader for the NewIO
#pragma link C++ class AliPHOSDigit+;
#pragma link C++ class AliPHOSFastRecParticle+;
#pragma link C++ class AliPHOSRawStream2004+;
+#pragma link C++ class AliPHOSCalibData+;
+#pragma link C++ class AliPHOSAlignData+;
#endif
#pragma link C++ class AliPHOSCalibrator+;
#pragma link C++ class AliPHOSConTableDB+;
#pragma link C++ class AliPHOSOnlineMonitor+;
-#pragma link C++ class AliPHOSCalibData+;
#pragma link C++ class AliPHOSTrigger+;
#endif
AliPHOSRawStream.cxx AliPHOSClusterizer.cxx \
AliPHOSCalibrationDB.cxx AliPHOSDigitizer.cxx \
AliPHOSSDigitizer.cxx AliPHOSDigit.cxx \
- AliPHOSFastRecParticle.cxx AliPHOSRawStream2004.cxx
+ AliPHOSFastRecParticle.cxx AliPHOSRawStream2004.cxx \
+ AliPHOSCalibData.cxx AliPHOSAlignData.cxx
HDRS:= $(SRCS:.cxx=.h)
AliPHOSCalibrator.cxx AliPHOSCalibrManager.cxx \
AliPHOSConTableDB.cxx \
AliPHOSOnlineMonitor.cxx \
- AliPHOSCalibData.cxx AliPHOSTrigger.cxx
+ AliPHOSTrigger.cxx
HDRS:= $(SRCS:.cxx=.h)