#include <Riostream.h>
#include <TObject.h>
#include <TClass.h>
#include <TString.h>
#include <TMath.h>
#include "AliLog.h"
#include "AliDAQ.h"
#include "AliTriggerCluster.h"
#include "AliTriggerInput.h"
using std::endl;
using std::cout;
ClassImp( AliTriggerCluster )
AliTriggerCluster::AliTriggerCluster():
TNamed(),
fClusterMask(0)
{
}
AliTriggerCluster::AliTriggerCluster( TString & name, UChar_t index, TString & detectors ) :
TNamed(name,detectors),
fClusterMask((index <=6) ? 1 << (index-1) : 0)
{
TString detClus;
for( Int_t iDet = 0; iDet < AliDAQ::kNDetectors; iDet++ ) {
if( IsSelected( AliTriggerInput::fgkCTPDetectorName[iDet], fTitle )) {
detClus.Append( " " );
detClus.Append( AliDAQ::DetectorName(iDet) );
}
}
SetTitle(detClus.Data());
}
AliTriggerCluster::AliTriggerCluster( const AliTriggerCluster &clus ):
TNamed(clus),
fClusterMask(clus.fClusterMask)
{
}
Bool_t AliTriggerCluster::IsDetectorInCluster( TString & detName )
{
Bool_t result = kFALSE;
if( (fTitle.CompareTo( detName ) == 0) ||
fTitle.BeginsWith( detName+" " ) ||
fTitle.EndsWith( " "+detName ) ||
fTitle.Contains( " "+detName+" " ) ) {
result = kTRUE;
}
return result;
}
void AliTriggerCluster::Print( const Option_t* ) const
{
cout << "Detector Cluster:" << endl;
cout << " Name: " << GetName() << endl;
cout << " Cluster index: " << (Int_t)TMath::Log2(fClusterMask) + 1 << endl;
cout << " Detectors: " << GetDetectorsInCluster() << endl;
}
Bool_t AliTriggerCluster::IsSelected( TString detName, TString& detectors ) const
{
if( (detectors.CompareTo("ALL") == 0 ) ||
detectors.BeginsWith("ALL ") ||
detectors.EndsWith(" ALL") ||
detectors.Contains(" ALL ") ) {
detectors = "ALL";
return kTRUE;
}
Bool_t result = kFALSE;
if( (detectors.CompareTo( detName ) == 0) ||
detectors.BeginsWith( detName+" " ) ||
detectors.EndsWith( " "+detName ) ||
detectors.Contains( " "+detName+" " ) ) {
detectors.ReplaceAll( detName, "" );
result = kTRUE;
}
while( detectors.Contains(" ") ) detectors.ReplaceAll( " ", " " );
while( detectors.BeginsWith(" ") ) detectors.Remove( 0, 1 );
while( detectors.EndsWith(" ") ) detectors.Remove( detectors.Length()-1, 1 );
return result;
}
AliTriggerCluster.cxx:100 AliTriggerCluster.cxx:101 AliTriggerCluster.cxx:102 AliTriggerCluster.cxx:103 AliTriggerCluster.cxx:104 AliTriggerCluster.cxx:105 AliTriggerCluster.cxx:106 AliTriggerCluster.cxx:107 AliTriggerCluster.cxx:108 AliTriggerCluster.cxx:109 AliTriggerCluster.cxx:110 AliTriggerCluster.cxx:111 AliTriggerCluster.cxx:112 AliTriggerCluster.cxx:113 AliTriggerCluster.cxx:114 AliTriggerCluster.cxx:115 AliTriggerCluster.cxx:116 AliTriggerCluster.cxx:117 AliTriggerCluster.cxx:118 AliTriggerCluster.cxx:119 AliTriggerCluster.cxx:120 AliTriggerCluster.cxx:121 AliTriggerCluster.cxx:122 AliTriggerCluster.cxx:123 AliTriggerCluster.cxx:124 AliTriggerCluster.cxx:125 AliTriggerCluster.cxx:126 AliTriggerCluster.cxx:127 AliTriggerCluster.cxx:128 AliTriggerCluster.cxx:129 AliTriggerCluster.cxx:130 AliTriggerCluster.cxx:131 AliTriggerCluster.cxx:132 AliTriggerCluster.cxx:133