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" 38 fESDtrackCuts(0), fESDtrackComplementaryCuts(0)
62 if(!esdevent)
return kFALSE;
64 if(esdevent->GetPrimaryVertex()->GetNContributors() > 0)
69 if(esdevent->GetPrimaryVertex()->GetNContributors() < 1)
72 if(esdevent->GetPrimaryVertexSPD()->GetNContributors() > 0)
77 if(esdevent->GetPrimaryVertexSPD()->GetNContributors() < 1)
79 AliDebug(1,Form(
"Null number of contributors from bad vertex type:: %s",
80 esdevent->GetPrimaryVertex()->GetName()));
93 if ( !
fMC )
return 0x0 ;
97 AliGenEventHeader * eventHeader =
fMC->GenEventHeader();
101 AliGenCocktailEventHeader *cocktail =
dynamic_cast<AliGenCocktailEventHeader *
>(eventHeader);
103 if ( !cocktail )
return 0x0 ;
105 TList *genHeaders = cocktail->GetHeaders();
107 Int_t nGenerators = genHeaders->GetEntries();
109 for(
Int_t igen = 0; igen < nGenerators; igen++)
111 AliGenEventHeader * eventHeader2 = (AliGenEventHeader*)genHeaders->At(igen) ;
113 TString name = eventHeader2->GetName();
117 return eventHeader2 ;
141 AliESDtrack* esdTrack =
dynamic_cast<AliESDtrack*
> (track);
143 if ( !esdTrack )
return kFALSE;
145 track->GetPxPyPz(pTrack) ;
149 const AliExternalTrackParam* constrainParam = esdTrack->GetConstrainedParam();
155 if( !constrainParam )
return kFALSE;
157 esdTrack->Set(constrainParam->GetX(),constrainParam->GetAlpha(),constrainParam->GetParameter(),constrainParam->GetCovariance());
158 esdTrack->GetConstrainedPxPyPz(pTrack);
162 if (
fSelectSPDHitTracks && !esdTrack->HasPointOnITSLayer(0) && !esdTrack->HasPointOnITSLayer(1) )
170 if ( !constrainParam )
return kFALSE;
172 esdTrack->Set(constrainParam->GetX(),constrainParam->GetAlpha(),constrainParam->GetParameter(),constrainParam->GetCovariance());
173 esdTrack->GetConstrainedPxPyPz(pTrack);
209 if ( strcmp(esd->GetName(),
"AliMixedEvent") == 0 )
211 AliMultiEventInputHandler* multiEH =
dynamic_cast<AliMultiEventInputHandler*
>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
214 if (multiEH->GetFormat() == 0 )
221 AliFatal(
"MultiEventHandler is NULL");
225 if (strcmp(esd->GetName(),
"AliESDEvent") == 0)
232 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.
AliGenEventHeader * fGenEventHeader
! Event header
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