#include <TStyle.h>
#include <TSystem.h>
#include <TFile.h>
+#include <TRandom.h>
//------ AliRoot headers ------
#include "AliGausCorr.h"
#include "AliTracker.h"
#include "AliTPCtrack.h"
#include "AliTPCtrackerParam.h"
#include "AliTrackReference.h"
+#include "AliESDtrack.h"
//-----------------------------
Double_t RegFunc(Double_t *x,Double_t *par) {
//-----------------------------------------------------------------------------
AliTPCtrackerParam::AliTPCtrackerParam(Int_t kcoll, Double_t kBz,
- const char* evfoldname):
- fEvFolderName(evfoldname) {
+ const char* evfoldname):TObject(),
+ fEvFolderName(evfoldname),
+ fBz(kBz),
+ fColl(kcoll),
+ fSelAndSmear(kTRUE),
+ fDBfileName(""),
+ fTrack(),
+ fCovTree(0),
+ fDBgrid(0),
+ fDBgridPi(),
+ fDBgridKa(),
+ fDBgridPr(),
+ fDBgridEl(),
+ fDBgridMu(),
+ fEff(0),
+ fEffPi(),
+ fEffKa(),
+ fEffPr(),
+ fEffEl(),
+ fEffMu(),
+ fPulls(0),
+ fRegPar(0),
+ fRegParPi(),
+ fRegParKa(),
+ fRegParPr(),
+ fRegParEl(),
+ fRegParMu(),
+ fdEdxMean(0),
+ fdEdxMeanPi(),
+ fdEdxMeanKa(),
+ fdEdxMeanPr(),
+ fdEdxMeanEl(),
+ fdEdxMeanMu(),
+ fdEdxRMS(0),
+ fdEdxRMSPi(),
+ fdEdxRMSKa(),
+ fdEdxRMSPr(),
+ fdEdxRMSEl(),
+ fdEdxRMSMu()
+{
//-----------------------------------------------------------------------------
// This is the class conctructor
//-----------------------------------------------------------------------------
- fBz = kBz; // value of the z component of L3 field (Tesla)
- fColl = kcoll; // collision code (0: PbPb6000; 1: pp)
- fSelAndSmear = kTRUE; // by default selection and smearing are done
+ // fBz = kBz; // value of the z component of L3 field (Tesla)
+ // fColl = kcoll; // collision code (0: PbPb6000; 1: pp)
+ // fSelAndSmear = kTRUE; // by default selection and smearing are done
if(fBz!=0.4 && fBz!=0.5) {
Fatal("AliTPCtrackerParam","AliTPCtrackerParam::AliTPCtrackerParam: Invalid field!\n Available: 0.4 or 0.5");
//-----------------------------------------------------------------------------
AliTPCtrackerParam::~AliTPCtrackerParam() {}
//____________________________________________________________________________
-AliTPCtrackerParam::AliTPCtrackerParam( const AliTPCtrackerParam& p):TObject(p)
+AliTPCtrackerParam::AliTPCtrackerParam( const AliTPCtrackerParam& p)
+ :TObject(p),
+ fEvFolderName(""),
+ fBz(0.),
+ fColl(0),
+ fSelAndSmear(0),
+ fDBfileName(""),
+ fTrack(),
+ fCovTree(0),
+ fDBgrid(0),
+ fDBgridPi(),
+ fDBgridKa(),
+ fDBgridPr(),
+ fDBgridEl(),
+ fDBgridMu(),
+ fEff(0),
+ fEffPi(),
+ fEffKa(),
+ fEffPr(),
+ fEffEl(),
+ fEffMu(),
+ fPulls(0),
+ fRegPar(0),
+ fRegParPi(),
+ fRegParKa(),
+ fRegParPr(),
+ fRegParEl(),
+ fRegParMu(),
+ fdEdxMean(0),
+ fdEdxMeanPi(),
+ fdEdxMeanKa(),
+ fdEdxMeanPr(),
+ fdEdxMeanEl(),
+ fdEdxMeanMu(),
+ fdEdxRMS(0),
+ fdEdxRMSPi(),
+ fdEdxRMSKa(),
+ fdEdxRMSPr(),
+ fdEdxRMSEl(),
+ fdEdxRMSMu()
{
// dummy copy constructor
}
AliTPCtrackerParam::AliTPCseedGeant::AliTPCseedGeant(
Double_t x,Double_t y,Double_t z,
Double_t px,Double_t py,Double_t pz,
- Int_t lab) {
+ Int_t lab)
+ :TObject(),
+ fXg(x),
+ fYg(y),
+ fZg(z),
+ fPx(px),
+ fPy(py),
+ fPz(pz),
+ fAlpha(0.),
+ fLabel(lab),
+ fSector(0)
+
+{
//----------------------------------------------------------------------------
// Constructor of the geant seeds
//----------------------------------------------------------------------------
- fXg = x;
- fYg = y;
- fZg = z;
- fPx = px;
- fPy = py;
- fPz = pz;
- fLabel = lab;
+
Double_t a = TMath::ATan2(y,x)*180./TMath::Pi();
if(a<0) a += 360.;
fSector = (Int_t)(a/20.);
return 0;
}
//-----------------------------------------------------------------------------
-Int_t AliTPCtrackerParam::BuildTPCtracks(AliESD *event) {
+Int_t AliTPCtrackerParam::BuildTPCtracks(AliESDEvent *event) {
//-----------------------------------------------------------------------------
// This function creates the TPC parameterized tracks and writes them
// as AliESDtrack objects in the ESD event
Int_t nParticles,nSeeds,arrentr;
//Int_t nSel=0,nAcc=0;
- Int_t evt=event->GetEventNumber();
+ Int_t evt=event->GetEventNumberInFile(); // This is most likely NOT the event number you'd like to use. It has nothing to do with the 'real' event number.
tracks=0;
//-----------------------------------------------------------------------------
Double_t xref = s->GetXL();
Double_t xx[5],cc[15];
- cc[0]=cc[2]=cc[5]=cc[9]=cc[14]=10.;
+ cc[0]=cc[2]=cc[5]=cc[9]=cc[14]=0.;
cc[1]=cc[3]=cc[4]=cc[6]=cc[7]=cc[8]=cc[10]=cc[11]=cc[12]=cc[13]=0.;
// Magnetic field
cmptrk.eta = part->Eta();
cmptrk.r = TMath::Sqrt(part->Vx()*part->Vx()+part->Vy()*part->Vy());
- cmptrk.pt = 1/TMath::Abs(geatrack->Get1Pt());
+ cmptrk.pt = geatrack->Pt();
cmptrk.cosl = TMath::Cos(TMath::ATan(geatrack->GetTgl()));
cmptrk.p = cmptrk.pt/cmptrk.cosl;
cmptrk.dP2 = kaltrack->GetSnp()-geatrack->GetSnp();
cmptrk.dP3 = kaltrack->GetTgl()-geatrack->GetTgl();
cmptrk.dP4 = kaltrack->GetC()-geatrack->GetC();
- cmptrk.dpt = 1/kaltrack->Get1Pt()-1/geatrack->Get1Pt();
+ cmptrk.dpt = 1/kaltrack->GetSigned1Pt()-1/geatrack->GetSigned1Pt();
// get covariance matrix
// beware: lines 3 and 4 in the matrix are inverted!
// get P and Cosl from track
cosl = TMath::Cos(TMath::ATan(fTrack.GetTgl()));
- p = 1./TMath::Abs(fTrack.Get1Pt())/cosl;
+ p = fTrack.Pt()/cosl;
trkKine[0] = p;