19 #include "AliAODEvent.h"
20 #include "AliMultiEventInputHandler.h"
21 #include "AliAnalysisManager.h"
22 #include "AliMixedEvent.h"
23 #include "AliESDEvent.h"
24 #include "AliMCEvent.h"
25 #include "AliESDtrackCuts.h"
26 #include "AliGenCocktailEventHeader.h"
27 #include "AliGenPythiaEventHeader.h"
39 fESDtrackCuts(0), fESDtrackComplementaryCuts(0)
63 if(!esdevent)
return kFALSE;
65 if(esdevent->GetPrimaryVertex()->GetNContributors() > 0)
70 if(esdevent->GetPrimaryVertex()->GetNContributors() < 1)
73 if(esdevent->GetPrimaryVertexSPD()->GetNContributors() > 0)
78 if(esdevent->GetPrimaryVertexSPD()->GetNContributors() < 1)
92 if ( !
fMC )
return 0x0 ;
94 AliGenEventHeader * eventHeader =
fMC->GenEventHeader();
98 AliGenCocktailEventHeader *cocktail =
dynamic_cast<AliGenCocktailEventHeader *
>(eventHeader);
100 if ( !cocktail )
return 0x0 ;
102 TList *genHeaders = cocktail->GetHeaders();
104 Int_t nGenerators = genHeaders->GetEntries();
106 for(
Int_t igen = 0; igen < nGenerators; igen++)
108 AliGenEventHeader * eventHeader2 = (AliGenEventHeader*)genHeaders->At(igen) ;
110 TString name = eventHeader2->GetName();
114 return eventHeader2 ;
128 fESDtrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
137 AliESDtrack* esdTrack =
dynamic_cast<AliESDtrack*
> (track);
139 if(!esdTrack)
return kFALSE;
141 const AliExternalTrackParam* constrainParam = esdTrack->GetConstrainedParam();
145 track->GetPxPyPz(pTrack) ;
149 if( !constrainParam )
return kFALSE;
151 esdTrack->Set(constrainParam->GetX(),constrainParam->GetAlpha(),constrainParam->GetParameter(),constrainParam->GetCovariance());
152 esdTrack->GetConstrainedPxPyPz(pTrack);
156 if(
fSelectSPDHitTracks && !esdTrack->HasPointOnITSLayer(0) && !esdTrack->HasPointOnITSLayer(1))
164 if( !constrainParam )
return kFALSE;
166 esdTrack->Set(constrainParam->GetX(),constrainParam->GetAlpha(),constrainParam->GetParameter(),constrainParam->GetCovariance());
167 esdTrack->GetConstrainedPxPyPz(pTrack);
204 if ( strcmp(esd->GetName(),
"AliMixedEvent") == 0 )
206 AliMultiEventInputHandler* multiEH =
dynamic_cast<AliMultiEventInputHandler*
>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
209 if (multiEH->GetFormat() == 0 )
216 AliFatal(
"MultiEventHandler is NULL");
220 if (strcmp(esd->GetName(),
"AliESDEvent") == 0)
227 AliFatal(Form(
"STOP ::Wrong reader, here only ESDs. Input name: %s != AliESDEvent",esd->GetName()));
AliESDtrackCuts * fESDtrackCuts
Track cut machinery.
Bool_t fConstrainTrack
Constrain Track to vertex.
virtual void SetMC(AliMCEvent *const mc)
AliVEvent * fInputEvent
! pointer to esd or aod input.
virtual void SetInputEvent(AliVEvent *input)
void SetTrackCuts(AliESDtrackCuts *cuts)
Set Track cuts.
void SetInputOutputMCEvent(AliVEvent *esd, AliAODEvent *aod, AliMCEvent *mc)
Connect the data pointers.
Bool_t fSelectSPDHitTracks
Ensure that track hits SPD layers.
void SetTrackComplementaryCuts(AliESDtrackCuts *cuts)
Set Track cuts for complementary tracks (hybrids).
virtual void SetOutputEvent(AliAODEvent *aod)
Base class for event, clusters and tracks filtering and preparation for the analysis.
Class for event, clusters and tracks filtering and preparation for the ESD analysis.
void Init()
Init reader. Method to be called in AliAnaCaloTrackCorrMaker.
Bool_t SelectTrack(AliVTrack *track, Double_t *pTrack)
virtual ~AliCaloTrackESDReader()
Default destructor.
AliCaloTrackESDReader()
Default constructor. Initialize parameters.
AliESDtrackCuts * fESDtrackComplementaryCuts
Track cut machinery for complementary cuts for hybrids.
AliMCEvent * fMC
! Monte Carlo Event Handler.
TString fMCGenerEventHeaderToAccept
Accept events that contain at least this event header name.
AliGenEventHeader * GetGenEventHeader() const
Int_t fDataType
Select MC: Kinematics, Data: ESD/AOD, MCData: Both.
Bool_t CheckForPrimaryVertex() const