fMask(NULL),
fPrescaler(0),
fAllRare(kFALSE),
- fStatus(kFALSE)
+ fStatus(kFALSE),
+ fTimeGroup(0),
+ fTimeWindow(0)
{
// Default constructor
}
fMask( mask ),
fPrescaler( prescaler ),
fAllRare( allrare ),
- fStatus(kFALSE)
+ fStatus(kFALSE),
+ fTimeGroup(0),
+ fTimeWindow(0)
{
// Constructor
}
fMask( NULL ),
fPrescaler( prescaler ),
fAllRare( allrare ),
- fStatus(kFALSE)
+ fStatus(kFALSE),
+ fTimeGroup(0),
+ fTimeWindow(0)
+{
+ fDescriptor = (AliTriggerDescriptor*)config->GetDescriptors().FindObject(desc);
+ fCluster = (AliTriggerCluster*)config->GetClusters().FindObject(clus);
+ pfp.ReplaceAll("{","");
+ pfp.ReplaceAll("}","");
+ fPFProtection = (AliTriggerPFProtection*)config->GetPFProtections().FindObject(pfp);
+ mask.ReplaceAll("{","");
+ mask.ReplaceAll("}","");
+ fMask = (AliTriggerBCMask*)config->GetMasks().FindObject(mask);
+}
+//_____________________________________________________________________________
+AliTriggerClass::AliTriggerClass( AliTriggerConfiguration *config,
+ TString & name, UChar_t index,
+ TString &desc, TString &clus,
+ TString &pfp, TString &mask,
+ UInt_t prescaler, Bool_t allrare,
+ UInt_t timegroup,UInt_t timewindow) :
+ TNamed( name, name ),
+ fClassMask( 1ull << ULong64_t(index-1)),
+ fIndex(index),
+ fDescriptor( NULL ),
+ fCluster( NULL ),
+ fPFProtection( NULL ),
+ fMask( NULL ),
+ fPrescaler( prescaler ),
+ fAllRare( allrare ),
+ fStatus(kFALSE),
+ fTimeGroup(timegroup),
+ fTimeWindow(timewindow)
{
fDescriptor = (AliTriggerDescriptor*)config->GetDescriptors().FindObject(desc);
fCluster = (AliTriggerCluster*)config->GetClusters().FindObject(clus);
fMask(trclass.fMask),
fPrescaler(trclass.fPrescaler),
fAllRare(trclass.fAllRare),
- fStatus(trclass.fStatus)
+ fStatus(trclass.fStatus),
+ fTimeGroup(trclass.fTimeGroup),
+ fTimeWindow(trclass.fTimeWindow)
{
// Copy constructor
}
fPrescaler = trclass.fPrescaler;
fAllRare = trclass.fAllRare;
fStatus = trclass.fStatus;
+ fTimeGroup = trclass.fTimeGroup;
+ fTimeWindow = trclass.fTimeWindow;
}
return *this;
}
cout << " BC Mask: " << fMask->GetName() << endl;
cout << " Prescaler: " << fPrescaler << endl;
cout << " AllRare: " << fAllRare << endl;
+ cout << " Time Group: " << fTimeGroup << endl;
+ cout << " Time Window: " << fTimeWindow << endl;
if (fStatus)
cout << " Class is fired " << endl;
else
// //
// This class represents the CTP class objects //
// //
-// The Class consists of Name, descriptor, mask, protection, index in the //
-// trigger mask //
+// The Class consists of Name, index in the trigger mask counted from 1, //
+// descriptor, cluster,past-future, mask, downscale, allrare, //
+// time group, time window //
// //
// //
///////////////////////////////////////////////////////////////////////////////
TString &desc, TString &clus,
TString &pfp, TString &mask,
UInt_t prescaler, Bool_t allrare);
+ AliTriggerClass( AliTriggerConfiguration *config,
+ TString & name, UChar_t index,
+ TString &desc, TString &clus,
+ TString &pfp, TString &mask,
+ UInt_t prescaler, Bool_t allrare,
+ UInt_t timegroup, UInt_t timewindow);
AliTriggerClass( const AliTriggerClass& trclass );
virtual ~AliTriggerClass();
AliTriggerDescriptor* GetDescriptor() const { return fDescriptor; }
AliTriggerCluster* GetCluster() const { return fCluster; }
AliTriggerBCMask* GetBCMask() const { return fMask; }
+ UInt_t GetTimeGroup() const { return fTimeGroup; }
+ UInt_t GetTimeWindow() const { return fTimeGroup; }
void Trigger( const TObjArray& inputs , const TObjArray& functions);
void Print( const Option_t* ) const;
UInt_t fPrescaler; // Downscaling factor
Bool_t fAllRare; // All or Rare trigger
Bool_t fStatus; //! true = Condition has been satisfied after Trigger
+ UInt_t fTimeGroup; // time group
+ UInt_t fTimeWindow; // the size of time window for its group
- ClassDef( AliTriggerClass, 3 ) // Define a trigger class object
+ ClassDef( AliTriggerClass, 4 ) // Define a trigger class object
};
#endif
break;
case 7:
{
- if ((ntokens < 8) || (ntokens >10)) {
+ if ((ntokens !=8) && (ntokens != 10)) {
AliError(Form("Invalid trigger class syntax (%s)!",strLine.Data()));
return kFALSE;
}
- AliTriggerClass *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(6))->String().Atoi(),(Bool_t)(((TObjString*)tokens->At(7))->String().Atoi()));
+ AliTriggerClass *trclass=0;
+ if(ntokens == 8)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(6))->String().Atoi(),(Bool_t)(((TObjString*)tokens->At(7))->String().Atoi()));
+ 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(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);
}
default: