#include "AliLog.h"
#include "AliTRDPIDResponseObject.h"
#ifndef AliTRDPIDREFERENCE_H
#include "AliTRDPIDReference.h"
#endif
#ifndef AliTRDPIDPARAMS_H
#include "AliTRDPIDParams.h"
#endif
ClassImp(AliTRDPIDResponseObject)
AliTRDPIDResponseObject::AliTRDPIDResponseObject():
TNamed(),
fNSlicesQ0(4)
{
SetBit(kIsOwner, kTRUE);
for(Int_t method=0;method<AliTRDPIDResponse::kNMethod;method++){
fPIDParams[method]=NULL;
fPIDReference[method]=NULL;
}
}
AliTRDPIDResponseObject::AliTRDPIDResponseObject(const Char_t *name):
TNamed(name, "TRD PID Response Object"),
fNSlicesQ0(4)
{
SetBit(kIsOwner, kTRUE);
for(Int_t method=0;method<AliTRDPIDResponse::kNMethod;method++){
fPIDParams[method]=NULL;
fPIDReference[method]=NULL;
}
}
AliTRDPIDResponseObject::AliTRDPIDResponseObject(const AliTRDPIDResponseObject &ref):
TNamed(ref),
fNSlicesQ0(ref.fNSlicesQ0)
{
SetBit(kIsOwner, kFALSE);
for(Int_t method=0;method<AliTRDPIDResponse::kNMethod;method++){
fPIDParams[method]=ref.fPIDParams[method];
fPIDReference[method]=ref.fPIDReference[method];
}
}
AliTRDPIDResponseObject &AliTRDPIDResponseObject::operator=(const AliTRDPIDResponseObject &ref){
if(this != &ref){
TNamed::operator=(ref);
fNSlicesQ0=ref.fNSlicesQ0;
for(Int_t method=0;method<AliTRDPIDResponse::kNMethod;method++){
if(TestBit(kIsOwner) && fPIDParams[method]){
delete fPIDParams[method];
fPIDParams[method]= 0;
}
if(TestBit(kIsOwner) && fPIDReference[method]){
delete fPIDReference[method];
fPIDReference[method] = 0;
}
printf("Assignment");
fPIDParams[method]=ref.fPIDParams[method];
fPIDReference[method]=ref.fPIDReference[method];
}
SetBit(kIsOwner, kFALSE);
}
return *this;
}
AliTRDPIDResponseObject::~AliTRDPIDResponseObject(){
for(Int_t method=0;method<AliTRDPIDResponse::kNMethod;method++){
if(fPIDParams[method] && TestBit(kIsOwner)){
delete fPIDParams[method];fPIDParams[method] = 0;
}
if(fPIDReference[method] && TestBit(kIsOwner)){
delete fPIDReference[method];
fPIDReference[method] = 0;
}
}
}
void AliTRDPIDResponseObject::SetPIDParams(AliTRDPIDParams *params,AliTRDPIDResponse::ETRDPIDMethod method){
if(Int_t(method)>=Int_t(AliTRDPIDResponse::kNMethod)||Int_t(method)<0){
AliError("Method does not exist");
return;
}
if(fPIDParams[method]){
delete fPIDParams[method];
fPIDParams[method]=NULL;
}
fPIDParams[method]=new AliTRDPIDParams(*params);
}
void AliTRDPIDResponseObject::SetPIDReference(AliTRDPIDReference *reference,AliTRDPIDResponse::ETRDPIDMethod method){
if(Int_t(method)>=Int_t(AliTRDPIDResponse::kNMethod)||Int_t(method)<0){
AliError("Method does not exist");
return;
}
if(fPIDReference[method]){
delete fPIDReference[method];
fPIDReference[method]=NULL;
}
fPIDReference[method]=new AliTRDPIDReference(*reference);
}
TObject *AliTRDPIDResponseObject::GetUpperReference(AliPID::EParticleType spec, Float_t p, Float_t &pUpper,AliTRDPIDResponse::ETRDPIDMethod method) const{
if(Int_t(method)>=Int_t(AliTRDPIDResponse::kNMethod)||Int_t(method)<0){
AliError("Method does not exist");
return NULL;
}
if(fPIDReference[method]){
return fPIDReference[method]->GetUpperReference(spec,p,pUpper);
}
return NULL;
}
TObject *AliTRDPIDResponseObject::GetLowerReference(AliPID::EParticleType spec, Float_t p, Float_t &pLower,AliTRDPIDResponse::ETRDPIDMethod method) const{
if(Int_t(method)>=Int_t(AliTRDPIDResponse::kNMethod)||Int_t(method)<0){
AliError("Method does not exist");
return NULL;
}
if(fPIDReference[method]){
return fPIDReference[method]->GetLowerReference(spec,p,pLower);
}
return NULL;
}
Bool_t AliTRDPIDResponseObject::GetThresholdParameters(Int_t ntracklets, Double_t efficiency, Double_t *params,Double_t centrality,AliTRDPIDResponse::ETRDPIDMethod method) const{
if(Int_t(method)>=Int_t(AliTRDPIDResponse::kNMethod)||Int_t(method)<0){
AliError("Method does not exist");
return kFALSE;
}
if(fPIDParams[method]){
return fPIDParams[method]->GetThresholdParameters(ntracklets,efficiency,params,centrality);
}
AliError("TRD Threshold Container does not exist");
return kFALSE;
}
Int_t AliTRDPIDResponseObject::GetNumberOfMomentumBins(AliTRDPIDResponse::ETRDPIDMethod method) const{
if(Int_t(method)>=Int_t(AliTRDPIDResponse::kNMethod)||Int_t(method)<0){
AliError("Method does not exist");
return 0;
}
if(fPIDReference[method]){
return fPIDReference[method]->GetNumberOfMomentumBins();
}
return 0;
}
void AliTRDPIDResponseObject::Print(const Option_t* opt) const{
printf("Content of AliTRDPIDResponseObject \n\n");
for(Int_t method=0;method<AliTRDPIDResponse::kNMethod;method++){
if(fPIDReference[method])fPIDReference[method]->Print(opt);
if(fPIDParams[method])fPIDParams[method]->Print(opt);
}
}
AliTRDPIDResponseObject.cxx:1 AliTRDPIDResponseObject.cxx:2 AliTRDPIDResponseObject.cxx:3 AliTRDPIDResponseObject.cxx:4 AliTRDPIDResponseObject.cxx:5 AliTRDPIDResponseObject.cxx:6 AliTRDPIDResponseObject.cxx:7 AliTRDPIDResponseObject.cxx:8 AliTRDPIDResponseObject.cxx:9 AliTRDPIDResponseObject.cxx:10 AliTRDPIDResponseObject.cxx:11 AliTRDPIDResponseObject.cxx:12 AliTRDPIDResponseObject.cxx:13 AliTRDPIDResponseObject.cxx:14 AliTRDPIDResponseObject.cxx:15 AliTRDPIDResponseObject.cxx:16 AliTRDPIDResponseObject.cxx:17 AliTRDPIDResponseObject.cxx:18 AliTRDPIDResponseObject.cxx:19 AliTRDPIDResponseObject.cxx:20 AliTRDPIDResponseObject.cxx:21 AliTRDPIDResponseObject.cxx:22 AliTRDPIDResponseObject.cxx:23 AliTRDPIDResponseObject.cxx:24 AliTRDPIDResponseObject.cxx:25 AliTRDPIDResponseObject.cxx:26 AliTRDPIDResponseObject.cxx:27 AliTRDPIDResponseObject.cxx:28 AliTRDPIDResponseObject.cxx:29 AliTRDPIDResponseObject.cxx:30 AliTRDPIDResponseObject.cxx:31 AliTRDPIDResponseObject.cxx:32 AliTRDPIDResponseObject.cxx:33 AliTRDPIDResponseObject.cxx:34 AliTRDPIDResponseObject.cxx:35 AliTRDPIDResponseObject.cxx:36 AliTRDPIDResponseObject.cxx:37 AliTRDPIDResponseObject.cxx:38 AliTRDPIDResponseObject.cxx:39 AliTRDPIDResponseObject.cxx:40 AliTRDPIDResponseObject.cxx:41 AliTRDPIDResponseObject.cxx:42 AliTRDPIDResponseObject.cxx:43 AliTRDPIDResponseObject.cxx:44 AliTRDPIDResponseObject.cxx:45 AliTRDPIDResponseObject.cxx:46 AliTRDPIDResponseObject.cxx:47 AliTRDPIDResponseObject.cxx:48 AliTRDPIDResponseObject.cxx:49 AliTRDPIDResponseObject.cxx:50 AliTRDPIDResponseObject.cxx:51 AliTRDPIDResponseObject.cxx:52 AliTRDPIDResponseObject.cxx:53 AliTRDPIDResponseObject.cxx:54 AliTRDPIDResponseObject.cxx:55 AliTRDPIDResponseObject.cxx:56 AliTRDPIDResponseObject.cxx:57 AliTRDPIDResponseObject.cxx:58 AliTRDPIDResponseObject.cxx:59 AliTRDPIDResponseObject.cxx:60 AliTRDPIDResponseObject.cxx:61 AliTRDPIDResponseObject.cxx:62 AliTRDPIDResponseObject.cxx:63 AliTRDPIDResponseObject.cxx:64 AliTRDPIDResponseObject.cxx:65 AliTRDPIDResponseObject.cxx:66 AliTRDPIDResponseObject.cxx:67 AliTRDPIDResponseObject.cxx:68 AliTRDPIDResponseObject.cxx:69 AliTRDPIDResponseObject.cxx:70 AliTRDPIDResponseObject.cxx:71 AliTRDPIDResponseObject.cxx:72 AliTRDPIDResponseObject.cxx:73 AliTRDPIDResponseObject.cxx:74 AliTRDPIDResponseObject.cxx:75 AliTRDPIDResponseObject.cxx:76 AliTRDPIDResponseObject.cxx:77 AliTRDPIDResponseObject.cxx:78 AliTRDPIDResponseObject.cxx:79 AliTRDPIDResponseObject.cxx:80 AliTRDPIDResponseObject.cxx:81 AliTRDPIDResponseObject.cxx:82 AliTRDPIDResponseObject.cxx:83 AliTRDPIDResponseObject.cxx:84 AliTRDPIDResponseObject.cxx:85 AliTRDPIDResponseObject.cxx:86 AliTRDPIDResponseObject.cxx:87 AliTRDPIDResponseObject.cxx:88 AliTRDPIDResponseObject.cxx:89 AliTRDPIDResponseObject.cxx:90 AliTRDPIDResponseObject.cxx:91 AliTRDPIDResponseObject.cxx:92 AliTRDPIDResponseObject.cxx:93 AliTRDPIDResponseObject.cxx:94 AliTRDPIDResponseObject.cxx:95 AliTRDPIDResponseObject.cxx:96 AliTRDPIDResponseObject.cxx:97 AliTRDPIDResponseObject.cxx:98 AliTRDPIDResponseObject.cxx:99 AliTRDPIDResponseObject.cxx:100 AliTRDPIDResponseObject.cxx:101 AliTRDPIDResponseObject.cxx:102 AliTRDPIDResponseObject.cxx:103 AliTRDPIDResponseObject.cxx:104 AliTRDPIDResponseObject.cxx:105 AliTRDPIDResponseObject.cxx:106 AliTRDPIDResponseObject.cxx:107 AliTRDPIDResponseObject.cxx:108 AliTRDPIDResponseObject.cxx:109 AliTRDPIDResponseObject.cxx:110 AliTRDPIDResponseObject.cxx:111 AliTRDPIDResponseObject.cxx:112 AliTRDPIDResponseObject.cxx:113 AliTRDPIDResponseObject.cxx:114 AliTRDPIDResponseObject.cxx:115 AliTRDPIDResponseObject.cxx:116 AliTRDPIDResponseObject.cxx:117 AliTRDPIDResponseObject.cxx:118 AliTRDPIDResponseObject.cxx:119 AliTRDPIDResponseObject.cxx:120 AliTRDPIDResponseObject.cxx:121 AliTRDPIDResponseObject.cxx:122 AliTRDPIDResponseObject.cxx:123 AliTRDPIDResponseObject.cxx:124 AliTRDPIDResponseObject.cxx:125 AliTRDPIDResponseObject.cxx:126 AliTRDPIDResponseObject.cxx:127 AliTRDPIDResponseObject.cxx:128 AliTRDPIDResponseObject.cxx:129 AliTRDPIDResponseObject.cxx:130 AliTRDPIDResponseObject.cxx:131 AliTRDPIDResponseObject.cxx:132 AliTRDPIDResponseObject.cxx:133 AliTRDPIDResponseObject.cxx:134 AliTRDPIDResponseObject.cxx:135 AliTRDPIDResponseObject.cxx:136 AliTRDPIDResponseObject.cxx:137 AliTRDPIDResponseObject.cxx:138 AliTRDPIDResponseObject.cxx:139 AliTRDPIDResponseObject.cxx:140 AliTRDPIDResponseObject.cxx:141 AliTRDPIDResponseObject.cxx:142 AliTRDPIDResponseObject.cxx:143 AliTRDPIDResponseObject.cxx:144 AliTRDPIDResponseObject.cxx:145 AliTRDPIDResponseObject.cxx:146 AliTRDPIDResponseObject.cxx:147 AliTRDPIDResponseObject.cxx:148 AliTRDPIDResponseObject.cxx:149 AliTRDPIDResponseObject.cxx:150 AliTRDPIDResponseObject.cxx:151 AliTRDPIDResponseObject.cxx:152 AliTRDPIDResponseObject.cxx:153 AliTRDPIDResponseObject.cxx:154 AliTRDPIDResponseObject.cxx:155 AliTRDPIDResponseObject.cxx:156 AliTRDPIDResponseObject.cxx:157 AliTRDPIDResponseObject.cxx:158 AliTRDPIDResponseObject.cxx:159 AliTRDPIDResponseObject.cxx:160 AliTRDPIDResponseObject.cxx:161 AliTRDPIDResponseObject.cxx:162 AliTRDPIDResponseObject.cxx:163 AliTRDPIDResponseObject.cxx:164 AliTRDPIDResponseObject.cxx:165 AliTRDPIDResponseObject.cxx:166 AliTRDPIDResponseObject.cxx:167 AliTRDPIDResponseObject.cxx:168 AliTRDPIDResponseObject.cxx:169 AliTRDPIDResponseObject.cxx:170 AliTRDPIDResponseObject.cxx:171 AliTRDPIDResponseObject.cxx:172 AliTRDPIDResponseObject.cxx:173 AliTRDPIDResponseObject.cxx:174 AliTRDPIDResponseObject.cxx:175 AliTRDPIDResponseObject.cxx:176 AliTRDPIDResponseObject.cxx:177 AliTRDPIDResponseObject.cxx:178 AliTRDPIDResponseObject.cxx:179 AliTRDPIDResponseObject.cxx:180 AliTRDPIDResponseObject.cxx:181 AliTRDPIDResponseObject.cxx:182 AliTRDPIDResponseObject.cxx:183 AliTRDPIDResponseObject.cxx:184 AliTRDPIDResponseObject.cxx:185 AliTRDPIDResponseObject.cxx:186 AliTRDPIDResponseObject.cxx:187 AliTRDPIDResponseObject.cxx:188 AliTRDPIDResponseObject.cxx:189 AliTRDPIDResponseObject.cxx:190 AliTRDPIDResponseObject.cxx:191 AliTRDPIDResponseObject.cxx:192 AliTRDPIDResponseObject.cxx:193 AliTRDPIDResponseObject.cxx:194 AliTRDPIDResponseObject.cxx:195 AliTRDPIDResponseObject.cxx:196 AliTRDPIDResponseObject.cxx:197 AliTRDPIDResponseObject.cxx:198 AliTRDPIDResponseObject.cxx:199 AliTRDPIDResponseObject.cxx:200 AliTRDPIDResponseObject.cxx:201 AliTRDPIDResponseObject.cxx:202 AliTRDPIDResponseObject.cxx:203 AliTRDPIDResponseObject.cxx:204 AliTRDPIDResponseObject.cxx:205 AliTRDPIDResponseObject.cxx:206 AliTRDPIDResponseObject.cxx:207 AliTRDPIDResponseObject.cxx:208 AliTRDPIDResponseObject.cxx:209 AliTRDPIDResponseObject.cxx:210 AliTRDPIDResponseObject.cxx:211 AliTRDPIDResponseObject.cxx:212 AliTRDPIDResponseObject.cxx:213 AliTRDPIDResponseObject.cxx:214 AliTRDPIDResponseObject.cxx:215 AliTRDPIDResponseObject.cxx:216 AliTRDPIDResponseObject.cxx:217 AliTRDPIDResponseObject.cxx:218 AliTRDPIDResponseObject.cxx:219 AliTRDPIDResponseObject.cxx:220 AliTRDPIDResponseObject.cxx:221 AliTRDPIDResponseObject.cxx:222 AliTRDPIDResponseObject.cxx:223 AliTRDPIDResponseObject.cxx:224 AliTRDPIDResponseObject.cxx:225 AliTRDPIDResponseObject.cxx:226 AliTRDPIDResponseObject.cxx:227 AliTRDPIDResponseObject.cxx:228 AliTRDPIDResponseObject.cxx:229 AliTRDPIDResponseObject.cxx:230 AliTRDPIDResponseObject.cxx:231 AliTRDPIDResponseObject.cxx:232