///////////////////////////////////////////////////////////////////////////////
#include <Riostream.h>
-#include <TCint.h>
#include <TFile.h>
#include <TKey.h>
#include <TObjArray.h>
#include "AliTriggerInteraction.h"
#include "AliTriggerPFProtection.h"
+using std::endl;
+using std::cout;
+using std::ifstream;
ClassImp(AliTriggerConfiguration)
const TString AliTriggerConfiguration::fgkConfigurationFileName("/data/triggerConfigurations.root");
AliError("Invalid logical function ! Impossible to add it !");
}
else
- AliError("CTP can handle up to 2 logical functions ! Impossible to add the required interaction !");
+ AliError("CTP can handle up to 4 logical functions ! Impossible to add the required interaction !");
return kFALSE;
}
{
// Add a trigger bunch-crossing mask object to
// the list of the trigger bunch-crossing masks
- if (fMasks.GetEntries() < (kNMaxMasks+1)) { //+1 to account for NONE
+ if (fMasks.GetEntries() < (kNMaxMasks)) {
fMasks.AddLast( mask );
return kTRUE;
}
else
- AliError("CTP can handle up to 4 bunch-crossing masks ! Impossible to add the required mask !");
+ AliError("CTP can handle up to 12 bunch-crossing masks ! Impossible to add the required mask !");
return kFALSE;
}
activeDet.Append( " " );
activeDet.Append( ((TObjString*)det->At(k))->String() );
}
+ delete det;
}
return activeDet;
}
// Read inputs
if (ntokens != 5) {
AliError(Form("Invalid trigger input syntax (%s)!",strLine.Data()));
+ delete tokens;
return kFALSE;
}
AddInput(((TObjString*)tokens->At(0))->String(),
// Read interaction
if (ntokens != 2) {
AliError(Form("Invalid trigger interaction syntax (%s)!",strLine.Data()));
+ delete tokens;
return kFALSE;
}
AddInteraction(((TObjString*)tokens->At(0))->String(),
}
else {
AliError(Form("Invalid trigger descriptor syntax (%s)!",strLine.Data()));
+ delete tokens;
return kFALSE;
}
}
if (((TObjString*)tokens->At(0))->String().BeginsWith("l0f")) {
// function
- AddFunction(((TObjString*)tokens->At(0))->String(),
- strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""));
+ if(!AddFunction(((TObjString*)tokens->At(0))->String(),
+ strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""))) {
+ delete tokens;
+ return kFALSE;
+ }
}
else {
- AddDescriptor(((TObjString*)tokens->At(0))->String(),
- strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""));
+ if(!AddDescriptor(((TObjString*)tokens->At(0))->String(),
+ strLine.ReplaceAll(((TObjString*)tokens->At(0))->String(),""))) {
+ delete tokens;
+ return kFALSE;
+ }
}
break;
case 4:
{
if (ntokens < 2) {
AliError(Form("Invalid trigger cluster syntax (%s)!",strLine.Data()));
- return kFALSE;
+ delete tokens;
+ return kFALSE;
}
if (((TObjString*)tokens->At(1))->String().Atoi() <= 0) {
AliError(Form("Invalid trigger cluster syntax (%s)!",strLine.Data()));
case 6:
if (ntokens > 2) {
AliError(Form("Invalid trigger bcmasks syntax (%s)!",strLine.Data()));
+ delete tokens;
return kFALSE;
}
if (((TObjString*)tokens->At(0))->String().CompareTo("NONE") == 0)
{
- AddMask(new AliTriggerBCMask(((TObjString*)tokens->At(0))->String()));
+ if(!AddMask(new AliTriggerBCMask(((TObjString*)tokens->At(0))->String()))) {
+ delete tokens;
+ return kFALSE;
+ }
}
else {
- AddMask(((TObjString*)tokens->At(0))->String(),
- ((TObjString*)tokens->At(1))->String());
+ if(!AddMask(((TObjString*)tokens->At(0))->String(),((TObjString*)tokens->At(1))->String())) {
+ delete tokens;
+ return kFALSE;
+ }
}
break;
case 7:
{
- if ((ntokens !=8) && (ntokens != 10)) {
+ if ((ntokens !=8) && (ntokens != 10) && (ntokens != 11)) {
AliError(Form("Invalid trigger class syntax (%s)!",strLine.Data()));
+ delete tokens;
return kFALSE;
}
AliTriggerClass *trclass=0;
((TObjString*)tokens->At(2))->String(),((TObjString*)tokens->At(3))->String(),
((TObjString*)tokens->At(4))->String(),((TObjString*)tokens->At(5))->String(),
((TObjString*)tokens->At(6))->String().Atoi(),(Bool_t)(((TObjString*)tokens->At(7))->String().Atoi()));
- else trclass = new AliTriggerClass(this,
+ else{ trclass = new AliTriggerClass(this,
((TObjString*)tokens->At(0))->String(),((TObjString*)tokens->At(1))->String().Atoi(),
((TObjString*)tokens->At(2))->String(),((TObjString*)tokens->At(3))->String(),
- ((TObjString*)tokens->At(4))->String(),((TObjString*)tokens->At(5))->String(),
+ ((TObjString*)tokens->At(4))->String(),
((TObjString*)tokens->At(6))->String().Atoi(),(Bool_t)(((TObjString*)tokens->At(7))->String().Atoi()),
(((TObjString*)tokens->At(8))->String().Atoi()),(((TObjString*)tokens->At(9))->String().Atoi()));
- AddClass(trclass);
+ if(!trclass->SetMasks(this,((TObjString*)tokens->At(5))->String())) {
+ delete tokens;
+ return kFALSE;
+ }
+ }
+ AddClass(trclass);
}
default:
break;