#include <TMath.h>
#include <TSortedList.h>
#include "AliLog.h"
#include "AliHFEOADBThresholdsTRD.h"
ClassImp(AliHFEOADBThresholdsTRD)
const Double_t AliHFEOADBThresholdsTRD::fgkVerySmall = 1e-5;
AliHFEOADBThresholdsTRD::AliHFEOADBThresholdsTRD():
TNamed(),
fEntries(NULL)
{
}
AliHFEOADBThresholdsTRD::AliHFEOADBThresholdsTRD(const char *name) :
TNamed(name, ""),
fEntries(NULL)
{
fEntries = new TSortedList;
}
AliHFEOADBThresholdsTRD::~AliHFEOADBThresholdsTRD(){
delete fEntries;
}
Bool_t AliHFEOADBThresholdsTRD::GetThresholdParameters(Int_t ntracklets, Double_t efficiency, Double_t *params){
AliHFEthresholdParamsTRD test(ntracklets, efficiency);
TObject *result = fEntries->FindObject(&test);
if(!result){
AliDebug(1, Form("No threshold params found for %d tracklets and an electron efficiency of %f", ntracklets, efficiency));
return kFALSE;
}
AliHFEthresholdParamsTRD *parResult = static_cast<AliHFEthresholdParamsTRD *>(result);
AliDebug(1, Form("Threshold params found: NTracklets %d, Electron Efficiency %f", parResult->GetNTracklets(), parResult->GetElectronEfficiency()));
memcpy(params, parResult->GetThresholdParams(), sizeof(Double_t) * 4);
return kTRUE;
}
void AliHFEOADBThresholdsTRD::SetThresholdParameters(Int_t ntracklets, Double_t efficiency, Double_t *params){
AliDebug(1, Form("Save Parameters for %d tracklets at and electron efficiency of %f", ntracklets, efficiency));
fEntries->Add(new AliHFEthresholdParamsTRD(ntracklets, efficiency, params));
}
void AliHFEOADBThresholdsTRD::Print(Option_t *) const {
printf("Available thresholds:\n");
printf("_________________________________________\n");
TIter objects(fEntries);
AliHFEthresholdParamsTRD *par;
while((par = dynamic_cast<AliHFEthresholdParamsTRD *>(objects()))){
printf("Number of tracklets %d, Electron efficiency %f\n", par->GetNTracklets(), par->GetElectronEfficiency());
}
}
AliHFEOADBThresholdsTRD::AliHFEthresholdParamsTRD::AliHFEthresholdParamsTRD():
TObject(),
fNTracklets(0),
fEfficiency(0.)
{
memset(fParams, 0, sizeof(Double_t) * 4);
}
AliHFEOADBThresholdsTRD::AliHFEthresholdParamsTRD::AliHFEthresholdParamsTRD(Int_t nTracklets, Double_t eff, Double_t *params) :
TObject(),
fNTracklets(nTracklets),
fEfficiency(eff)
{
if(params) memcpy(fParams, params, sizeof(Double_t) * 4);
else memset(fParams, 0, sizeof(Double_t) * 4);
}
AliHFEOADBThresholdsTRD::AliHFEthresholdParamsTRD::AliHFEthresholdParamsTRD(const AliHFEthresholdParamsTRD &ref) :
TObject(ref),
fNTracklets(ref.fNTracklets),
fEfficiency(ref.fEfficiency)
{
memcpy(fParams, ref.fParams, sizeof(Double_t) * 4);
}
AliHFEOADBThresholdsTRD::AliHFEthresholdParamsTRD &AliHFEOADBThresholdsTRD::AliHFEthresholdParamsTRD::operator=(const AliHFEthresholdParamsTRD &ref){
if(this != &ref){
TObject::operator=(ref);
fNTracklets = ref.fNTracklets;
fEfficiency = ref.fEfficiency;
memcpy(fParams, ref.fParams, sizeof(Double_t) * 4);
}
return *this;
}
Int_t AliHFEOADBThresholdsTRD::AliHFEthresholdParamsTRD::Compare(const TObject *ref) const{
const AliHFEthresholdParamsTRD *refObj = static_cast<const AliHFEthresholdParamsTRD *>(ref);
if(fNTracklets < refObj->GetNTracklets()) return -1;
else if(fNTracklets > refObj->GetNTracklets()) return 1;
else{
if(fEfficiency < refObj->GetElectronEfficiency()) return -1;
else if(fEfficiency > refObj->GetElectronEfficiency()) return 1;
else return 0;
}
}
Bool_t AliHFEOADBThresholdsTRD::AliHFEthresholdParamsTRD::IsEqual(const TObject *ref) const {
const AliHFEthresholdParamsTRD *refObj = dynamic_cast<const AliHFEthresholdParamsTRD *>(ref);
if(!refObj) return kFALSE;
return fNTracklets == refObj->GetNTracklets() && TMath::Abs(fEfficiency - refObj->GetElectronEfficiency()) < fgkVerySmall;
}
AliHFEOADBThresholdsTRD.cxx:1 AliHFEOADBThresholdsTRD.cxx:2 AliHFEOADBThresholdsTRD.cxx:3 AliHFEOADBThresholdsTRD.cxx:4 AliHFEOADBThresholdsTRD.cxx:5 AliHFEOADBThresholdsTRD.cxx:6 AliHFEOADBThresholdsTRD.cxx:7 AliHFEOADBThresholdsTRD.cxx:8 AliHFEOADBThresholdsTRD.cxx:9 AliHFEOADBThresholdsTRD.cxx:10 AliHFEOADBThresholdsTRD.cxx:11 AliHFEOADBThresholdsTRD.cxx:12 AliHFEOADBThresholdsTRD.cxx:13 AliHFEOADBThresholdsTRD.cxx:14 AliHFEOADBThresholdsTRD.cxx:15 AliHFEOADBThresholdsTRD.cxx:16 AliHFEOADBThresholdsTRD.cxx:17 AliHFEOADBThresholdsTRD.cxx:18 AliHFEOADBThresholdsTRD.cxx:19 AliHFEOADBThresholdsTRD.cxx:20 AliHFEOADBThresholdsTRD.cxx:21 AliHFEOADBThresholdsTRD.cxx:22 AliHFEOADBThresholdsTRD.cxx:23 AliHFEOADBThresholdsTRD.cxx:24 AliHFEOADBThresholdsTRD.cxx:25 AliHFEOADBThresholdsTRD.cxx:26 AliHFEOADBThresholdsTRD.cxx:27 AliHFEOADBThresholdsTRD.cxx:28 AliHFEOADBThresholdsTRD.cxx:29 AliHFEOADBThresholdsTRD.cxx:30 AliHFEOADBThresholdsTRD.cxx:31 AliHFEOADBThresholdsTRD.cxx:32 AliHFEOADBThresholdsTRD.cxx:33 AliHFEOADBThresholdsTRD.cxx:34 AliHFEOADBThresholdsTRD.cxx:35 AliHFEOADBThresholdsTRD.cxx:36 AliHFEOADBThresholdsTRD.cxx:37 AliHFEOADBThresholdsTRD.cxx:38 AliHFEOADBThresholdsTRD.cxx:39 AliHFEOADBThresholdsTRD.cxx:40 AliHFEOADBThresholdsTRD.cxx:41 AliHFEOADBThresholdsTRD.cxx:42 AliHFEOADBThresholdsTRD.cxx:43 AliHFEOADBThresholdsTRD.cxx:44 AliHFEOADBThresholdsTRD.cxx:45 AliHFEOADBThresholdsTRD.cxx:46 AliHFEOADBThresholdsTRD.cxx:47 AliHFEOADBThresholdsTRD.cxx:48 AliHFEOADBThresholdsTRD.cxx:49 AliHFEOADBThresholdsTRD.cxx:50 AliHFEOADBThresholdsTRD.cxx:51 AliHFEOADBThresholdsTRD.cxx:52 AliHFEOADBThresholdsTRD.cxx:53 AliHFEOADBThresholdsTRD.cxx:54 AliHFEOADBThresholdsTRD.cxx:55 AliHFEOADBThresholdsTRD.cxx:56 AliHFEOADBThresholdsTRD.cxx:57 AliHFEOADBThresholdsTRD.cxx:58 AliHFEOADBThresholdsTRD.cxx:59 AliHFEOADBThresholdsTRD.cxx:60 AliHFEOADBThresholdsTRD.cxx:61 AliHFEOADBThresholdsTRD.cxx:62 AliHFEOADBThresholdsTRD.cxx:63 AliHFEOADBThresholdsTRD.cxx:64 AliHFEOADBThresholdsTRD.cxx:65 AliHFEOADBThresholdsTRD.cxx:66 AliHFEOADBThresholdsTRD.cxx:67 AliHFEOADBThresholdsTRD.cxx:68 AliHFEOADBThresholdsTRD.cxx:69 AliHFEOADBThresholdsTRD.cxx:70 AliHFEOADBThresholdsTRD.cxx:71 AliHFEOADBThresholdsTRD.cxx:72 AliHFEOADBThresholdsTRD.cxx:73 AliHFEOADBThresholdsTRD.cxx:74 AliHFEOADBThresholdsTRD.cxx:75 AliHFEOADBThresholdsTRD.cxx:76 AliHFEOADBThresholdsTRD.cxx:77 AliHFEOADBThresholdsTRD.cxx:78 AliHFEOADBThresholdsTRD.cxx:79 AliHFEOADBThresholdsTRD.cxx:80 AliHFEOADBThresholdsTRD.cxx:81 AliHFEOADBThresholdsTRD.cxx:82 AliHFEOADBThresholdsTRD.cxx:83 AliHFEOADBThresholdsTRD.cxx:84 AliHFEOADBThresholdsTRD.cxx:85 AliHFEOADBThresholdsTRD.cxx:86 AliHFEOADBThresholdsTRD.cxx:87 AliHFEOADBThresholdsTRD.cxx:88 AliHFEOADBThresholdsTRD.cxx:89 AliHFEOADBThresholdsTRD.cxx:90 AliHFEOADBThresholdsTRD.cxx:91 AliHFEOADBThresholdsTRD.cxx:92 AliHFEOADBThresholdsTRD.cxx:93 AliHFEOADBThresholdsTRD.cxx:94 AliHFEOADBThresholdsTRD.cxx:95 AliHFEOADBThresholdsTRD.cxx:96 AliHFEOADBThresholdsTRD.cxx:97 AliHFEOADBThresholdsTRD.cxx:98 AliHFEOADBThresholdsTRD.cxx:99 AliHFEOADBThresholdsTRD.cxx:100 AliHFEOADBThresholdsTRD.cxx:101 AliHFEOADBThresholdsTRD.cxx:102 AliHFEOADBThresholdsTRD.cxx:103 AliHFEOADBThresholdsTRD.cxx:104 AliHFEOADBThresholdsTRD.cxx:105 AliHFEOADBThresholdsTRD.cxx:106 AliHFEOADBThresholdsTRD.cxx:107 AliHFEOADBThresholdsTRD.cxx:108 AliHFEOADBThresholdsTRD.cxx:109 AliHFEOADBThresholdsTRD.cxx:110 AliHFEOADBThresholdsTRD.cxx:111 AliHFEOADBThresholdsTRD.cxx:112 AliHFEOADBThresholdsTRD.cxx:113 AliHFEOADBThresholdsTRD.cxx:114 AliHFEOADBThresholdsTRD.cxx:115 AliHFEOADBThresholdsTRD.cxx:116 AliHFEOADBThresholdsTRD.cxx:117 AliHFEOADBThresholdsTRD.cxx:118 AliHFEOADBThresholdsTRD.cxx:119 AliHFEOADBThresholdsTRD.cxx:120 AliHFEOADBThresholdsTRD.cxx:121 AliHFEOADBThresholdsTRD.cxx:122 AliHFEOADBThresholdsTRD.cxx:123 AliHFEOADBThresholdsTRD.cxx:124 AliHFEOADBThresholdsTRD.cxx:125 AliHFEOADBThresholdsTRD.cxx:126 AliHFEOADBThresholdsTRD.cxx:127 AliHFEOADBThresholdsTRD.cxx:128 AliHFEOADBThresholdsTRD.cxx:129 AliHFEOADBThresholdsTRD.cxx:130 AliHFEOADBThresholdsTRD.cxx:131 AliHFEOADBThresholdsTRD.cxx:132 AliHFEOADBThresholdsTRD.cxx:133 AliHFEOADBThresholdsTRD.cxx:134 AliHFEOADBThresholdsTRD.cxx:135 AliHFEOADBThresholdsTRD.cxx:136 AliHFEOADBThresholdsTRD.cxx:137 AliHFEOADBThresholdsTRD.cxx:138 AliHFEOADBThresholdsTRD.cxx:139 AliHFEOADBThresholdsTRD.cxx:140 AliHFEOADBThresholdsTRD.cxx:141 AliHFEOADBThresholdsTRD.cxx:142 AliHFEOADBThresholdsTRD.cxx:143 AliHFEOADBThresholdsTRD.cxx:144 AliHFEOADBThresholdsTRD.cxx:145 AliHFEOADBThresholdsTRD.cxx:146 AliHFEOADBThresholdsTRD.cxx:147 AliHFEOADBThresholdsTRD.cxx:148 AliHFEOADBThresholdsTRD.cxx:149 AliHFEOADBThresholdsTRD.cxx:150 AliHFEOADBThresholdsTRD.cxx:151 AliHFEOADBThresholdsTRD.cxx:152 AliHFEOADBThresholdsTRD.cxx:153 AliHFEOADBThresholdsTRD.cxx:154 AliHFEOADBThresholdsTRD.cxx:155 AliHFEOADBThresholdsTRD.cxx:156 AliHFEOADBThresholdsTRD.cxx:157 AliHFEOADBThresholdsTRD.cxx:158 AliHFEOADBThresholdsTRD.cxx:159 AliHFEOADBThresholdsTRD.cxx:160 AliHFEOADBThresholdsTRD.cxx:161 AliHFEOADBThresholdsTRD.cxx:162 AliHFEOADBThresholdsTRD.cxx:163 AliHFEOADBThresholdsTRD.cxx:164 AliHFEOADBThresholdsTRD.cxx:165 AliHFEOADBThresholdsTRD.cxx:166 AliHFEOADBThresholdsTRD.cxx:167 AliHFEOADBThresholdsTRD.cxx:168 AliHFEOADBThresholdsTRD.cxx:169 AliHFEOADBThresholdsTRD.cxx:170 AliHFEOADBThresholdsTRD.cxx:171 AliHFEOADBThresholdsTRD.cxx:172 AliHFEOADBThresholdsTRD.cxx:173 AliHFEOADBThresholdsTRD.cxx:174 AliHFEOADBThresholdsTRD.cxx:175 AliHFEOADBThresholdsTRD.cxx:176 AliHFEOADBThresholdsTRD.cxx:177 AliHFEOADBThresholdsTRD.cxx:178 AliHFEOADBThresholdsTRD.cxx:179