From b87d7e83775372b36bcedd643b9eadf859415345 Mon Sep 17 00:00:00 2001 From: lietava Date: Sat, 12 Nov 2011 19:17:12 +0000 Subject: [PATCH] Fix for PF, all information saved in ESD --- STEER/ESD/AliTriggerConfiguration.cxx | 38 ++++++++++++++++++-------- STEER/ESD/AliTriggerInput.cxx | 2 ++ STEER/ESD/AliTriggerPFProtection.cxx | 39 ++++++++++++++++++++++++++- STEER/ESD/AliTriggerPFProtection.h | 23 +++++----------- 4 files changed, 73 insertions(+), 29 deletions(-) diff --git a/STEER/ESD/AliTriggerConfiguration.cxx b/STEER/ESD/AliTriggerConfiguration.cxx index 18730e7cc89..a81d47ddc88 100755 --- a/STEER/ESD/AliTriggerConfiguration.cxx +++ b/STEER/ESD/AliTriggerConfiguration.cxx @@ -631,20 +631,36 @@ Bool_t AliTriggerConfiguration::ProcessConfigurationLine(const char* line, Int_t 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); } diff --git a/STEER/ESD/AliTriggerInput.cxx b/STEER/ESD/AliTriggerInput.cxx index 6235ebdc83f..f9127f738a4 100644 --- a/STEER/ESD/AliTriggerInput.cxx +++ b/STEER/ESD/AliTriggerInput.cxx @@ -112,7 +112,9 @@ void AliTriggerInput::Print( const Option_t* ) const 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 diff --git a/STEER/ESD/AliTriggerPFProtection.cxx b/STEER/ESD/AliTriggerPFProtection.cxx index abb0f74c789..39c03ad14b1 100644 --- a/STEER/ESD/AliTriggerPFProtection.cxx +++ b/STEER/ESD/AliTriggerPFProtection.cxx @@ -44,7 +44,39 @@ #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 { @@ -56,6 +88,11 @@ 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; + } } //_____________________________________________________________________________ diff --git a/STEER/ESD/AliTriggerPFProtection.h b/STEER/ESD/AliTriggerPFProtection.h index 8580afd83ae..ce22378f597 100644 --- a/STEER/ESD/AliTriggerPFProtection.h +++ b/STEER/ESD/AliTriggerPFProtection.h @@ -30,22 +30,10 @@ 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 @@ -83,11 +71,12 @@ private: 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 }; -- 2.43.0