+}
+
+//______________________________________________________
+Int_t AliHFEpidTRD::IsSelected2D(const AliHFEpidObject *track, AliHFEpidQAmanager *pidqa) const {
+ //
+ // 2D TRD PID
+ //
+ //
+ //
+ AliDebug(2, "Applying TRD PID");
+ if(!fkPIDResponse){
+ AliDebug(2, "Cannot process track");
+ return 0;
+ }
+
+ AliHFEpidObject::AnalysisType_t anatype = track->IsESDanalysis() ? AliHFEpidObject::kESDanalysis: AliHFEpidObject::kAODanalysis;
+ Double_t p = GetP(track->GetRecTrack(), anatype);
+ if(p < fMinP){
+ AliDebug(2, Form("Track momentum below %f", fMinP));
+ return 0;
+ }
+
+ if(pidqa) pidqa->ProcessTrack(track, AliHFEpid::kTRDpid, AliHFEdetPIDqa::kBeforePID);
+
+ if(fCutNTracklets > 0){
+ AliDebug(1, Form("Number of tracklets cut applied: %d\n", fCutNTracklets));
+ Int_t ntracklets = track->GetRecTrack() ? track->GetRecTrack()->GetTRDntrackletsPID() : 0;
+ if(TestBit(kExactTrackletCut)){
+ AliDebug(1, Form("Exact cut applied: %d tracklets found\n", ntracklets));
+ if(ntracklets != fCutNTracklets) return 0;
+ } else {
+ AliDebug(1, Form("Greater Equal cut applied: %d tracklets found\n", ntracklets));
+ if(ntracklets < fCutNTracklets) return 0;
+ }
+ }
+ AliDebug(1,"Track selected\n");
+
+ Int_t centralitybin = track->IsPbPb() ? track->GetCentrality() : -2;
+ Float_t fCentralityLimitsdefault[12]= {0.,5.,10., 20., 30., 40., 50., 60.,70.,80., 90., 100.};
+ Float_t centrality=-1;
+ if(centralitybin>=0) centrality=fCentralityLimitsdefault[centralitybin]+1;
+
+ if(fkPIDResponse->IdentifiedAsElectronTRD(track->GetRecTrack(),fElectronEfficiency,centrality,AliTRDPIDResponse::kLQ2D)){
+ AliDebug(2, Form("Electron effi: %f %i %i %f\n", fElectronEfficiency,track->GetCentrality(),centralitybin,centrality));
+ if(pidqa) pidqa->ProcessTrack(track, AliHFEpid::kTRDpid, AliHFEdetPIDqa::kAfterPID);
+ return 11;
+ } else return 211;
+
+
+