"require ITS refit",
"n clusters TPC",
"n clusters ITS",
- "#Chi^{2}/clusters TPC",
- "#Chi^{2}/clusters ITS",
+ "#Chi^{2}/cluster TPC",
+ "#Chi^{2}/cluster ITS",
"cov 11",
"cov 22",
"cov 33",
"p_{x}",
"p_{y}",
"p_{z}",
- "y",
"eta",
- "trk-to-vtx dca absolute",
+ "y",
+ "trk-to-vtx dca 2D absolute",
"trk-to-vtx dca xy absolute",
"trk-to-vtx dca z absolute",
"SPD cluster requirement",
fCutRequireITSRefit(0),
fCutNsigmaToVertex(0),
fCutSigmaToVertexRequired(0),
- fCutDCAToVertex(0),
fCutDCAToVertexXY(0),
fCutDCAToVertexZ(0),
+ fCutDCAToVertex2D(0),
fPMin(0),
fPMax(0),
fPtMin(0),
SetRequireITSRefit();
SetAcceptKingDaughters();
SetMaxNsigmaToVertex();
- SetMaxDCAToVertex();
SetMaxDCAToVertexXY();
SetMaxDCAToVertexZ();
+ SetDCAToVertex2D();
SetPRange();
SetPtRange();
SetPxRange();
fCutRequireITSRefit(0),
fCutNsigmaToVertex(0),
fCutSigmaToVertexRequired(0),
- fCutDCAToVertex(0),
fCutDCAToVertexXY(0),
fCutDCAToVertexZ(0),
+ fCutDCAToVertex2D(0),
fPMin(0),
fPMax(0),
fPtMin(0),
fCutNsigmaToVertex = 0;
fCutSigmaToVertexRequired = 0;
- fCutDCAToVertex = 0;
fCutDCAToVertexXY = 0;
fCutDCAToVertexZ = 0;
-
+ fCutDCAToVertex2D = 0;
+
fPMin = 0;
fPMax = 0;
fPtMin = 0;
target.fCutNsigmaToVertex = fCutNsigmaToVertex;
target.fCutSigmaToVertexRequired = fCutSigmaToVertexRequired;
- target.fCutDCAToVertex = fCutDCAToVertex;
target.fCutDCAToVertexXY = fCutDCAToVertexXY;
target.fCutDCAToVertexZ = fCutDCAToVertexZ;
+ target.fCutDCAToVertex2D = fCutDCAToVertex2D;
target.fPMin = fPMin;
target.fPMax = fPMax;
Float_t dcaToVertexXY = b[0];
Float_t dcaToVertexZ = b[1];
- Float_t dcaToVertex = TMath::Sqrt(dcaToVertexXY*dcaToVertexXY + dcaToVertexZ*dcaToVertexZ);
+ Float_t dcaToVertex = -1;
+
+ if (fCutDCAToVertex2D)
+ {
+ dcaToVertex = TMath::Sqrt(dcaToVertexXY*dcaToVertexXY/fCutDCAToVertexXY/fCutDCAToVertexXY + dcaToVertexZ*dcaToVertexZ/fCutDCAToVertexZ/fCutDCAToVertexZ);
+ }
+ else
+ dcaToVertex = TMath::Sqrt(dcaToVertexXY*dcaToVertexXY + dcaToVertexZ*dcaToVertexZ);
+
// getting the kinematic variables of the track
// (assuming the mass is known)
cuts[19] = kTRUE;
if((y < fRapMin) || (y > fRapMax))
cuts[20] = kTRUE;
- if (dcaToVertex > fCutDCAToVertex)
+ if (fCutDCAToVertex2D && dcaToVertex > 1)
cuts[21] = kTRUE;
- if (TMath::Abs(dcaToVertexXY) > fCutDCAToVertexXY)
+ if (!fCutDCAToVertex2D && TMath::Abs(dcaToVertexXY) > fCutDCAToVertexXY)
cuts[22] = kTRUE;
- if (TMath::Abs(dcaToVertexZ) > fCutDCAToVertexZ)
+ if (!fCutDCAToVertex2D && TMath::Abs(dcaToVertexZ) > fCutDCAToVertexZ)
cuts[23] = kTRUE;
for (Int_t i = 0; i < 3; i++)
fhNSigmaToVertex[i] = new TH1F("nSigmaToVertex","",500,0,10);
- fhPt[i] = new TH1F("pt" ,"p_{T} distribution;p_{T} (GeV/c)",500,0.0,100.0);
+ fhPt[i] = new TH1F("pt" ,"p_{T} distribution;p_{T} (GeV/c)", 800, 0.0, 10.0);
fhEta[i] = new TH1F("eta" ,"#eta distribution;#eta",40,-2.0,2.0);
fhNClustersITS[i]->SetTitle("n ITS clusters");
fhC44[i]->SetTitle("cov 44 : #sigma_{tan(#theta_{dip})}^{2}");
fhC55[i]->SetTitle("cov 55 : #sigma_{1/p_{T}}^{2} [(c/GeV)^2]");
- fhDXY[i]->SetTitle("transverse impact parameter");
- fhDZ[i]->SetTitle("longitudinal impact parameter");
- fhDXYDZ[i]->SetTitle("absolute impact parameter;sqrt(dXY**2 + dZ**2) in cm");
- fhDXYvsDZ[i]->SetXTitle("longitudinal impact parameter");
- fhDXYvsDZ[i]->SetYTitle("transverse impact parameter");
+ fhDXY[i]->SetXTitle("transverse impact parameter (cm)");
+ fhDZ[i]->SetXTitle("longitudinal impact parameter (cm)");
+ fhDXYDZ[i]->SetTitle("absolute impact parameter;sqrt(dXY**2 + dZ**2) (cm)");
+ fhDXYvsDZ[i]->SetXTitle("longitudinal impact parameter (cm)");
+ fhDXYvsDZ[i]->SetYTitle("transverse impact parameter (cm)");
- fhDXYNormalized[i]->SetTitle("normalized trans impact par");
- fhDZNormalized[i]->SetTitle("normalized long impact par");
- fhDXYvsDZNormalized[i]->SetTitle("normalized long impact par");
- fhDXYvsDZNormalized[i]->SetYTitle("normalized trans impact par");
+ fhDXYNormalized[i]->SetTitle("normalized trans impact par (n#sigma)");
+ fhDZNormalized[i]->SetTitle("normalized long impact par (n#sigma)");
+ fhDXYvsDZNormalized[i]->SetTitle("normalized long impact par (n#sigma)");
+ fhDXYvsDZNormalized[i]->SetYTitle("normalized trans impact par (n#sigma)");
fhNSigmaToVertex[i]->SetTitle("n #sigma to vertex");
fhNClustersITS[i]->SetLineColor(color); fhNClustersITS[i]->SetLineWidth(2);
{
// deprecated, will be removed in next release
- Printf("WARNING: AliESDtrackCuts::SetDCAToVertex is DEPRECATED and will be removed in the next release. Please use SetMaxDCAToVertex instead. Renaming was done to improve code readability.");
-
SetMaxDCAToVertex(dist);
}
+void AliESDtrackCuts::SetMaxDCAToVertex(Float_t dist)
+{
+ // deprecated, will be removed in next release
+
+ Printf("WARNING: AliESDtrackCuts::SetMaxDCAToVertex is DEPRECATED and will be removed in the next release. Please use SetDCAToVertexXY(dist) and SetDCAToVertexZ(dist) and SetDCAToVertex2D(kTRUE)");
+
+ SetDCAToVertexXY(dist);
+ SetDCAToVertexZ(dist);
+ SetDCAToVertex2D(kTRUE);
+}
+
void AliESDtrackCuts::SetDCAToVertexXY(Float_t dist)
{
// deprecated, will be removed in next release
// track to vertex cut setters
void SetMaxNsigmaToVertex(Float_t sigma=1e10) {fCutNsigmaToVertex = sigma; SetRequireSigmaToVertex(kTRUE);}
void SetRequireSigmaToVertex(Bool_t b=kTRUE ) {fCutSigmaToVertexRequired = b;}
- void SetMaxDCAToVertex(Float_t dist=1e10) {fCutDCAToVertex = dist;}
void SetMaxDCAToVertexXY(Float_t dist=1e10) {fCutDCAToVertexXY = dist;}
void SetMaxDCAToVertexZ(Float_t dist=1e10) {fCutDCAToVertexZ = dist;}
+ void SetDCAToVertex2D(Bool_t b=kFALSE) {fCutDCAToVertex2D = b;}
// deprecated, will be removed in next release
+ void SetMaxDCAToVertex(Float_t dist=1e10);
void SetMinNsigmaToVertex(Float_t sigma=1e10);
void SetDCAToVertex(Float_t dist=1e10);
void SetDCAToVertexXY(Float_t dist=1e10);
void GetMaxCovDiagonalElements(Float_t& c1, Float_t& c2, Float_t& c3, Float_t& c4, Float_t& c5)
{c1 = fCutMaxC11; c2 = fCutMaxC22; c3 = fCutMaxC33; c4 = fCutMaxC44; c5 = fCutMaxC55;}
Float_t GetMaxNsigmaToVertex() const { return fCutNsigmaToVertex;}
- Float_t GetMaxDCAToVertex() const { return fCutDCAToVertex;}
Float_t GetMaxDCAToVertexXY() const { return fCutDCAToVertexXY;}
Float_t GetMaxDCAToVertexZ() const { return fCutDCAToVertexZ;}
+ Bool_t GetDCAToVertex2D() const { return fCutDCAToVertex2D;}
Bool_t GetRequireSigmaToVertex( ) const { return fCutSigmaToVertexRequired;}
void GetPRange(Float_t& r1, Float_t& r2) {r1=fPMin; r2=fPMax;}
// track to vertex cut
Float_t fCutNsigmaToVertex; // max number of estimated sigma from track-to-vertex
Bool_t fCutSigmaToVertexRequired; // cut track if sigma from track-to-vertex could not be calculated
- Float_t fCutDCAToVertex; // track-to-vertex cut in absolute distance
Float_t fCutDCAToVertexXY; // track-to-vertex cut in absolute distance in xy-plane
Float_t fCutDCAToVertexZ; // track-to-vertex cut in absolute distance in z-plane
+ Bool_t fCutDCAToVertex2D; // if true a 2D DCA cut using fCutDCAToVertexXY and fCutDCAToVertexZ is made. Tracks are accepted if sqrt((DCAXY / fCutDCAToVertexXY)^2 + (DCAZ / fCutDCAToVertexZ)^2) < 1
// esd kinematics cuts
Float_t fPMin, fPMax; // definition of the range of the P
TH1F* fhDXY[2]; //->
TH1F* fhDZ[2]; //->
- TH1F* fhDXYDZ[2]; //-> absolute distance sqrt(dxy**2 + dz**2) to vertex
+ TH1F* fhDXYDZ[2]; //-> absolute distance sqrt(dxy**2 + dz**2) to vertex; if 2D cut is set, normalized to given values
TH2F* fhDXYvsDZ[2]; //->
TH1F* fhDXYNormalized[2]; //->
TH1F* fhCutStatistics; //-> statistics of what cuts the tracks did not survive
TH2F* fhCutCorrelation; //-> 2d statistics plot
- ClassDef(AliESDtrackCuts, 3)
+ ClassDef(AliESDtrackCuts, 4)
};