fIsIndexBuilt(kFALSE),
fMisalignObjs(0),
fTrackFitter(0),
- fMinimizer(0)
+ fMinimizer(0),
+ fDoUpdate(kTRUE)
{
// Default constructor
InitIndex();
fIsIndexBuilt(kFALSE),
fMisalignObjs(0),
fTrackFitter(0),
- fMinimizer(0)
+ fMinimizer(0),
+ fDoUpdate(kTRUE)
{
// Constructor in the case
// the user provides an already
fIsIndexBuilt(kFALSE),
fMisalignObjs(0),
fTrackFitter(0),
- fMinimizer(0)
+ fMinimizer(0),
+ fDoUpdate(kTRUE)
{
// Constructor in the case
// the user provides a single ESD file
TTree *pointsTree = new TTree("spTree", "Tree with track space point arrays");
const AliTrackPointArray *array = 0;
pointsTree->Branch("SP","AliTrackPointArray", &array);
-
Int_t ievent = 0;
while (fESDChain->GetEntry(ievent++)) {
if (!esd) break;
for (Int_t ipoint = 0; ipoint < array->GetNPoints(); ipoint++) {
UShort_t volId = array->GetVolumeID()[ipoint];
// check if the volId is valid
- if (!AliAlignObj::GetVolPath(volId)) continue;
+ if (!AliAlignObj::GetVolPath(volId)) {
+ AliError(Form("The volume id %d has no default volume path !",
+ volId));
+ continue;
+ }
Int_t modId;
Int_t layerId = AliAlignObj::VolUIDToLayer(volId,modId)
- AliAlignObj::kFirstLayer;
minimizer->Minimize();
// Update the alignment object(s)
- for (Int_t iVolId = 0; iVolId < nVolIds; iVolId++) {
+ if (fDoUpdate) for (Int_t iVolId = 0; iVolId < nVolIds; iVolId++) {
UShort_t volid = (*volids)[iVolId];
Int_t iModule;
AliAlignObj::ELayerID iLayer = AliAlignObj::VolUIDToLayer(volid,iModule);
- AliAlignObj *alignObj = fAlignObjs[iLayer-AliAlignObj::kFirstLayer][iModule];
+ AliAlignObj *alignObj = fAlignObjs[iLayer-AliAlignObj::kFirstLayer][iModule];
*alignObj *= *minimizer->GetAlignObj();
alignObj->Print("");
}
Int_t modnum;
AliAlignObj::ELayerID layer = AliAlignObj::VolUIDToLayer(p.GetVolumeID(),modnum);
// check if the layer id is valid
- if (layer == AliAlignObj::kInvalidLayer) continue;
+ if ((layer < AliAlignObj::kFirstLayer) ||
+ (layer >= AliAlignObj::kLastLayer)) {
+ AliError(Form("Layer index is invalid: %d (%d -> %d) !",
+ layer,AliAlignObj::kFirstLayer,AliAlignObj::kLastLayer-1));
+ continue;
+ }
+ if ((modnum >= AliAlignObj::LayerSize(layer)) ||
+ (modnum < 0)) {
+ AliError(Form("Module number inside layer %d is invalid: %d (0 -> %d)",
+ layer,modnum,AliAlignObj::LayerSize(layer)));
+ continue;
+ }
// Misalignment is introduced here
// Switch it off in case of real