fNCellsFromEMCALBorder(0), fNoEMCALBorderAtEta0(kTRUE),
fRejectExoticCluster(kFALSE), fRejectExoticCells(kFALSE),
fExoticCellFraction(0), fExoticCellDiffTime(0), fExoticCellMinAmplitude(0),
- fPIDUtils(), fAODFilterMask(0),
+ fPIDUtils(), fAODFilterMask(0), fAODHybridTracks(0),
fMatchedTrackIndex(0x0), fMatchedClusterIndex(0x0),
fResidualEta(0x0), fResidualPhi(0x0), fCutEtaPhiSum(kFALSE), fCutEtaPhiSeparate(kFALSE),
fCutR(0), fCutEta(0), fCutPhi(0),
fExoticCellFraction(reco.fExoticCellFraction), fExoticCellDiffTime(reco.fExoticCellDiffTime),
fExoticCellMinAmplitude(reco.fExoticCellMinAmplitude),
fPIDUtils(reco.fPIDUtils), fAODFilterMask(reco.fAODFilterMask),
+ fAODHybridTracks(reco.fAODHybridTracks),
fMatchedTrackIndex( reco.fMatchedTrackIndex? new TArrayI(*reco.fMatchedTrackIndex):0x0),
fMatchedClusterIndex(reco.fMatchedClusterIndex?new TArrayI(*reco.fMatchedClusterIndex):0x0),
fResidualEta( reco.fResidualEta? new TArrayF(*reco.fResidualEta):0x0),
fPIDUtils = reco.fPIDUtils;
fAODFilterMask = reco.fAODFilterMask;
+ fAODHybridTracks = reco.fAODHybridTracks;
fCutEtaPhiSum = reco.fCutEtaPhiSum;
fCutEtaPhiSeparate = reco.fCutEtaPhiSeparate;
fExoticCellDiffTime = 1e6;
fExoticCellMinAmplitude = 0.5;
- fAODFilterMask = 32;
+ fAODFilterMask = 32;
+ fAODHybridTracks = kFALSE;
fCutEtaPhiSum = kTRUE;
fCutEtaPhiSeparate = kFALSE;
{
aodTrack = aodevent->GetTrack(itr);
if(!aodTrack) continue;
- if(!aodTrack->TestFilterMask(fAODFilterMask)) continue; //Select AOD tracks that fulfill GetStandardITSTPCTrackCuts2010()
+
+ //Check mask if not hybrid
+ if(!fAODHybridTracks && !aodTrack->TestFilterMask(fAODFilterMask) ) continue; //Select AOD tracks that fulfill GetStandardITSTPCTrackCuts2010()
+
+ //Check hybrid
+ if( fAODHybridTracks && !aodTrack->IsHybridGlobalConstrainedGlobal()) continue ;
+
if(aodTrack->Pt()<fCutMinTrackPt) continue;
+
Double_t phi = aodTrack->Phi()*TMath::RadToDeg();
if(TMath::Abs(aodTrack->Eta())>0.8 || phi <= 20 || phi >= 240 ) continue;
Double_t pos[3],mom[3];
aodTrack->GetXYZ(pos);
aodTrack->GetPxPyPz(mom);
AliDebug(5,Form("aod track: i=%d | pos=(%5.4f,%5.4f,%5.4f) | mom=(%5.4f,%5.4f,%5.4f) | charge=%d\n",itr,pos[0],pos[1],pos[2],mom[0],mom[1],mom[2],aodTrack->Charge()));
+
trackParam= new AliExternalTrackParam(pos,mom,cv,aodTrack->Charge());
}
InitTrackCuts() ; }
Int_t GetTrackCutsType() const { return fTrackCutsType; }
+ void SetAODTrackFilterMask( UInt_t mask) {fAODFilterMask = mask ; }
+ void SwitchOnAODHybridTracksMatch() {fAODHybridTracks = kTRUE ; }
+ void SwitchOffAODHybridTracksMatch() {fAODHybridTracks = kFALSE ; }
+
// track quality cut setters
void SetMinTrackPt(Double_t pt=0) { fCutMinTrackPt = pt ; }
void SetMinNClustersTPC(Int_t min=-1) { fCutMinNClusterTPC = min ; }
//Track matching
UInt_t fAODFilterMask; // Filter mask to select AOD tracks. Refer to $ALICE_ROOT/ANALYSIS/macros/AddTaskESDFilter.C
+ Bool_t fAODHybridTracks; // Match with hybrid
+
TArrayI * fMatchedTrackIndex; // Array that stores indexes of matched tracks
TArrayI * fMatchedClusterIndex; // Array that stores indexes of matched clusters
TArrayF * fResidualEta; // Array that stores the residual eta
Bool_t fCutRequireITSpureSA; // ITS pure standalone tracks
- ClassDef(AliEMCALRecoUtils, 19)
+ ClassDef(AliEMCALRecoUtils, 20)
};