pfp = new AliTriggerPFProtection(((TObjString*)tokens->At(0))->String());
}
else {
- if (ntokens > 13) {
- AliError(Form("Invalid trigger pfs syntax (%s)!",strLine.Data()));
- return kFALSE;
- }
- pfp = new AliTriggerPFProtection(((TObjString*)tokens->At(0))->String(),
+ if (ntokens == 10){
+ pfp = new AliTriggerPFProtection(((TObjString*)tokens->At(0))->String(),
((TObjString*)tokens->At(1))->String(),
((TObjString*)tokens->At(2))->String(),
((TObjString*)tokens->At(3))->String());
- pfp->SetNa1(((TObjString*)tokens->At(4))->String().Atoi());
- pfp->SetNa2(((TObjString*)tokens->At(5))->String().Atoi());
- pfp->SetNb1(((TObjString*)tokens->At(6))->String().Atoi());
- pfp->SetNb2(((TObjString*)tokens->At(7))->String().Atoi());
- pfp->SetTa(((TObjString*)tokens->At(8))->String().Atoi());
- pfp->SetTb(((TObjString*)tokens->At(9))->String().Atoi());
+ pfp->SetNa1(((TObjString*)tokens->At(4))->String().Atoi());
+ pfp->SetNa2(((TObjString*)tokens->At(5))->String().Atoi());
+ pfp->SetNb1(((TObjString*)tokens->At(6))->String().Atoi());
+ pfp->SetNb2(((TObjString*)tokens->At(7))->String().Atoi());
+ pfp->SetTa(((TObjString*)tokens->At(8))->String().Atoi());
+ pfp->SetTb(((TObjString*)tokens->At(9))->String().Atoi());
+ }else if(ntokens == 13){
+ UInt_t pfdef[12];
+ for(Int_t i=0;i<12;i++){
+ TString ss(((TObjString*)tokens->At(i+1))->String());
+ ss.Remove(0,2);
+ UInt_t num=0;
+ for(Int_t j=ss.Length()-1;j>=0;j--){
+ UInt_t nn=ss[j];
+ if(nn<58)nn=nn-48; else nn=10+nn-97;
+ num=num+(1<<(ss.Length()-1-j)*4)*nn;
+ //cout << ss[j] << " " << nn << " " << num << endl;
+ }
+ pfdef[i]=num;
+ }
+ pfp = new AliTriggerPFProtection(((TObjString*)tokens->At(0))->String(),pfdef);
+ }else{
+ AliError(Form("Invalid trigger pfs syntax (%s)!",strLine.Data()));
+ return kFALSE;
+ }
}
AddPFProtection(pfp);
}
cout << " Detector: " << GetTitle() << "(Id=" << (Int_t)fDetectorId << ")" << endl;
cout << " Level: " << (Int_t)fLevel << endl;
cout << " Signature: " << fSignature << endl;
+ if(fMask)
cout << " Number: " << (Int_t)TMath::Log2(fMask) << endl;
+ else cout << " fMask: " << fMask << endl;
if (IsActive())
cout << " Input is active " << endl;
else
#include "AliTriggerPFProtection.h"
ClassImp( AliTriggerPFProtection )
-
+//_____________________________________________________________________________
+AliTriggerPFProtection::AliTriggerPFProtection() :
+TNamed(),
+fINTa(), fINTb(),fINT(),
+fNa1(0),fNa2(0),fTa(0),
+fNb1(0),fNb2(0),fTb(0)
+{
+for(Int_t i=0;i<12;i++)pfdef[i]=0;
+}
+AliTriggerPFProtection::AliTriggerPFProtection( TString & name) :
+TNamed(name, name),
+fINTa(), fINTb(),fINT(),
+fNa1(0),fNa2(0),fTa(0),
+fNb1(0),fNb2(0),fTb(0)
+{
+for(Int_t i=0;i<12;i++)pfdef[i]=0;
+}
+AliTriggerPFProtection::AliTriggerPFProtection( TString & name,TString & inta, TString & intb, TString & interaction ) :
+TNamed(name, name),
+fINTa(inta), fINTb(intb),fINT(interaction),
+fNa1(0),fNa2(0),fTa(0),
+fNb1(0),fNb2(0),fTb(0)
+{
+for(Int_t i=0;i<12;i++)pfdef[i]=0;
+}
+AliTriggerPFProtection::AliTriggerPFProtection(TString& name,UInt_t* pfdefin)
+:TNamed(name,name),
+fINTa(), fINTb(),fINT(),
+fNa1(0),fNa2(0),fTa(0),
+fNb1(0),fNb2(0),fTb(0)
+{
+for(Int_t i=0;i<12;i++)pfdef[i]=pfdefin[i];
+}
//_____________________________________________________________________________
void AliTriggerPFProtection::Print( const Option_t* ) const
{
cout << " Interaction: " << fINT.Data() << endl;
cout << " Na1: " << fNa1 << " Na2: " << fNa2 << " Ta: " << fTa << endl;
cout << " Nb1: " << fNb1 << " Nb2: " << fNb2 << " Tb: " << fTb << endl;
+ if(1){
+ cout << "pfdef: " << hex;
+ for(Int_t i=0;i<12;i++)cout << " 0x" << pfdef[i];
+ cout << dec << endl;
+ }
}
//_____________________________________________________________________________
class AliTriggerPFProtection : public TNamed {
public:
- AliTriggerPFProtection() :
- TNamed(),
- fINTa(), fINTb(),fINT(),
- fNa1(0),fNa2(0),fTa(0),
- fNb1(0),fNb2(0),fTb(0) {}
- AliTriggerPFProtection( TString & name) :
- TNamed(name, name),
- fINTa(), fINTb(),fINT(),
- fNa1(0),fNa2(0),fTa(0),
- fNb1(0),fNb2(0),fTb(0) {}
- AliTriggerPFProtection( TString & name,
- TString & inta, TString & intb, TString & interaction ) :
- TNamed(name, name),
- fINTa(inta), fINTb(intb),fINT(interaction),
- fNa1(0),fNa2(0),fTa(0),
- fNb1(0),fNb2(0),fTb(0) {}
+ AliTriggerPFProtection();
+ AliTriggerPFProtection( TString & name);
+ AliTriggerPFProtection( TString & name,TString & inta, TString & intb, TString & interaction );
+ AliTriggerPFProtection(TString& name, UInt_t* pfdef);
virtual ~AliTriggerPFProtection() {}
// Setters
UInt_t fNb1; // mmax number of INTb for the event of type INT
UInt_t fNb2; // mmax number of INTb for the event of type NOT INT
UInt_t fTb; // mprotection interval for INTb
+ UInt_t pfdef[12]; // 12 words=3 levels * 4; pfcommon,pfblocka,pfblockb,pflut
AliTriggerPFProtection(const AliTriggerPFProtection & inp );
AliTriggerPFProtection& operator = (const AliTriggerPFProtection& inp);
- ClassDef( AliTriggerPFProtection, 1 ) // Define a Trigger Past Future Protection
+ ClassDef( AliTriggerPFProtection, 2 ) // Define a Trigger Past Future Protection
};