fMaxChi2clusterTPC(0.),
fMinClusterRatioTPC(0.),
fSigmaToVtx(0.),
- fMaxImpactParamR(0.),
- fMaxImpactParamZ(0.),
fHistQA(0x0),
fCutList(0x0)
{
fMaxChi2clusterTPC(c.fMaxChi2clusterTPC),
fMinClusterRatioTPC(c.fMinClusterRatioTPC),
fSigmaToVtx(c.fSigmaToVtx),
- fMaxImpactParamR(c.fMaxImpactParamR),
- fMaxImpactParamZ(c.fMaxImpactParamZ),
fHistQA(0x0),
fCutList(0x0)
{
if(IsRequireITSpixel()){
hfecuts->SetRequireITSpixel(AliHFEextraCuts::ITSPixel_t(fCutITSPixel));
}
- if(IsRequireMaxImpactParam()){
- hfecuts->SetMaxImpactParamR(fMaxImpactParamR);
- hfecuts->SetMaxImpactParamZ(fMaxImpactParamZ);
- }
+/* if(IsRequireDCAToVertex()){
+ hfecuts->SetMaxImpactParamR(fDCAtoVtx[0]);
+ hfecuts->SetMaxImpactParamZ(fDCAtoVtx[1]);
+ }*/
if(fMinTrackletsTRD) hfecuts->SetMinTrackletsTRD(fMinTrackletsTRD);
if(fMinClusterRatioTPC > 0.) hfecuts->SetClusterRatioTPC(fMinClusterRatioTPC);
if(IsInDebugMode()) hfecuts->SetQAOn(fHistQA);
class AliHFEcuts : public TObject{
enum{
kDebugMode = BIT(14)
- };
+ };
typedef enum{
kPrimary = 0,
- kProductionVertex = 1,
- kSigmaToVertex = 2,
- kDCAToVertex = 3,
- kITSPixel = 4,
- kMaxImpactParam = 5
- } Require_t;
+ kProductionVertex = 1,
+ kSigmaToVertex = 2,
+ kDCAToVertex = 3,
+ kITSPixel = 4,
+ kMaxImpactParam = 5
+ } Require_t;
public:
typedef enum{
kStepMCGenerated = 0,
- kStepMCInAcceptance = 1,
- kStepRecKine = 2,
- kStepRecPrim = 3,
- kStepHFEcuts = 4
- } CutStep_t;
+ kStepMCInAcceptance = 1,
+ kStepRecKine = 2,
+ kStepRecPrim = 3,
+ kStepHFEcuts = 4
+ } CutStep_t;
static const Int_t kNcutSteps;
void SetRequireDCAToVertex() { SETBIT(fRequirements, kDCAToVertex); };
void SetRequireIsPrimary() { SETBIT(fRequirements, kPrimary); };
void SetRequireITSPixel() { SETBIT(fRequirements, kITSPixel); }
- void SetRequireMaxImpactParam() { SETBIT(fRequirements, kMaxImpactParam); };
- void SetRequireProdVetrex() { SETBIT(fRequirements, kProductionVertex); };
+ void SetRequireProdVertex() { SETBIT(fRequirements, kProductionVertex); };
void SetRequireSigmaToVertex() { SETBIT(fRequirements, kSigmaToVertex); };
private:
Double_t fMaxChi2clusterTPC; // Max Chi2 per TPC cluster
Double_t fMinClusterRatioTPC; // Min. Ratio findable / found TPC clusters
Double_t fSigmaToVtx; // Sigma To Vertex
- Double_t fMaxImpactParamR; // Max. Impact Parameter in Radial Direction
- Double_t fMaxImpactParamZ; // Max. Impact Parameter in Z Direction
TList *fHistQA; //! QA Histograms
TObjArray *fCutList; //! List of cut objects(Correction Framework Manager)
//__________________________________________________________________
void AliHFEcuts::SetProductionVertex(Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax){
// Set the production vertex constraint
- SetRequireProdVetrex();
+ SetRequireProdVertex();
fProdVtx[0] = xmin;
fProdVtx[1] = xmax;
fProdVtx[2] = ymin;
//__________________________________________________________________
void AliHFEcuts::SetMaxImpactParam(Double_t radial, Double_t z){
- SetRequireMaxImpactParam();
- fMaxImpactParamR = radial;
- fMaxImpactParamZ = z;
+ SetRequireDCAToVertex();
+ fDCAtoVtx[0] = radial;
+ fDCAtoVtx[1] = z;
}
//__________________________________________________________________
//
// Standard Cuts defined by the HFE Group
//
- SetRequireProdVetrex();
+ SetRequireProdVertex();
fProdVtx[0] = -1;
fProdVtx[1] = 1;
fProdVtx[2] = -1;
fMinClusterRatioTPC = 0.6;
fPtRange[0] = 0.1;
fPtRange[1] = 20.;
- fSigmaToVtx = 4.;
- SetRequireMaxImpactParam();
- fMaxImpactParamR = 3.;
- fMaxImpactParamZ = 12.;
}
#endif
//
AliESDtrack *track = dynamic_cast<AliESDtrack*>(_track);
-
- if(!AliESDtrack::kTOFout) return AliPID::kUnknown;
+ Long_t status = 0;
+ status = track->GetStatus();
+
+ if(!(status & AliESDtrack::kTOFout)) return AliPID::kUnknown;
(dynamic_cast<TH1F *>(fQAList->At(kHistTOFpidFlags)))->Fill(0.);
- Double_t ItrackL = track->GetIntegratedLength();
- Double_t TOFsignal = track->GetTOFsignal();
- Double_t TOF = TOFsignal;
-
- if(ItrackL > 0)
+ Double_t tItrackL = track->GetIntegratedLength();
+ Double_t tTOFsignal = track->GetTOFsignal();
+
+ if(tItrackL > 0)
(dynamic_cast<TH1F *>(fQAList->At(kHistTOFpidFlags)))->Fill(1.);
- if(TOFsignal > 0)
+ if(tTOFsignal > 0)
(dynamic_cast<TH1F *>(fQAList->At(kHistTOFpidFlags)))->Fill(2.);
- if(ItrackL <=0 || TOFsignal <=0) return AliPID::kUnknown;
+ if(tItrackL <=0 || tTOFsignal <=0) return AliPID::kUnknown;
(dynamic_cast<TH1F *>(fQAList->At(kHistTOFpidFlags)))->Fill(3.);
- (dynamic_cast<TH1F *>(fQAList->At(kHistTOFsignal)))->Fill(TOFsignal/1000.);
- (dynamic_cast<TH1F *>(fQAList->At(kHistTOFlength)))->Fill(ItrackL);
+ (dynamic_cast<TH1F *>(fQAList->At(kHistTOFsignal)))->Fill(tTOFsignal/1000.);
+ (dynamic_cast<TH1F *>(fQAList->At(kHistTOFlength)))->Fill(tItrackL);
// get the TOF pid probabilities
- Double_t ESDpid[5] = {0., 0., 0., 0., 0.};
- Float_t TOFpid_sum = 0.;
+ Double_t tESDpid[5] = {0., 0., 0., 0., 0.};
+ Float_t tTOFpid_sum = 0.;
// find the largest PID probability
- track->GetTOFpid(ESDpid);
- Double_t MAXpid = 0.;
- Int_t MAXindex = -1;
+ track->GetTOFpid(tESDpid);
+ Double_t tMAXpid = 0.;
+ Int_t tMAXindex = -1;
for(Int_t i=0; i<5; ++i){
- TOFpid_sum += ESDpid[i];
- if(ESDpid[i] > MAXpid){
- MAXpid = ESDpid[i];
- MAXindex = i;
+ tTOFpid_sum += tESDpid[i];
+ if(tESDpid[i] > tMAXpid){
+ tMAXpid = tESDpid[i];
+ tMAXindex = i;
}
}
- Double_t P = track->GetOuterParam()->P();
- Double_t beta = (ItrackL/100.)/(TMath::C()*(TOFsignal/1e12));
+ Double_t p = track->GetOuterParam()->P();
+ Double_t beta = (tItrackL/100.)/(TMath::C()*(tTOFsignal/1e12));
- if(TMath::Abs(TOFpid_sum - 1) > 0.01) return AliPID::kUnknown;
+ if(TMath::Abs(tTOFpid_sum - 1) > 0.01) return AliPID::kUnknown;
else{
// should be the same as AliPID flags
- (dynamic_cast<TH2F *>(fQAList->At(kHistTOFpid_0+MAXindex)))->Fill(beta, P);
- (dynamic_cast<TH2F *>(fQAList->At(kHistTOFpid_beta_v_P)))->Fill(beta, P);
- return MAXindex;
+ (dynamic_cast<TH2F *>(fQAList->At(kHistTOFpid_0+tMAXindex)))->Fill(beta, p);
+ (dynamic_cast<TH2F *>(fQAList->At(kHistTOFpid_beta_v_P)))->Fill(beta, p);
+ return tMAXindex;
}
}