fEquipIdMap(""),
fFirstEvent(0),
fLastEvent(-1),
- fNumberOfEventsPerFile(1),
+ fNumberOfEventsPerFile((UInt_t)-1),
fOptions(),
fLoadAlignFromCDB(kTRUE),
fLoadAlignData("ALL"),
for (Int_t iDet = 0; iDet < fgkNDetectors; iDet++) {
if(!IsSelected(fgkDetectorName[iDet], detStr)) continue;
if(!strcmp(fgkDetectorName[iDet],"HLT")) continue;
- if(AliGeomManager::IsModuleInGeom(fgkDetectorName[iDet]))
+
+ if(AliGeomManager::GetNalignable(fgkDetectorName[iDet]) != 0)
{
loadAlObjsListOfDets += fgkDetectorName[iDet];
loadAlObjsListOfDets += " ";
}
} // end loop over detectors
- if(AliGeomManager::IsModuleInGeom("FRAME"))
+
+ if(AliGeomManager::GetNalignable("GRP") != 0)
loadAlObjsListOfDets.Prepend("GRP "); //add alignment objects for non-sensitive modules
AliGeomManager::ApplyAlignObjsFromCDB(loadAlObjsListOfDets.Data());
AliCDBManager::Instance()->UnloadFromCache("*/Align/*");
// Process the list of active detectors
if (activeDetectors) {
UInt_t detMask = activeDetectors;
+ fRunLocalReconstruction = MatchDetectorList(fRunLocalReconstruction,detMask);
+ fRunTracking = MatchDetectorList(fRunTracking,detMask);
+ fFillESD = MatchDetectorList(fFillESD,detMask);
+ fQADetectors = MatchDetectorList(fQADetectors,detMask);
fLoadCDB.Form("%s %s %s %s",
fRunLocalReconstruction.Data(),
fRunTracking.Data(),
fFillESD.Data(),
fQADetectors.Data());
- fRunLocalReconstruction = MatchDetectorList(fRunLocalReconstruction,detMask);
- fRunTracking = MatchDetectorList(fRunTracking,detMask);
- fFillESD = MatchDetectorList(fFillESD,detMask);
- fQADetectors = MatchDetectorList(fQADetectors,detMask);
fLoadCDB = MatchDetectorList(fLoadCDB,detMask);
if (!((detMask >> AliDAQ::DetectorID("ITSSPD")) & 0x1)) {
// switch off the vertexer
AliInfo("SPD is not in the list of active detectors. Vertexer switched off.");
fRunVertexFinder = kFALSE;
}
+ if (!((detMask >> AliDAQ::DetectorID("TRG")) & 0x1)) {
+ // switch off the reading of CTP raw-data payload
+ if (fFillTriggerESD) {
+ AliInfo("CTP is not in the list of active detectors. CTP data reading switched off.");
+ fFillTriggerESD = kFALSE;
+ }
+ }
}
AliInfo("===================================================================================");
// Fill Event-info object
GetEventInfo();
fRecoParam.SetEventSpecie(fRunInfo,fEventInfo);
+ AliInfo(Form("Current event specie: %s",fRecoParam.PrintEventSpecie()));
// Set the reco-params
{
ok = kFALSE;
if (tpcTrack)
ok = AliTracker::
- PropagateTrackTo(tpcTrack,kRadius,track->GetMass(),kMaxStep,kTRUE);
+ PropagateTrackTo(tpcTrack,kRadius,track->GetMass(),kMaxStep,kFALSE);
if (ok) {
Int_t n=trkArray.GetEntriesFast();
if (track->IsOn(AliESDtrack::kITSrefit)) continue;
AliTracker::
- PropagateTrackTo(track,kRadius,track->GetMass(),kMaxStep,kTRUE);
+ PropagateTrackTo(track,kRadius,track->GetMass(),kMaxStep,kFALSE);
track->RelateToVertex(fesd->GetPrimaryVertexSPD(), kBz, kVeryBig);
}
AliESDVertex *pvtx=ftVertexer->FindPrimaryVertex(fesd);
if (pvtx) {
if (pvtx->GetStatus()) {
- fesd->SetPrimaryVertex(pvtx);
+ fesd->SetPrimaryVertexTracks(pvtx);
for (Int_t i=0; i<ntracks; i++) {
AliESDtrack *t = fesd->GetTrack(i);
t->RelateToVertex(pvtx, kBz, kVeryBig);
if (fReconstructor[11] && fLoader[11]) {
fLoader[11]->LoadRecPoints("READ");
TTree *treeR = fLoader[11]->TreeR();
- GetReconstructor(11)->FillESD((TTree *)NULL,treeR,esd);
+ if (treeR) {
+ GetReconstructor(11)->FillESD((TTree *)NULL,treeR,esd);
+ }
}
// pass 1: TPC + ITS inwards
AliESDtrack *track = esd->GetTrack(itrack);
Int_t nsp = 0;
Int_t idx[200];
- for (Int_t iDet = 3; iDet >= 0; iDet--) {// TOF, TRD, TPC, ITS clusters
+ for (Int_t iDet = 5; iDet >= 0; iDet--) {// TOF, TRD, TPC, ITS clusters
nsp += track->GetNcls(iDet);
if (iDet==0) { // ITS "extra" clusters
AliTrackPointArray *sp = new AliTrackPointArray(nsp);
track->SetTrackPointArray(sp);
Int_t isptrack = 0;
- for (Int_t iDet = 3; iDet >= 0; iDet--) {
+ for (Int_t iDet = 5; iDet >= 0; iDet--) {
AliTracker *tracker = fTracker[iDet];
if (!tracker) continue;
Int_t nspdet = track->GetClusters(iDet,idx);
for( Int_t iclass=0; iclass < nclasses; iclass++ ) {
AliTriggerClass* trclass = (AliTriggerClass*)classesArray.At(iclass);
if (trclass) {
- Int_t trindex = (Int_t)TMath::Log2(trclass->GetMask());
+ Int_t trindex = TMath::Nint(TMath::Log2(trclass->GetMask()));
fesd->SetTriggerClass(trclass->GetName(),trindex);
+ if (fRawReader) fRawReader->LoadTriggerClass(trclass->GetName(),trindex);
if (trmask & (1 << trindex)) {
trclasses += " ";
trclasses += trclass->GetName();
if ((detectorMask >> iDet) & 0x1) {
TString det = AliDAQ::OfflineModuleName(iDet);
if ((detList.CompareTo("ALL") == 0) ||
- detList.BeginsWith("ALL ") ||
- detList.EndsWith(" ALL") ||
- detList.Contains(" ALL ") ||
+ ((detList.BeginsWith("ALL ") ||
+ detList.EndsWith(" ALL") ||
+ detList.Contains(" ALL ")) &&
+ !(detList.BeginsWith("-"+det+" ") ||
+ detList.EndsWith(" -"+det) ||
+ detList.Contains(" -"+det+" "))) ||
(detList.CompareTo(det) == 0) ||
- detList.BeginsWith(det) ||
- detList.EndsWith(det) ||
+ detList.BeginsWith(det+" ") ||
+ detList.EndsWith(" "+det) ||
detList.Contains( " "+det+" " )) {
if (!resultList.EndsWith(det + " ")) {
resultList += det;
if ((detectorMask >> AliDAQ::kHLTId) & 0x1) {
TString hltDet = AliDAQ::OfflineModuleName(AliDAQ::kNDetectors-1);
if ((detList.CompareTo("ALL") == 0) ||
- detList.BeginsWith("ALL ") ||
- detList.EndsWith(" ALL") ||
- detList.Contains(" ALL ") ||
+ ((detList.BeginsWith("ALL ") ||
+ detList.EndsWith(" ALL") ||
+ detList.Contains(" ALL ")) &&
+ !(detList.BeginsWith("-"+hltDet+" ") ||
+ detList.EndsWith(" -"+hltDet) ||
+ detList.Contains(" -"+hltDet+" "))) ||
(detList.CompareTo(hltDet) == 0) ||
- detList.BeginsWith(hltDet) ||
- detList.EndsWith(hltDet) ||
+ detList.BeginsWith(hltDet+" ") ||
+ detList.EndsWith(" "+hltDet) ||
detList.Contains( " "+hltDet+" " )) {
resultList += hltDet;
}