#include <iostream>
#include <fstream>
-//#include <string>
#include "TMath.h"
#include "TFile.h"
#include "AliCDBStorage.h"
#include "AliCDBMetaData.h"
#include "AliCDBEntry.h"
-#include "AliCDBId.h"
#include "AliSurveyObj.h"
#include "AliSurveyPoint.h"
void trdAlignmentFcn(Int_t &npar, Double_t *gin, Double_t &f, Double_t *x, Int_t iflag);
+using std::ostream;
+using std::fstream;
ClassImp(AliTRDalignment)
//_____________________________________________________________________________
fSurveyZ0[j][k][l] = z[k];
}
+ for (int i=0; i<1000; i++) {
+ fIbuffer[i] = 0;
+ fDbuffer[i] = 0.0;
+ }
+
}
//_____________________________________________________________________________
fSurveyY0[j][k][l] = source.fSurveyY0[j][k][l];
fSurveyZ0[j][k][l] = source.fSurveyZ0[j][k][l];
}
+ for (int i=0; i<1000; i++) {
+ fIbuffer[i] = 0;
+ fDbuffer[i] = 0.0;
+ }
}
}
//_____________________________________________________________________________
-void AliTRDalignment::PrintSm(int i, FILE *fp) const
+void AliTRDalignment::PrintSm(int i, FILE * const fp) const
{
//
// print the supermodule data
}
//_____________________________________________________________________________
-void AliTRDalignment::PrintCh(int i, FILE *fp) const
+void AliTRDalignment::PrintCh(int i, FILE * const fp) const
{
//
// print the chamber data
}
//_____________________________________________________________________________
-void AliTRDalignment::ReadAscii(char *filename)
+void AliTRDalignment::ReadAscii(const char * const filename)
{
//
// read the alignment data from ascii file
}
//_____________________________________________________________________________
-void AliTRDalignment::ReadRoot(char *filename)
+void AliTRDalignment::ReadRoot(const char * const filename)
{
//
// read the alignment data from root file
}
//_____________________________________________________________________________
-void AliTRDalignment::ReadDB(char *filename)
+void AliTRDalignment::ReadDB(const char * const filename)
{
//
// read the alignment data from database file
}
//_____________________________________________________________________________
-void AliTRDalignment::ReadDB(char *db, char *path, int run
- , int version, int subversion)
+void AliTRDalignment::ReadDB(const char * const db, const char * const path,
+ int run, int version, int subversion)
{
//
// read the alignment data from database
}
//_____________________________________________________________________________
-void AliTRDalignment::ReadSurveyReport(char *filename)
+void AliTRDalignment::ReadSurveyReport(const char * const filename)
{
//
// Read survey report and store the numbers in fSurveyX, fSurveyY, fSurveyZ,
}
//_____________________________________________________________________________
-void AliTRDalignment::ReadSurveyReport(AliSurveyObj *so)
+void AliTRDalignment::ReadSurveyReport(const AliSurveyObj * const so)
{
//
// Read survey report and store the numbers in fSurveyX, fSurveyY, fSurveyZ,
}
//_____________________________________________________________________________
-double AliTRDalignment::SurveyChi2(int i, double *a) {
+double AliTRDalignment::SurveyChi2(int i, const double * const a) {
//
// Compare the survey results to the ideal positions of the survey marks
if (!IsGeoLoaded()) return 0;
printf("Survey of supermodule %d\n",i);
AliAlignObjParams al(GetSmName(i),0,a[0],a[1],a[2],a[3],a[4],a[5],0);
+
TGeoPNEntry *pne = gGeoManager->GetAlignableEntry(GetSmName(i));
if (!pne) AliError(Form("no such physical node entry: %s",GetSmName(i)));
TGeoPhysicalNode *node = pne->GetPhysicalNode();
- if (!node) AliError(Form("physical node entry %s has no physical node",GetSmName(i)));
+ if (!node) {
+ AliWarning(Form("physical node entry %s has no physical node; making a new one",GetSmName(i)));
+ node = gGeoManager->MakeAlignablePN(pne);
+ }
// al.ApplyToGeometry();
// node = pne->GetPhysicalNode(); // changed in the meantime
}
//_____________________________________________________________________________
-void AliTRDalignment::SurveyToAlignment(int i,char *flag) {
+void AliTRDalignment::SurveyToAlignment(int i, const char * const flag) {
//
// Find the supermodule alignment parameters needed to make the survey
}
//_____________________________________________________________________________
-void AliTRDalignment::ReadAny(char *filename)
+void AliTRDalignment::ReadAny(const char * const filename)
{
//
// read the alignment data from any kind of file
}
//_____________________________________________________________________________
-void AliTRDalignment::WriteAscii(char *filename) const
+void AliTRDalignment::WriteAscii(const char * const filename) const
{
//
// store the alignment data on ascii file
}
//_____________________________________________________________________________
-void AliTRDalignment::WriteRoot(char *filename)
+void AliTRDalignment::WriteRoot(const char * const filename)
{
//
// store the alignment data on root file
}
//_____________________________________________________________________________
-void AliTRDalignment::WriteDB(char *filename, int run0, int run1)
+void AliTRDalignment::WriteDB(const char * const filename, int run0, int run1, int ver, int subver)
{
//
// dumping on a DB-like file
AliCDBMetaData *md = new AliCDBMetaData();
md->SetResponsible("Dariusz Miskowiec");
md->SetComment(fComment.GetString().Data());
- AliCDBEntry *e = new AliCDBEntry(ar, id, md);
+ AliCDBEntry *e = new AliCDBEntry(ar, id, md);
+ e->SetVersion(ver);
+ e->SetSubVersion(subver);
TFile fi(filename,"RECREATE");
if (fi.IsOpen()) {
e->Write();
}
//_____________________________________________________________________________
-void AliTRDalignment::WriteDB(char *db, char *path, int run0, int run1)
+void AliTRDalignment::WriteDB(char * const db, const char * const path, int run0, int run1)
{
//
// store the alignment data in database
}
//_____________________________________________________________________________
-void AliTRDalignment::ArToNumbers(TClonesArray *ar)
+void AliTRDalignment::ArToNumbers(TClonesArray * const ar)
{
//
// for each of the alignment objects in array ar extract the six local
}
//_____________________________________________________________________________
-void AliTRDalignment::NumbersToAr(TClonesArray *ar)
+void AliTRDalignment::NumbersToAr(TClonesArray * const ar)
{
//
// build array of AliAlignObj objects based on fSm and fCh data