X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliExternalComparison.cxx;h=731ebe4a6ca441f62ad7d6cfbf021815a4c058ef;hb=b5b166c54f9f8790ac2dd697a47cae10a5b04b49;hp=71fb685da400682f8919ca0c06716d68091af6c1;hpb=d73981ad2f559535e4b1b4b17137e60f60a1ae8e;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliExternalComparison.cxx b/TPC/AliExternalComparison.cxx index 71fb685da40..731ebe4a6ca 100644 --- a/TPC/AliExternalComparison.cxx +++ b/TPC/AliExternalComparison.cxx @@ -13,14 +13,7 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* - - - - -*/ - - +/* $Id:$ */ #include "AliExternalComparison.h" #include "AliExternalTrackParam.h" @@ -61,6 +54,32 @@ AliExternalComparison::AliExternalComparison(const Text_t *name, const Text_t *t // } +AliExternalComparison::AliExternalComparison(const AliExternalComparison& comp) + :TNamed(comp), + fResolHistos(new TObjArray(*(comp.fResolHistos))), + fPullHistos(new TObjArray(*(comp.fPullHistos))), + fRangeMatrix(new TMatrixD(*(comp.fRangeMatrix))), + fCutMatrix(new TMatrixD(*(comp.fCutMatrix))) +{ + // + // copy constructor + // +} + +AliExternalComparison& AliExternalComparison::operator=(const AliExternalComparison& comp) +{ + // + // + // + if(this != &comp) { + TNamed::operator=(comp); + fResolHistos=new TObjArray(*(comp.fResolHistos)); + fPullHistos=new TObjArray(*(comp.fPullHistos)); + fRangeMatrix=new TMatrixD(*(comp.fRangeMatrix)); + fCutMatrix=new TMatrixD(*(comp.fCutMatrix)); + } + return *this; +} AliExternalComparison::~AliExternalComparison(){ @@ -72,6 +91,7 @@ AliExternalComparison::~AliExternalComparison(){ delete fResolHistos; // resolution histogram delete fPullHistos; // pull histogram delete fRangeMatrix; // range matrix + delete fCutMatrix; // range matrix } @@ -82,7 +102,7 @@ void AliExternalComparison::Analyze() { } -Long64_t AliExternalComparison::Merge(TCollection *li) { +Long64_t AliExternalComparison::Merge(TCollection *const li) { // // // @@ -100,7 +120,7 @@ Long64_t AliExternalComparison::Merge(TCollection *li) { return 0; } -void AliExternalComparison:: Add(AliExternalComparison*comp){ +void AliExternalComparison::Add(AliExternalComparison *const comp){ // // Add comparison object // @@ -122,14 +142,10 @@ void AliExternalComparison::Process(const AliExternalTrackParam *param0, const // Process- fill histogram with residuals // Tracks has to be in the same local X // - const Double_t kDeltaX=0.2; - const Double_t kDeltaA=0.01; if (!AcceptPair(param0,param1)) return; // if (!fResolHistos) MakeHistos(); // - if (TMath::Abs(param0->GetX()-param1->GetX())>kDeltaX) return; - if (TMath::Abs(param0->GetAlpha()-param1->GetAlpha())>kDeltaA) return; // const Double_t *p0 = param0->GetParameter(); const Double_t *p1 = param1->GetParameter(); @@ -272,7 +288,7 @@ void AliExternalComparison::SetDefaultRange(Float_t scale,Float_t arm, Int_t nb mat(4,0)=-3; mat(4,1)=3; mat(4,2)=50; // sqrt(P4) -sqrt(1/pt) range // mat(5,0)= 0; mat(5,1)=250; mat(5,2)=50; // R range - mat(6,0)= TMath::Pi(); mat(6,1)=TMath::Pi(); mat(6,2)=18*4; // fi range + mat(6,0)= -TMath::Pi(); mat(6,1)=TMath::Pi(); mat(6,2)=18*4; // fi range // // Resolution // @@ -304,6 +320,28 @@ void AliExternalComparison::SetDefaultCuts(){ // } +void AliExternalComparison::SetParameterRange(Int_t param, Float_t min, Float_t max, Int_t nbins){ + // + // + // + if (!fRangeMatrix) SetDefaultRange(); + TMatrixD & mat = *fRangeMatrix; + if (param<0) return; + if (param>6) return; + mat(param,0)=min; mat(param,1)=max; mat(param,2)=nbins; +} + +void AliExternalComparison::SetResolRange(Int_t param, Float_t min, Float_t max, Int_t nbins){ + // + // + // + if (!fRangeMatrix) SetDefaultRange(); + TMatrixD & mat = *fRangeMatrix; + if (param<0) return; + if (param>4) return; + mat(7+param,0)=min; mat(7+param,1)=max; mat(7+param,2)=nbins; +} + void AliExternalComparison::SetDistCut(Float_t dP0, Float_t dP1,Float_t dP2,Float_t dP3, Float_t dP4){ // // Set diff cuts @@ -349,6 +387,12 @@ Bool_t AliExternalComparison::AcceptPair(const AliExternalTrackParam *param0, if (TMath::Abs(p0[2]-p1[2])>mat(2,0)) return kFALSE; if (TMath::Abs(p0[3]-p1[3])>mat(3,0)) return kFALSE; if (TMath::Abs(p0[4]-p1[4])>mat(4,0)) return kFALSE; + if ((c0[0]+c1[0])<0) return kFALSE; + if ((c0[2]+c1[2])<0) return kFALSE; + if ((c0[5]+c1[5])<0) return kFALSE; + if ((c0[9]+c1[9])<0) return kFALSE; + if ((c0[14]+c1[14])<0) return kFALSE; + if (TMath::Abs((p0[0]-p1[0])/TMath::Sqrt(c0[0]+c1[0]))>mat(5,0)) return kFALSE; if (TMath::Abs((p0[1]-p1[1])/TMath::Sqrt(c0[2]+c1[2]))>mat(6,0)) return kFALSE; if (TMath::Abs((p0[2]-p1[2])/TMath::Sqrt(c0[5]+c1[5]))>mat(7,0)) return kFALSE;