28 #include <TClonesArray.h> 30 #include <TObjArray.h> 39 #include "AliESDEvent.h" 40 #include "AliESDtrack.h" 41 #include "AliESDtrackCuts.h" 71 using PWG::EMCAL::AliEmcalESDHybridTrackCuts;
77 AliDebugStream(1) <<
"Generate std hybrid track cuts" << std::endl;
78 AliEmcalESDTrackCutsGenerator::AddHybridTrackCuts(
this, period);
82 AliEmcalESDTrackCutsGenerator::AddTPCOnlyTrackCuts(
this, period);
86 AddTrackCuts(AliESDtrackCuts::GetStandardITSPureSATrackCuts2010(kTRUE, kFALSE));
91 AliDebugStream(1) <<
"Generate 2010 hybrid track cuts wNoRefit" << std::endl;
92 auto hybridcuts =
new AliEmcalESDHybridTrackCuts(
"hybrid_2010_wNoRefit", AliEmcalESDHybridTrackCuts::kDef2010);
93 hybridcuts->SetUseNoITSrefitTracks(kTRUE);
100 AliDebugStream(1) <<
"Generate 2010 hybrid track cuts woNoRefit" << std::endl;
101 auto hybridcuts =
new AliEmcalESDHybridTrackCuts(
"hybrid_2010_woNoRefit", AliEmcalESDHybridTrackCuts::kDef2010);
102 hybridcuts->SetUseNoITSrefitTracks(kFALSE);
109 AliDebugStream(1) <<
"Generate 2011 hybrid track cuts wNoRefit" << std::endl;
110 auto hybridcuts =
new AliEmcalESDHybridTrackCuts(
"hybrid_2011_wNoRefit", AliEmcalESDHybridTrackCuts::kDef2011);
111 hybridcuts->SetUseNoITSrefitTracks(kTRUE);
118 AliDebugStream(1) <<
"Generate 2011 hybrid track cuts woNoRefit" << std::endl;
119 auto hybridcuts =
new AliEmcalESDHybridTrackCuts(
"hybrid_2011_woNoRefit", AliEmcalESDHybridTrackCuts::kDef2011);
120 hybridcuts->SetUseNoITSrefitTracks(kFALSE);
132 AliDebugStream(2) <<
"No cut array " << std::endl;
135 AliESDtrack *esdt =
dynamic_cast<AliESDtrack *
>(trk);
139 esdt =
dynamic_cast<AliESDtrack*
>(picoTrack->
GetTrack());
142 AliError(
"Neither Pico nor ESD track");
147 TBits trackbitmap(64);
148 trackbitmap.ResetAllBits();
150 AliDebugStream(2) <<
"Found cut array with " <<
fListOfCuts->GetEntries() <<
" cuts\n" << std::endl;
151 TClonesArray selectionStatus(
"PWG::EMCAL::AliEmcalTrackSelResultPtr",
fListOfCuts->GetEntries());
152 selectionStatus.SetOwner(kTRUE);
154 AliDebugStream(3) <<
"executing nect cut: " <<
static_cast<AliVCuts *
>(
static_cast<AliEmcalManagedObject *
>(cutIter)->
GetObject())->GetName() << std::endl;
157 if(selresult) trackbitmap.SetBitNumber(cutcounter);
174 if(ptr->
GetObject()->IsA() == AliESDtrackCuts::Class()){
Interface for virtual track selection.
TObject * GetObject(const TCollection *parent, const TString &name, const TClass *cls=0, Bool_t verbose=true)
TObject * GetObject()
Providing access to managed object.
TObjArray * fListOfCuts
List of track cut objects.
Structure containing the result of a given track selection step.
virtual AliEmcalTrackSelResultPtr IsSelected(TObject *o)=0
void SetOwner(bool owner=true)
Specifying ownership over object.
void SetSelectionResult(Bool_t selectionResult)
AliEmcalTrackSelectionESD()
Dummy constructor.
Namespace for EMCAL framework classes and task.
Hybrid tracks using the 2011 definition including NoITSrefit tracks (ESD-only)
Hybrid tracks using the 2010 definition including NoITSrefit tracks (ESD-only)
Hybrid tracks using the 2010 definition excluding NoITSrefit tracks (ESD-only)
Hybrid tracks using the 2011 definition excluding NoITSrefit tracks (ESD-only)
Declaration of class AliEmcalESDTrackCutsGenerator.
Namespace for PWG framework classes.
void AddTrackCuts(AliVCuts *cuts)
Add new track cuts to the list of cuts.
AliVTrack * GetTrack() const
virtual void SaveQAObjects(TList *outputList)
Bool_t fSelectionModeAny
Accept track if any of the cuts is fulfilled.
ETrackFilterType_t
Pre-defined track filters.
virtual void GenerateTrackCuts(ETrackFilterType_t type, const char *period="")
Automatically generates track cuts depending on the requested type of filtering.
Smart pointer implementation for objects inheriting from TObject.
Interface for a cut class returning selection status and user information.
virtual PWG::EMCAL::AliEmcalTrackSelResultPtr IsTrackAccepted(AliVTrack *const trk)
Check whether track is accepted.
Implementation of virtual track selection for ESDs.