// TGeoManager::Import("geometry.root"); a.WriteRoot("kuku.root"); //
// TGeoManager::Import("geometry.root"); a.WriteDB("kukudb.root",0,0); //
// TGeoManager::Import("geometry.root"); //
-// a.WriteDB("local://$ALICE_ROOT", "TRD/Align/Data", 0,0); //
+// a.WriteDB("local://$ALICE_ROOT/OCDB", "TRD/Align/Data", 0,0); //
// TGeoManager::Import("geometry.root"); a.WriteGeo("kukugeometry.root"); //
// //
// b.ReadAscii("kuku.dat"); //
#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 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)
{
//
// dumping on a DB-like file
}
//_____________________________________________________________________________
-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