#include "TFile.h"
#include "TProfile.h"
#include "TCanvas.h"
-#include "TLegend.h"
#include "TTreeStream.h"
-#include <iostream>
+#include "Riostream.h"
#include <sstream>
using namespace std;
ExportTrackPoints(event); // export track points for external calibration
const Int_t kMaxTracks =6;
const Int_t kminCl = 40;
- AliESDfriend *ESDfriend=static_cast<AliESDfriend*>(event->FindListObject("AliESDfriend"));
- if (!ESDfriend) return;
+ AliESDfriend *eESDfriend=static_cast<AliESDfriend*>(event->FindListObject("AliESDfriend"));
+ if (!eESDfriend) return;
Int_t ntracks=event->GetNumberOfTracks();
Float_t dca0[2];
Float_t dca1[2];
TObject *calibObject=0;
AliTPCseed *seed0 = 0;
//
- friendTrack = (AliESDfriendTrack *)ESDfriend->GetTrack(i0);;
+ friendTrack = (AliESDfriendTrack *)eESDfriend->GetTrack(i0);;
for (Int_t l=0;(calibObject=friendTrack->GetCalibObject(l));++l) {
if ((seed0=dynamic_cast<AliTPCseed*>(calibObject))) break;
}
TObject *calibObject=0;
AliTPCseed *seed0 = 0,*seed1=0;
//
- friendTrack = (AliESDfriendTrack *)ESDfriend->GetTrack(i0);;
+ friendTrack = (AliESDfriendTrack *)eESDfriend->GetTrack(i0);;
for (Int_t l=0;(calibObject=friendTrack->GetCalibObject(l));++l) {
if ((seed0=dynamic_cast<AliTPCseed*>(calibObject))) break;
}
- friendTrack = (AliESDfriendTrack *)ESDfriend->GetTrack(i1);;
+ friendTrack = (AliESDfriendTrack *)eESDfriend->GetTrack(i1);;
for (Int_t l=0;(calibObject=friendTrack->GetCalibObject(l));++l) {
if ((seed1=dynamic_cast<AliTPCseed*>(calibObject))) break;
}
// Export track points for alignment - calibration
// export space points for pairs of tracks if possible
//
- AliESDfriend *ESDfriend=static_cast<AliESDfriend*>(event->FindListObject("AliESDfriend"));
- if (!ESDfriend) return;
+ AliESDfriend *eESDfriend=static_cast<AliESDfriend*>(event->FindListObject("AliESDfriend"));
+ if (!eESDfriend) return;
Int_t ntracks=event->GetNumberOfTracks();
Int_t kMaxTracks=4; // maximal number of tracks for cosmic pairs
Int_t kMinVertexTracks=5; // maximal number of tracks for vertex mesurement
TObject *calibObject=0;
AliTPCseed *seed0 = 0,*seed1=0;
//
- friendTrack = (AliESDfriendTrack *)ESDfriend->GetTrack(index0);;
+ friendTrack = (AliESDfriendTrack *)eESDfriend->GetTrack(index0);;
for (Int_t l=0;(calibObject=friendTrack->GetCalibObject(l));++l) {
if ((seed0=dynamic_cast<AliTPCseed*>(calibObject))) break;
}
if (index1>0){
- friendTrack = (AliESDfriendTrack *)ESDfriend->GetTrack(index1);;
+ friendTrack = (AliESDfriendTrack *)eESDfriend->GetTrack(index1);;
for (Int_t l=0;(calibObject=friendTrack->GetCalibObject(l));++l) {
if ((seed1=dynamic_cast<AliTPCseed*>(calibObject))) break;
}
Int_t AliTPCcalibAlign::AcceptTracklet(const AliExternalTrackParam &p1,
- const AliExternalTrackParam &p2){
+ const AliExternalTrackParam &p2) const
+{
//
// Accept pair of tracklets?
}
-Int_t AliTPCcalibAlign::AcceptTracklet(const Double_t *t1, const Double_t *t2){
+Int_t AliTPCcalibAlign::AcceptTracklet(const Double_t *t1, const Double_t *t2) const
+{
//
// accept tracklet -
// dist cut + 6 sigma cut
void AliTPCcalibAlign::Process12(const Double_t *t1,
const Double_t *t2,
- TLinearFitter *fitter) {
+ TLinearFitter *fitter) const
+{
// x2 = a00*x1 + a01*y1 + a02*z1 + a03
// y2 = a10*x1 + a11*y1 + a12*z1 + a13
// z2 = a20*x1 + a21*y1 + a22*z1 + a23
fitter->AddPoint(p,value,sdzdx);
}
-void AliTPCcalibAlign::Process9(Double_t *t1,
- Double_t *t2,
- TLinearFitter *fitter) {
+void AliTPCcalibAlign::Process9(const Double_t * const t1,
+ const Double_t * const t2,
+ TLinearFitter *fitter) const
+{
// x2 = a00*x1 + a01*y1 + a02*z1 + a03
// y2 = a10*x1 + a11*y1 + a12*z1 + a13
// z2 = a20*x1 + a21*y1 + a22*z1 + a23
// a20 a21 a21 a23 p[4] p[5] 1 p[8]
- Double_t &x1=t1[0], &y1=t1[1], &z1=t1[3], &dydx1=t1[2], &dzdx1=t1[4];
- Double_t /*&x2=t2[0],*/ &y2=t2[1], &z2=t2[3], &dydx2=t2[2], &dzdx2=t2[4];
+ const Double_t &x1=t1[0], &y1=t1[1], &z1=t1[3], &dydx1=t1[2], &dzdx1=t1[4];
+ const Double_t /*&x2=t2[0],*/ &y2=t2[1], &z2=t2[3], &dydx2=t2[2], &dzdx2=t2[4];
//
Double_t sy = TMath::Sqrt(t1[6]*t1[6]+t2[6]*t2[6]);
Double_t sdydx = TMath::Sqrt(t1[7]*t1[7]+t2[7]*t2[7]);
fitter->AddPoint(p,value,sdzdx);
}
-void AliTPCcalibAlign::Process6(Double_t *t1,
- Double_t *t2,
- TLinearFitter *fitter) {
+void AliTPCcalibAlign::Process6(const Double_t *const t1,
+ const Double_t *const t2,
+ TLinearFitter *fitter) const
+{
// x2 = 1 *x1 +-a01*y1 + 0 +a03
// y2 = a01*x1 + 1 *y1 + 0 +a13
// z2 = a20*x1 + a21*y1 + 1 *z1 +a23
// a10 a11 a12 a13 ==> p[0] 1 0 p[4]
// a20 a21 a21 a23 p[1] p[2] 1 p[5]
- Double_t &x1=t1[0], &y1=t1[1], &z1=t1[3], &dydx1=t1[2], &dzdx1=t1[4];
- Double_t /*&x2=t2[0],*/ &y2=t2[1], &z2=t2[3], &dydx2=t2[2], &dzdx2=t2[4];
+ const Double_t &x1=t1[0], &y1=t1[1], &z1=t1[3], &dydx1=t1[2], &dzdx1=t1[4];
+ const Double_t /*&x2=t2[0],*/ &y2=t2[1], &z2=t2[3], &dydx2=t2[2], &dzdx2=t2[4];
//
Double_t sy = TMath::Sqrt(t1[6]*t1[6]+t2[6]*t2[6]);
//_____________________________________________________________________
-Long64_t AliTPCcalibAlign::Merge(TCollection* list) {
+Long64_t AliTPCcalibAlign::Merge(TCollection* const list) {
//
// merge function
//
}
}
-void AliTPCcalibAlign::UpdateSectorKalman(Int_t sector, Int_t quadrant0, Int_t quadrant1, TMatrixD *p0, TMatrixD *c0, TMatrixD *p1, TMatrixD *c1 ){
+void AliTPCcalibAlign::UpdateSectorKalman(Int_t sector, Int_t quadrant0, Int_t quadrant1, TMatrixD *const p0, TMatrixD *const c0, TMatrixD *const p1, TMatrixD *const c1 ){
//
//
// tracks are refitted at sector middle
////
////
-#include "TObject.h"
-#include "TObjArray.h"
-#include "TLinearFitter.h"
-#include "AliTPCcalibBase.h"
-#include "TH1.h"
-
-class AliExternalTrackParam;
-class AliExternalComparison;
-class AliTPCseed;
+class TFile;
class TGraphErrors;
-class TTree;
+class TH1;
class THnSparse;
+#include <TLinearFitter.h>
+#include <TMatrixDfwd.h>
+class TObjArray;
+class TTree;
+
+#include "AliTPCcalibBase.h"
+class AliExternalComparison;
+class AliExternalTrackParam;
class AliTPCPointCorrection;
-class TFile;
+class AliTPCseed;
class AliTPCcalibAlign:public AliTPCcalibBase {
public:
virtual void Process(AliTPCseed */*track*/){ return ;}
virtual void Analyze();
virtual void Terminate();
- virtual Long64_t Merge(TCollection* list);
+ virtual Long64_t Merge(TCollection* const list);
void ExportTrackPoints(AliESDEvent *event);
//
//
Int_t s1,Int_t s2);
void UpdateAlignSector(const AliTPCseed * seed,Int_t isec);
- inline Int_t GetIndex(Int_t s1,Int_t s2){return 72*s1+s2;}
+ Int_t GetIndex(Int_t s1,Int_t s2) const {return 72*s1+s2;}
//
inline const TMatrixD * GetTransformation(Int_t s1,Int_t s2, Int_t fitType);
//
Bool_t GetTransformation9(Int_t s1,Int_t s2,TMatrixD &a);
Bool_t GetTransformation6(Int_t s1,Int_t s2,TMatrixD &a);
Int_t AcceptTracklet(const AliExternalTrackParam &tp1,
- const AliExternalTrackParam &tp2);
+ const AliExternalTrackParam &tp2) const;
Int_t AcceptTracklet(const Double_t *t1,
- const Double_t *t2);
+ const Double_t *t2) const;
void ProcessDiff(const AliExternalTrackParam &t1,
const AliExternalTrackParam &t2,
// Bool_t GetTransformationCovar9(Int_t s1,Int_t s2,TMatrixD &a, Bool_t norm=kFALSE);
// Bool_t GetTransformationCovar6(Int_t s1,Int_t s2,TMatrixD &a, Bool_t norm=kFALSE);
void Add(AliTPCcalibAlign * align);
- Int_t *GetPoints() {return fPoints;}
- void Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
+ const Int_t *GetPoints() const {return fPoints;}
+ void Process(AliESDtrack *const track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
TLinearFitter* GetOrMakeFitter12(Int_t s1,Int_t s2);
TLinearFitter* GetOrMakeFitter9(Int_t s1,Int_t s2);
TLinearFitter* GetOrMakeFitter6(Int_t s1,Int_t s2);
void Process12(const Double_t *t1, const Double_t *t2,
- TLinearFitter *fitter);
- void Process9(Double_t *t1, Double_t *t2, TLinearFitter *fitter);
- void Process6(Double_t *t1, Double_t *t2, TLinearFitter *fitter);
+ TLinearFitter *fitter) const;
+ void Process9(const Double_t *const t1, const Double_t *const t2, TLinearFitter *fitter) const;
+ void Process6(const Double_t *const t1, const Double_t *const t2, TLinearFitter *fitter) const;
void ProcessTree(TTree * tree, AliExternalComparison *comp=0);
void GlobalAlign6(Int_t minPoints, Float_t sysError, Int_t niter);
//
Double_t Correct(Int_t type, Int_t value, Int_t s1, Int_t s2, Double_t x, Double_t y, Double_t z, Double_t phi,Double_t theta);
static Double_t SCorrect(Int_t type, Int_t value, Int_t s1, Int_t s2, Double_t x, Double_t y, Double_t z, Double_t phi,Double_t theta){return Instance()->Correct(type,value,s1,s2,x,y,z,phi,theta);}
static AliTPCcalibAlign* Instance();
- void SetInstance(AliTPCcalibAlign*param){fgInstance = param;}
+ void SetInstance(AliTPCcalibAlign* const param){fgInstance = param;}
static void Constrain1Pt(AliExternalTrackParam &t1, const AliExternalTrackParam &t2, Bool_t noField);
void SetNoField(Bool_t noField){ fNoField=noField;}
// Kalman fileter for sectors
//
void MakeSectorKalman();
- void UpdateSectorKalman(Int_t sector, Int_t quadrant0, Int_t quadrant1, TMatrixD *p0, TMatrixD *c0, TMatrixD *p1, TMatrixD *c1);
+ void UpdateSectorKalman(Int_t sector, Int_t quadrant0, Int_t quadrant1, TMatrixD *const p0, TMatrixD *const c0, TMatrixD *const p1, TMatrixD *const c1);
void UpdateSectorKalman(TMatrixD &par0, TMatrixD &cov0, TMatrixD ¶1, TMatrixD &cov1);
Double_t GetCorrectionSector(Int_t coord, Int_t sector, Double_t lx, Double_t ly, Double_t lz);
static Double_t SGetCorrectionSector(Int_t coord, Int_t sector, Double_t lx, Double_t ly, Double_t lz);
const Double_t *t2,
Int_t s1,Int_t s2);
+protected:
THnSparse *fClusterDelta[6]; //clusters residuals
-
TObjArray fDphiHistArray; // array of residual histograms phi -kPhi
TObjArray fDthetaHistArray; // array of residual histograms theta -kTheta
TObjArray fDyHistArray; // array of residual histograms y -kY
#include "AliTPCcalibCosmic.h"
#include "TTreeStream.h"
#include "AliTPCTracklet.h"
-#include "AliESDcosmic.h"
+//#include "AliESDcosmic.h"
ClassImp(AliTPCcalibCosmic)
}
-void AliTPCcalibCosmic::FillHistoPerformance(AliExternalTrackParam *par0, AliExternalTrackParam *par1, AliExternalTrackParam *inner0, AliExternalTrackParam */*inner1*/, AliTPCseed *seed0, AliTPCseed *seed1, AliExternalTrackParam *param0Combined ){
+void AliTPCcalibCosmic::FillHistoPerformance(const AliExternalTrackParam *par0, const AliExternalTrackParam *par1, const AliExternalTrackParam *inner0, const AliExternalTrackParam */*inner1*/, AliTPCseed *seed0, AliTPCseed *seed1, const AliExternalTrackParam *param0Combined ){
//
// par0,par1 - parameter of tracks at DCA 0
// inner0,inner1 - parameter of tracks at the TPC entrance
}
-void AliTPCcalibCosmic::MaterialBudgetDump(AliExternalTrackParam *par0, AliExternalTrackParam *par1, AliExternalTrackParam *inner0, AliExternalTrackParam *inner1, AliTPCseed *seed0, AliTPCseed *seed1, AliExternalTrackParam *param0Combined, AliExternalTrackParam *param1Combined){
+void AliTPCcalibCosmic::MaterialBudgetDump(AliExternalTrackParam *const par0, AliExternalTrackParam *const par1, const AliExternalTrackParam *inner0, const AliExternalTrackParam *inner1, AliTPCseed *const seed0, AliTPCseed *const seed1, AliExternalTrackParam *const param0Combined, AliExternalTrackParam *const param1Combined){
//
// matrial budget AOD dump
//
-Long64_t AliTPCcalibCosmic::Merge(TCollection *li) {
+Long64_t AliTPCcalibCosmic::Merge(TCollection *const li) {
TIterator* iter = li->MakeIterator();
AliTPCcalibCosmic* cal = 0;
funcDoubleGaus->SetParameters(hist->GetEntries()*0.75,hist->GetMean()/1.3,hist->GetMean()*0.10,
hist->GetEntries()*0.25,hist->GetMean()*1.3,hist->GetMean()*0.10);
hist->Fit(funcDoubleGaus);
- Double_t MIPvalue = TMath::Min(funcDoubleGaus->GetParameter(1),funcDoubleGaus->GetParameter(4));
+ Double_t aMIPvalue = TMath::Min(funcDoubleGaus->GetParameter(1),funcDoubleGaus->GetParameter(4));
delete funcDoubleGaus;
- return MIPvalue;
+ return aMIPvalue;
}
}
-void AliTPCcalibCosmic::BinLogX(THnSparse *h, Int_t axisDim) {
+void AliTPCcalibCosmic::BinLogX(THnSparse *const h, Int_t axisDim) {
// Method for the correct logarithmic binning of histograms
Double_t from = axis->GetXmin();
Double_t to = axis->GetXmax();
- Double_t *new_bins = new Double_t[bins + 1];
+ Double_t *newBins = new Double_t[bins + 1];
- new_bins[0] = from;
+ newBins[0] = from;
Double_t factor = pow(to/from, 1./bins);
for (int i = 1; i <= bins; i++) {
- new_bins[i] = factor * new_bins[i-1];
+ newBins[i] = factor * newBins[i-1];
}
- axis->Set(bins, new_bins);
- delete new_bins;
+ axis->Set(bins, newBins);
+ delete newBins;
}
-void AliTPCcalibCosmic::BinLogX(TH1 *h) {
+void AliTPCcalibCosmic::BinLogX(TH1 *const h) {
// Method for the correct logarithmic binning of histograms
Double_t from = axis->GetXmin();
Double_t to = axis->GetXmax();
- Double_t *new_bins = new Double_t[bins + 1];
+ Double_t *newBins = new Double_t[bins + 1];
- new_bins[0] = from;
+ newBins[0] = from;
Double_t factor = pow(to/from, 1./bins);
for (int i = 1; i <= bins; i++) {
- new_bins[i] = factor * new_bins[i-1];
+ newBins[i] = factor * newBins[i-1];
}
- axis->Set(bins, new_bins);
- delete new_bins;
+ axis->Set(bins, newBins);
+ delete newBins;
}
* See cxx source for full Copyright notice */
#include "AliTPCcalibBase.h"
-#include "AliTPCCalPad.h"
-#include "TH2F.h"
+class TH2F;
class TH1F;
class TList;
class AliESDEvent;
class AliESDtrack;
class THnSparse;
-#include "TTreeStream.h"
-
-
class AliTPCcalibCosmic:public AliTPCcalibBase {
public:
AliTPCcalibCosmic();
virtual ~AliTPCcalibCosmic();
virtual void Process(AliESDEvent *event);
- virtual Long64_t Merge(TCollection *li);
+ virtual Long64_t Merge(TCollection *const li);
virtual void Analyze();
void Add(const AliTPCcalibCosmic* cosmic);
//
void UpdateTrack(AliExternalTrackParam &track0, const AliExternalTrackParam &track1);
//
- void FillHistoPerformance(AliExternalTrackParam *par0, AliExternalTrackParam *par1, AliExternalTrackParam *inner0, AliExternalTrackParam *inner1, AliTPCseed *seed0, AliTPCseed *seed1, AliExternalTrackParam *param0Combined);
- void MaterialBudgetDump(AliExternalTrackParam *par0, AliExternalTrackParam *par1, AliExternalTrackParam *inner0, AliExternalTrackParam *inner1, AliTPCseed *seed0, AliTPCseed *seed1, AliExternalTrackParam *param0Combined, AliExternalTrackParam *param1Combined);
+ void FillHistoPerformance(const AliExternalTrackParam *par0, const AliExternalTrackParam *par1, const AliExternalTrackParam *inner0, const AliExternalTrackParam *inner1, AliTPCseed *seed0, AliTPCseed *seed1, const AliExternalTrackParam *param0Combined);
+ void MaterialBudgetDump(AliExternalTrackParam *const par0, AliExternalTrackParam *const par1, const AliExternalTrackParam *inner0, const AliExternalTrackParam *inner1, AliTPCseed *const seed0, AliTPCseed *const seed1, AliExternalTrackParam *const param0Combined, AliExternalTrackParam *const param1Combined);
//
//
Double_t GetMIPvalue()const {return fMIPvalue;};
//
- static void BinLogX(TH1 * h); // method for correct histogram binning
- static void BinLogX(THnSparse * h, Int_t axisDim); // method for correct histogram binning
+ static void BinLogX(TH1 *const h); // method for correct histogram binning
+ static void BinLogX(THnSparse *const h, Int_t axisDim); // method for correct histogram binning
- void Process(AliESDtrack *track, Int_t runNo=-1) {AliTPCcalibBase::Process(track,runNo);};
- void Process(AliTPCseed *track) {return AliTPCcalibBase::Process(track);}
-
+ void Process(AliESDtrack *const track, Int_t runNo=-1) {AliTPCcalibBase::Process(track,runNo);};
+ void Process(AliTPCseed *const track) {return AliTPCcalibBase::Process(track);}
+
+protected:
//
// Performance histograms
//