fix codding convention violations
authorabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Oct 2010 11:12:08 +0000 (11:12 +0000)
committerabercuci <abercuci@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 21 Oct 2010 11:12:08 +0000 (11:12 +0000)
PWG1/TRD/AliTRDresolution.cxx
PWG1/TRD/AliTRDresolution.h
PWG1/TRD/info/AliTRDv0Info.cxx
PWG1/TRD/info/AliTRDv0Info.h

index 8fb2acb..1acf840 100644 (file)
@@ -2513,7 +2513,9 @@ Bool_t AliTRDresolution::Load(const Char_t *file, const Char_t *dir)
 //________________________________________________________
 Bool_t AliTRDresolution::Process(TH2* const h2, TGraphErrors **g, Int_t stat)
 {
-// Generic function to process sigma/mean for 2D plot dy(x)
+// Robust function to process sigma/mean for 2D plot dy(x)
+// For each x bin a gauss fit is performed on the y projection and the range
+// with the minimum chi2/ndf is choosen
 
   if(!h2) {
     if(AliLog::GetDebugLevel("PWG1", "AliTRDresolution")>0) printf("D-AliTRDresolution::Process() : NULL pointer input container.\n");
@@ -2529,29 +2531,53 @@ Bool_t AliTRDresolution::Process(TH2* const h2, TGraphErrors **g, Int_t stat)
   }
   // prepare
   TAxis *ax(h2->GetXaxis()), *ay(h2->GetYaxis());
-  TF1 f("f", "gaus", ay->GetXmin(), ay->GetXmax());
+  Float_t ymin(ay->GetXmin()), ymax(ay->GetXmax()), dy(ay->GetBinWidth(1)), y0(0.), y1(0.);
+  TF1 f("f", "gaus", ymin, ymax);
   Int_t n(0);
   if((n=g[0]->GetN())) for(;n--;) g[0]->RemovePoint(n);
   if((n=g[1]->GetN())) for(;n--;) g[1]->RemovePoint(n);
   TH1D *h(NULL);
   if((h=(TH1D*)gROOT->FindObject("py"))) delete h;
+  Double_t x(0.), y(0.), ex(0.), ey(0.), sy(0.), esy(0.);
+  
 
   // do actual loop
+  Float_t chi2OverNdf(0.);
   for(Int_t ix = 1, np=0; ix<=ax->GetNbins(); ix++){
-    Double_t x = ax->GetBinCenter(ix);
-    Double_t ex= ax->GetBinWidth(ix)*0.288; // w/sqrt(12)
+    x = ax->GetBinCenter(ix); ex= ax->GetBinWidth(ix)*0.288; // w/sqrt(12)
+    ymin = ay->GetXmin(); ymax = ay->GetXmax();
+
     h = h2->ProjectionY("py", ix, ix);
     if((n=(Int_t)h->GetEntries())<stat){
       if(AliLog::GetDebugLevel("PWG1", "AliTRDresolution")>1) printf("I-AliTRDresolution::Process() : Low statistics @ x[%f] stat[%d]=%d [%d].\n", x, ix, n, stat);
       continue;
     }
-    f.SetParameter(1, 0.);
-    f.SetParameter(2, 3.e-2);
-    h->Fit(&f, "QN");
-    g[0]->SetPoint(np, x, f.GetParameter(1));
-    g[0]->SetPointError(np, ex, f.GetParError(1));
-    g[1]->SetPoint(np, x, f.GetParameter(2));
-    g[1]->SetPointError(np, ex, f.GetParError(2));
+    // looking for a first order mean value
+    f.SetParameter(1, 0.); f.SetParameter(2, 3.e-2);
+    h->Fit(&f, "QNW");
+    chi2OverNdf = f.GetChisquare()/f.GetNDF();
+    printf("x[%f] range[%f %f] chi2[%f] ndf[%d] chi2/ndf[%f]\n", x, ymin, ymax, f.GetChisquare(),f.GetNDF(),chi2OverNdf);
+    y = f.GetParameter(1); y0 = y-4*dy; y1 = y+4*dy;
+    ey  = f.GetParError(1);
+    sy = f.GetParameter(2); esy = f.GetParError(2);
+//     // looking for the best chi2/ndf value
+//     while(ymin<y0 && ymax>y1){
+//       f.SetParameter(1, y);
+//       f.SetParameter(2, sy);
+//       h->Fit(&f, "QNW", "", y0, y1);
+//       printf("   range[%f %f] chi2[%f] ndf[%d] chi2/ndf[%f]\n", y0, y1, f.GetChisquare(),f.GetNDF(),f.GetChisquare()/f.GetNDF());
+//       if(f.GetChisquare()/f.GetNDF() < Chi2OverNdf){
+//         chi2OverNdf = f.GetChisquare()/f.GetNDF();
+//         y  = f.GetParameter(1); ey  = f.GetParError(1);
+//         sy = f.GetParameter(2); esy = f.GetParError(2);
+//         printf("    set y[%f] sy[%f] chi2/ndf[%f]\n", y, sy, chi2OverNdf);
+//       }
+//       y0-=dy; y1+=dy;
+//     }
+    g[0]->SetPoint(np, x, y);
+    g[0]->SetPointError(np, ex, ey);
+    g[1]->SetPoint(np, x, sy);
+    g[1]->SetPointError(np, ex, esy);
     np++;
   }
   return kTRUE;
@@ -3062,7 +3088,7 @@ Bool_t AliTRDresolution::FitTrack(const Int_t np, AliTrackPoint *points, Float_t
 //
 
   if(np<40){
-    if(AliLog::GetDebugLevel("PWG1", "AliTRDresolution")>1) printf("D-AliTRDresolution::FitTrack: Not enough clusters to fit a track [%d].", np);
+    if(AliLog::GetDebugLevel("PWG1", "AliTRDresolution")>1) printf("D-AliTRDresolution::FitTrack: Not enough clusters to fit a track [%d].\n", np);
     return kFALSE;
   }
   TLinearFitter yfitter(2, "pol1"), zfitter(2, "pol1");
@@ -3097,12 +3123,12 @@ Bool_t AliTRDresolution::FitTrack(const Int_t np, AliTrackPoint *points, Float_t
   Double_t dydx = yfitter.GetParameter(1);
 
   param[0] = x0; param[1] = y0; param[2] = z0; param[3] = dydx; param[4] = dzdx;
-  if(AliLog::GetDebugLevel("PWG1", "AliTRDresolution")>3) printf("D-AliTRDresolution::FitTrack: x0[%f] y0[%f] z0[%f] dydx[%f] dzdx[%f]\n", x0, y0, z0, dydx, dzdx);
+  if(AliLog::GetDebugLevel("PWG1", "AliTRDresolution")>3) printf("D-AliTRDresolution::FitTrack: x0[%f] y0[%f] z0[%f] dydx[%f] dzdx[%f].\n", x0, y0, z0, dydx, dzdx);
   return kTRUE;
 }
 
 //____________________________________________________________________
-Bool_t AliTRDresolution::FitTracklet(const Int_t ly, const Int_t np, AliTrackPoint *points, const Float_t param[10], Float_t par[3])
+Bool_t AliTRDresolution::FitTracklet(const Int_t ly, const Int_t np, const AliTrackPoint *points, const Float_t param[10], Float_t par[3])
 {
 //
 // Fit tracklet with a staight line using the coresponding subset of clusters out of the total "np" clusters stored in the array "points".
@@ -3134,7 +3160,7 @@ Bool_t AliTRDresolution::FitTracklet(const Int_t ly, const Int_t np, AliTrackPoi
     nly++;
   }
   if(nly<10){
-    if(AliLog::GetDebugLevel("PWG1", "AliTRDresolution")>1) printf("D-AliTRDresolution::FitTracklet: Not enough clusters to fit a tracklet [%d].", nly);
+    if(AliLog::GetDebugLevel("PWG1", "AliTRDresolution")>1) printf("D-AliTRDresolution::FitTracklet: Not enough clusters to fit a tracklet [%d].\n", nly);
     return kFALSE;
   }
   // set radial reference for fit
@@ -3161,7 +3187,7 @@ Bool_t AliTRDresolution::FitTracklet(const Int_t ly, const Int_t np, AliTrackPoi
 }
 
 //____________________________________________________________________
-Bool_t AliTRDresolution::UseTrack(const Int_t np, AliTrackPoint *points, Float_t param[10])
+Bool_t AliTRDresolution::UseTrack(const Int_t np, const AliTrackPoint *points, Float_t param[10])
 {
 //
 // Global selection mechanism of tracksbased on cluster to fit residuals
index 09354da..73b79cc 100644 (file)
@@ -65,7 +65,7 @@ public:
   virtual ~AliTRDresolution();
   
   static Bool_t  FitTrack(const Int_t np, AliTrackPoint *points, Float_t params[10]);
-  static Bool_t  FitTracklet(const Int_t ly, const Int_t np, AliTrackPoint *points, const Float_t trackPars[10], Float_t trackletPars[3]);
+  static Bool_t  FitTracklet(const Int_t ly, const Int_t np, const AliTrackPoint *points, const Float_t trackPars[10], Float_t trackletPars[3]);
   void    UserCreateOutputObjects();
   Float_t GetDyRange() const {return fDyRange;}
   Float_t GetPtThreshold() const {return fPtThreshold;}
@@ -103,7 +103,7 @@ public:
   void    Terminate(Option_t * opt);
   Bool_t  GetGraph(Float_t *bb, ETRDresolutionPlot ip, Int_t idx=-1, Bool_t kLEG=kTRUE, const Char_t *explain=NULL);
   Bool_t  GetGraphArray(Float_t *bb, ETRDresolutionPlot ip, Int_t idx, Bool_t kLEG=kTRUE, Int_t n=0, Int_t *sel=NULL, const Char_t *explain=NULL);
-  static Bool_t  UseTrack(const Int_t np, AliTrackPoint *points, Float_t params[10]);
+  static Bool_t  UseTrack(const Int_t np, const AliTrackPoint *points, Float_t params[10]);
     
 private:
   AliTRDresolution(const AliTRDresolution&);
index 446ea06..3c116c3 100644 (file)
@@ -286,7 +286,7 @@ AliTRDv0Info::AliTRDv0Info(const AliTRDv0Info &ref)
 }
 
 //_________________________________________________
-void AliTRDv0Info::SetV0Info(AliESDv0 *esdv0)
+void AliTRDv0Info::SetV0Info(const AliESDv0 *esdv0)
 {
   //Gets values of ESDv0 and daughter track properties
   //See header file for description of variables
@@ -337,7 +337,7 @@ void AliTRDv0Info::SetV0Info(AliESDv0 *esdv0)
 
 }
 //_________________________________________________
-Float_t  AliTRDv0Info::V0Momentum(AliESDv0 *esdv0) const
+Float_t  AliTRDv0Info::V0Momentum(const AliESDv0 *esdv0) const
 {
   //
   // Reconstructed momentum of V0 mother particle
@@ -355,7 +355,7 @@ Float_t  AliTRDv0Info::V0Momentum(AliESDv0 *esdv0) const
 }
 
 //_________________________________________________
-Double_t AliTRDv0Info::InvMass(Int_t part1, Int_t part2, AliESDv0 *esdv0) const
+Double_t AliTRDv0Info::InvMass(Int_t part1, Int_t part2, const AliESDv0 *esdv0) const
 {
   //
   // Invariant mass of reconstructed V0 mother
@@ -397,7 +397,7 @@ Double_t AliTRDv0Info::InvMass(Int_t part1, Int_t part2, AliESDv0 *esdv0) const
   
 }
 //_________________________________________________
-Float_t AliTRDv0Info::OpenAngle(AliESDv0 *esdv0)
+Float_t AliTRDv0Info::OpenAngle(const AliESDv0 *esdv0)
 {
   //Opening angle between two daughter tracks
   Double_t mn[3] = {0,0,0};
@@ -414,7 +414,7 @@ Float_t AliTRDv0Info::OpenAngle(AliESDv0 *esdv0)
 }
 
 //_________________________________________________
-Float_t AliTRDv0Info::PsiPair(AliESDv0 *esdv0)
+Float_t AliTRDv0Info::PsiPair(const AliESDv0 *esdv0)
 {
   //Angle between daughter momentum plane and plane perpendicular to magnetic field
   Double_t x, y, z;
@@ -603,7 +603,7 @@ Bool_t AliTRDv0Info::GetTPCdEdx()
 
 }
 //_________________________________________________
-Bool_t AliTRDv0Info::TPCdEdxCuts(Int_t part, AliTRDtrackInfo * const track)
+Bool_t AliTRDv0Info::TPCdEdxCuts(Int_t part, const AliTRDtrackInfo * const track)
 {
   //applies cuts on TPC dE/dx according to particle species; cutting lines are drawn shifted to the Bethe-Bloch paremeterization
   if(!fTrackP->GetID()) return 0;
@@ -661,7 +661,7 @@ Bool_t AliTRDv0Info::TPCdEdxCuts(Int_t part, AliTRDtrackInfo * const track)
 
 }
 //_________________________________________________
-Float_t AliTRDv0Info::Radius(AliESDv0 *esdv0)
+Float_t AliTRDv0Info::Radius(const AliESDv0 *esdv0)
 {
   //distance from secondary vertex to primary vertex in x-y plane
   Double_t x, y, z;
@@ -672,7 +672,7 @@ Float_t AliTRDv0Info::Radius(AliESDv0 *esdv0)
 }
 
 //_________________________________________________
-Int_t AliTRDv0Info::Quality(AliESDv0 *const esdv0)
+Int_t AliTRDv0Info::Quality(const AliESDv0 *const esdv0)
 { 
   //
   // Checking track and V0 quality status in order to exclude vertices based on poor information
@@ -741,7 +741,7 @@ Bool_t AliTRDv0Info::V0SignCheck(){
   return kTRUE;
 }
 //___________________________________________________________________
-Bool_t AliTRDv0Info::Armenteros(AliESDv0 *esdv0, Int_t decay){
+Bool_t AliTRDv0Info::Armenteros(const AliESDv0 *esdv0, Int_t decay){
   //
   // computes the Armenteros variables for given V0
   //
index a03ed48..8dc9a9c 100644 (file)
@@ -69,37 +69,37 @@ public:
   virtual ~AliTRDv0Info(){}
   
 
-  Int_t GetQuality(){return fQuality;}
-  Float_t GetDCA(){return fDCA;}
-  Float_t GetPointingAngle(){return fPointingAngle;}
-  Float_t GetOpenAngle(){return fOpenAngle;}
-  Float_t GetPsiPair(){return fPsiPair;}
-  Float_t GetRadius(){return fRadius;}
-  Float_t GetV0Momentum(){return fV0Momentum;}
-  Double_t GetInvMass(Int_t iDecay){return fInvMass[iDecay];}
-  Float_t GetDetPID(Int_t iDaughter, Int_t iDetector, Int_t iSpecies){return fDetPID[iDaughter][iDetector][iSpecies];}
-  Float_t GetComPID(Int_t iDaughter, Int_t iSpecies){return fComPID[iDaughter][iSpecies];}
-  Float_t GetTPCdEdx(Int_t iDaughter){return fTPCdEdx[iDaughter];}
-  Float_t GetChi2ndf(Int_t decay){return fChi2ndf[decay];}
+  Int_t GetQuality() const {return fQuality;}
+  Float_t GetDCA() const {return fDCA;}
+  Float_t GetPointingAngle() const {return fPointingAngle;}
+  Float_t GetOpenAngle() const {return fOpenAngle;}
+  Float_t GetPsiPair() const {return fPsiPair;}
+  Float_t GetRadius() const {return fRadius;}
+  Float_t GetV0Momentum() const {return fV0Momentum;}
+  Double_t GetInvMass(Int_t iDecay) const {return fInvMass[iDecay];}
+  Float_t GetDetPID(Int_t iDaughter, Int_t iDetector, Int_t iSpecies) const {return fDetPID[iDaughter][iDetector][iSpecies];}
+  Float_t GetComPID(Int_t iDaughter, Int_t iSpecies) const {return fComPID[iDaughter][iSpecies];}
+  Float_t GetTPCdEdx(Int_t iDaughter) const {return fTPCdEdx[iDaughter];}
+  Float_t GetChi2ndf(Int_t decay) const {return fChi2ndf[decay];}
   
   //Get Cut values:
   
-  Float_t GetUpDCA(Int_t iDecay){return fUpDCA[iDecay];}
-  Float_t GetUpPointingAngle(Int_t iDecay){return fUpPointingAngle[iDecay];}
-  Float_t GetUpOpenAngle(Int_t iDecay){return fUpOpenAngle[iDecay];}
-  Float_t GetDownOpenAngle(Int_t iDecay){return fDownOpenAngle[iDecay];}
-  Float_t GetUpPsiPair(Int_t iDecay){return fUpPsiPair[iDecay];}
-  Float_t GetDownPsiPair(Int_t iDecay){return fDownPsiPair[iDecay];}
-  Float_t GetUpRadius(Int_t iDecay){return fUpRadius[iDecay];}
-  Float_t GetDownRadius(Int_t iDecay){return fDownRadius[iDecay];}
-  Double_t GetUpInvMass(Int_t iDecay, Int_t iMomentum){return fUpInvMass[iDecay][iMomentum];}
-  Double_t GetDownInvMass(Int_t iDecay){return fDownInvMass[iDecay];}
-  Float_t GetDownTPCPIDneg(Int_t iPart){return fDownTPCPIDneg[iPart];}
-  Float_t GetDownTPCPIDpos(Int_t iPart){return fDownTPCPIDpos[iPart];}
-  Float_t GetDownComPIDneg(Int_t iPart){return fDownComPIDneg[iPart];}
-  Float_t GetDownComPIDpos(Int_t iPart){return fDownComPIDpos[iPart];}
-  Float_t GetDownComPIDnegPart(Int_t iPart){return fDownComPIDnegPart[iPart];}
-  Float_t GetDownComPIDposPart(Int_t iPart){return fDownComPIDposPart[iPart];}
+  Float_t GetUpDCA(Int_t iDecay) const {return fUpDCA[iDecay];}
+  Float_t GetUpPointingAngle(Int_t iDecay) const {return fUpPointingAngle[iDecay];}
+  Float_t GetUpOpenAngle(Int_t iDecay) const {return fUpOpenAngle[iDecay];}
+  Float_t GetDownOpenAngle(Int_t iDecay) const {return fDownOpenAngle[iDecay];}
+  Float_t GetUpPsiPair(Int_t iDecay) const {return fUpPsiPair[iDecay];}
+  Float_t GetDownPsiPair(Int_t iDecay) const {return fDownPsiPair[iDecay];}
+  Float_t GetUpRadius(Int_t iDecay) const {return fUpRadius[iDecay];}
+  Float_t GetDownRadius(Int_t iDecay) const {return fDownRadius[iDecay];}
+  Double_t GetUpInvMass(Int_t iDecay, Int_t iMomentum) const {return fUpInvMass[iDecay][iMomentum];}
+  Double_t GetDownInvMass(Int_t iDecay) const {return fDownInvMass[iDecay];}
+  Float_t GetDownTPCPIDneg(Int_t iPart) const {return fDownTPCPIDneg[iPart];}
+  Float_t GetDownTPCPIDpos(Int_t iPart) const {return fDownTPCPIDpos[iPart];}
+  Float_t GetDownComPIDneg(Int_t iPart) const {return fDownComPIDneg[iPart];}
+  Float_t GetDownComPIDpos(Int_t iPart) const {return fDownComPIDpos[iPart];}
+  Float_t GetDownComPIDnegPart(Int_t iPart) const {return fDownComPIDnegPart[iPart];}
+  Float_t GetDownComPIDposPart(Int_t iPart) const {return fDownComPIDposPart[iPart];}
   
   
   Int_t  GetPID(Int_t ipart, AliTRDtrackInfo *track);
@@ -149,7 +149,7 @@ public:
   void SetDownComPIDposPart(Int_t iPart, Double_t DownComPIDposPart){fDownComPIDposPart[iPart] = DownComPIDposPart;}
  
   
-  void SetV0Info(AliESDv0 *v0);//gets most of the variables below
+  void SetV0Info(const AliESDv0 *v0);//gets most of the variables below
 
 
 
@@ -158,19 +158,19 @@ private:
 
   void GetDetectorPID();//operating with likelihood values of different detectors
   void CombinePID();//Bayesian combination of TPC and TOF likelihoods
-  Bool_t TPCdEdxCuts(Int_t part, AliTRDtrackInfo * const track);//direct cuts on TPC dE/dx
+  Bool_t TPCdEdxCuts(Int_t part, const AliTRDtrackInfo * const track);//direct cuts on TPC dE/dx
 
   Bool_t GetTPCdEdx();//TPC dE/dx values from both tracks
-  Int_t Quality(AliESDv0 * const esdv0);//checks for track/vertex quality criteria
-  Double_t InvMass(Int_t part1, Int_t part2, AliESDv0 *esdv0) const;//invariant mass of mother
-  Float_t PsiPair(AliESDv0 *esdv0);//angle between daughters in plane perpendicular to magnetic field (characteristically around zero for conversions)
-  Float_t OpenAngle(AliESDv0 *esdv0);//opening angle between V0 daughters; close to zero for conversions
-  Float_t Radius(AliESDv0 *esdv0);//distance of secondary to primary vertex in x-y-plane 
+  Int_t Quality(const AliESDv0 * const esdv0);//checks for track/vertex quality criteria
+  Double_t InvMass(Int_t part1, Int_t part2, const AliESDv0 *esdv0) const;//invariant mass of mother
+  Float_t PsiPair(const AliESDv0 *esdv0);//angle between daughters in plane perpendicular to magnetic field (characteristically around zero for conversions)
+  Float_t OpenAngle(const AliESDv0 *esdv0);//opening angle between V0 daughters; close to zero for conversions
+  Float_t Radius(const AliESDv0 *esdv0);//distance of secondary to primary vertex in x-y-plane 
   Float_t DCA() const {return fDCA;}//distance of closest approach between supposed daughter tracks
   Float_t PointingAngle() const {return fPointingAngle;}//pointing angle: between vector from primary to secondary vertex and reconstructed momentum of V0 mother particle
-  Float_t V0Momentum(AliESDv0 *esdv0) const;//reconstructed momentum of V0 mother particle
+  Float_t V0Momentum(const AliESDv0 *esdv0) const;//reconstructed momentum of V0 mother particle
   Bool_t V0SignCheck();//checks if daughters have opposite signs
-  Bool_t  Armenteros(AliESDv0 *esdv0, Int_t species);//the famous Armenteros-Polanski cut
+  Bool_t  Armenteros(const AliESDv0 *esdv0, Int_t species);//the famous Armenteros-Polanski cut
   Double_t KFChi2ndf(Int_t part1, Int_t part2,Int_t decay);//Chi2ndf from KF
   AliKFParticle *CreateMotherParticle(const AliESDtrack *pdaughter, const AliESDtrack *ndaughter, Int_t pspec, Int_t nspec);//Mother Particle from KF