#include <Riostream.h>
#include <TObject.h>
#include <TString.h>
#include <TObjString.h>
#include "AliLog.h"
#include "AliTriggerPFProtection.h"
using std::endl;
using std::cout;
using std::hex;
using std::dec;
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++)fPFdef[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++)fPFdef[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++)fPFdef[i]=0;
}
AliTriggerPFProtection::AliTriggerPFProtection(TString& name,UInt_t* pfdef)
: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++)fPFdef[i]=pfdef[i];
}
void AliTriggerPFProtection::Print( const Option_t* ) const
{
cout << "Trigger Past-Future Protection: " << endl;
cout << " Name: " << GetName() << endl;
cout << " Interaction_a: " << fINTa.Data() << endl;
cout << " Interaction_b: " << fINTb.Data() << endl;
cout << " Interaction: " << fINT.Data() << endl;
cout << " Na1: " << fNa1 << " Na2: " << fNa2 << " Ta: " << fTa << endl;
cout << " Nb1: " << fNb1 << " Nb2: " << fNb2 << " Tb: " << fTb << endl;
cout << "PFdef: " << hex;
for(Int_t i=0;i<12;i++)cout << " 0x" << fPFdef[i];
cout << dec << endl;
}
Bool_t AliTriggerPFProtection::CheckInteractions(TObjArray &interactions) const
{
{
TString logic( GetINTa() );
TObjArray* tokens = logic.Tokenize(" !&|()\t");
Int_t ntokens = tokens->GetEntriesFast();
for( Int_t i=0; i<ntokens; i++ ) {
TObjString* iname = (TObjString*)tokens->At( i );
if (!interactions.FindObject(iname->String().Data())) {
AliError( Form( "The trigger interaction (%s) is not available for past-future protection (%s)",
iname->String().Data(), GetName() ) );
delete tokens;
return kFALSE;
}
}
delete tokens;
}
{
TString logic( GetINTb() );
TObjArray* tokens = logic.Tokenize(" !&|()\t");
Int_t ntokens = tokens->GetEntriesFast();
for( Int_t i=0; i<ntokens; i++ ) {
TObjString* iname = (TObjString*)tokens->At( i );
if (!interactions.FindObject(iname->String().Data())) {
AliError( Form( "The trigger interaction (%s) is not available for past-future protection (%s)",
iname->String().Data(), GetName() ) );
delete tokens;
return kFALSE;
}
}
delete tokens;
}
{
TString logic( GetINT() );
TObjArray* tokens = logic.Tokenize(" !&|()\t");
Int_t ntokens = tokens->GetEntriesFast();
for( Int_t i=0; i<ntokens; i++ ) {
TObjString* iname = (TObjString*)tokens->At( i );
if (!interactions.FindObject(iname->String().Data())) {
AliError( Form( "The trigger interaction (%s) is not available for past-future protection (%s)",
iname->String().Data(), GetName() ) );
delete tokens;
return kFALSE;
}
}
delete tokens;
}
return kTRUE;
}
AliTriggerPFProtection.cxx:1 AliTriggerPFProtection.cxx:2 AliTriggerPFProtection.cxx:3 AliTriggerPFProtection.cxx:4 AliTriggerPFProtection.cxx:5 AliTriggerPFProtection.cxx:6 AliTriggerPFProtection.cxx:7 AliTriggerPFProtection.cxx:8 AliTriggerPFProtection.cxx:9 AliTriggerPFProtection.cxx:10 AliTriggerPFProtection.cxx:11 AliTriggerPFProtection.cxx:12 AliTriggerPFProtection.cxx:13 AliTriggerPFProtection.cxx:14 AliTriggerPFProtection.cxx:15 AliTriggerPFProtection.cxx:16 AliTriggerPFProtection.cxx:17 AliTriggerPFProtection.cxx:18 AliTriggerPFProtection.cxx:19 AliTriggerPFProtection.cxx:20 AliTriggerPFProtection.cxx:21 AliTriggerPFProtection.cxx:22 AliTriggerPFProtection.cxx:23 AliTriggerPFProtection.cxx:24 AliTriggerPFProtection.cxx:25 AliTriggerPFProtection.cxx:26 AliTriggerPFProtection.cxx:27 AliTriggerPFProtection.cxx:28 AliTriggerPFProtection.cxx:29 AliTriggerPFProtection.cxx:30 AliTriggerPFProtection.cxx:31 AliTriggerPFProtection.cxx:32 AliTriggerPFProtection.cxx:33 AliTriggerPFProtection.cxx:34 AliTriggerPFProtection.cxx:35 AliTriggerPFProtection.cxx:36 AliTriggerPFProtection.cxx:37 AliTriggerPFProtection.cxx:38 AliTriggerPFProtection.cxx:39 AliTriggerPFProtection.cxx:40 AliTriggerPFProtection.cxx:41 AliTriggerPFProtection.cxx:42 AliTriggerPFProtection.cxx:43 AliTriggerPFProtection.cxx:44 AliTriggerPFProtection.cxx:45 AliTriggerPFProtection.cxx:46 AliTriggerPFProtection.cxx:47 AliTriggerPFProtection.cxx:48 AliTriggerPFProtection.cxx:49 AliTriggerPFProtection.cxx:50 AliTriggerPFProtection.cxx:51 AliTriggerPFProtection.cxx:52 AliTriggerPFProtection.cxx:53 AliTriggerPFProtection.cxx:54 AliTriggerPFProtection.cxx:55 AliTriggerPFProtection.cxx:56 AliTriggerPFProtection.cxx:57 AliTriggerPFProtection.cxx:58 AliTriggerPFProtection.cxx:59 AliTriggerPFProtection.cxx:60 AliTriggerPFProtection.cxx:61 AliTriggerPFProtection.cxx:62 AliTriggerPFProtection.cxx:63 AliTriggerPFProtection.cxx:64 AliTriggerPFProtection.cxx:65 AliTriggerPFProtection.cxx:66 AliTriggerPFProtection.cxx:67 AliTriggerPFProtection.cxx:68 AliTriggerPFProtection.cxx:69 AliTriggerPFProtection.cxx:70 AliTriggerPFProtection.cxx:71 AliTriggerPFProtection.cxx:72 AliTriggerPFProtection.cxx:73 AliTriggerPFProtection.cxx:74 AliTriggerPFProtection.cxx:75 AliTriggerPFProtection.cxx:76 AliTriggerPFProtection.cxx:77 AliTriggerPFProtection.cxx:78 AliTriggerPFProtection.cxx:79 AliTriggerPFProtection.cxx:80 AliTriggerPFProtection.cxx:81 AliTriggerPFProtection.cxx:82 AliTriggerPFProtection.cxx:83 AliTriggerPFProtection.cxx:84 AliTriggerPFProtection.cxx:85 AliTriggerPFProtection.cxx:86 AliTriggerPFProtection.cxx:87 AliTriggerPFProtection.cxx:88 AliTriggerPFProtection.cxx:89 AliTriggerPFProtection.cxx:90 AliTriggerPFProtection.cxx:91 AliTriggerPFProtection.cxx:92 AliTriggerPFProtection.cxx:93 AliTriggerPFProtection.cxx:94 AliTriggerPFProtection.cxx:95 AliTriggerPFProtection.cxx:96 AliTriggerPFProtection.cxx:97 AliTriggerPFProtection.cxx:98 AliTriggerPFProtection.cxx:99 AliTriggerPFProtection.cxx:100 AliTriggerPFProtection.cxx:101 AliTriggerPFProtection.cxx:102 AliTriggerPFProtection.cxx:103 AliTriggerPFProtection.cxx:104 AliTriggerPFProtection.cxx:105 AliTriggerPFProtection.cxx:106 AliTriggerPFProtection.cxx:107 AliTriggerPFProtection.cxx:108 AliTriggerPFProtection.cxx:109 AliTriggerPFProtection.cxx:110 AliTriggerPFProtection.cxx:111 AliTriggerPFProtection.cxx:112 AliTriggerPFProtection.cxx:113 AliTriggerPFProtection.cxx:114 AliTriggerPFProtection.cxx:115 AliTriggerPFProtection.cxx:116 AliTriggerPFProtection.cxx:117 AliTriggerPFProtection.cxx:118 AliTriggerPFProtection.cxx:119 AliTriggerPFProtection.cxx:120 AliTriggerPFProtection.cxx:121 AliTriggerPFProtection.cxx:122 AliTriggerPFProtection.cxx:123 AliTriggerPFProtection.cxx:124 AliTriggerPFProtection.cxx:125 AliTriggerPFProtection.cxx:126 AliTriggerPFProtection.cxx:127 AliTriggerPFProtection.cxx:128 AliTriggerPFProtection.cxx:129 AliTriggerPFProtection.cxx:130 AliTriggerPFProtection.cxx:131 AliTriggerPFProtection.cxx:132 AliTriggerPFProtection.cxx:133 AliTriggerPFProtection.cxx:134 AliTriggerPFProtection.cxx:135 AliTriggerPFProtection.cxx:136 AliTriggerPFProtection.cxx:137 AliTriggerPFProtection.cxx:138 AliTriggerPFProtection.cxx:139 AliTriggerPFProtection.cxx:140 AliTriggerPFProtection.cxx:141 AliTriggerPFProtection.cxx:142 AliTriggerPFProtection.cxx:143 AliTriggerPFProtection.cxx:144 AliTriggerPFProtection.cxx:145 AliTriggerPFProtection.cxx:146 AliTriggerPFProtection.cxx:147 AliTriggerPFProtection.cxx:148 AliTriggerPFProtection.cxx:149 AliTriggerPFProtection.cxx:150 AliTriggerPFProtection.cxx:151 AliTriggerPFProtection.cxx:152 AliTriggerPFProtection.cxx:153 AliTriggerPFProtection.cxx:154 AliTriggerPFProtection.cxx:155 AliTriggerPFProtection.cxx:156