19 #include "AliAODInputHandler.h"
20 #include "AliMultiEventInputHandler.h"
21 #include "AliAnalysisManager.h"
22 #include "AliMixedEvent.h"
23 #include "AliAODEvent.h"
35 fSelectHybridTracks(0), fSelectPrimaryTracks(0),
36 fTrackFilterMask(0), fTrackFilterMaskComplementary(0),
37 fSelectFractionTPCSharedClusters(0), fCutTPCSharedClustersFraction(0)
58 if(!aodevent)
return kFALSE;
60 if (aodevent->GetPrimaryVertex() != NULL)
62 if(aodevent->GetPrimaryVertex()->GetNContributors() > 0)
68 if(aodevent->GetPrimaryVertexSPD() != NULL)
70 if(aodevent->GetPrimaryVertexSPD()->GetNContributors() > 0)
76 AliWarning(Form(
"Number of contributors from bad vertex type:: %s",
77 aodevent->GetPrimaryVertex()->GetName()));
98 for(
Int_t i = 0; i < 4; i++)
100 TString names[] = {
"FilterBit_Hybrid",
"SPDHit",
"SharedCluster",
"Primary"};
103 Form(
"AOD CTS Cut %d, %s",i,names[i].
Data()),
122 const Int_t buffersize = 255;
123 char onePar[buffersize] ;
125 snprintf(onePar,buffersize,
"AOD Track: Hybrid %d, Filter bit %d, Complementary bit %d, Primary %d; ",
135 return new TObjString(parList) ;
144 TClonesArray * particles = NULL ;
147 if(aod) particles = (TClonesArray*) aod->FindListObject(
"mcparticles");
157 AliAODMCHeader *mch = NULL;
160 if(aod) mch =
dynamic_cast<AliAODMCHeader*
>(aod->FindListObject(
"mcHeader"));
179 Int_t id = track->GetID();
181 if(
id < 0 )
id = TMath::Abs(
id) - 1;
192 AliAODTrack *aodtrack = dynamic_cast <AliAODTrack*>(track);
194 if(!aodtrack)
return kFALSE;
196 AliDebug(2,Form(
"AOD track type: %d (primary %d), hybrid? %d",
197 aodtrack->GetType(),AliAODTrack::kPrimary,
198 aodtrack->IsHybridGlobalConstrainedGlobal()));
203 if (!aodtrack->IsHybridGlobalConstrainedGlobal())
return kFALSE ;
214 if (!accept && !acceptcomplement)
return kFALSE ;
223 if(!aodtrack->HasPointOnITSLayer(0) && !aodtrack->HasPointOnITSLayer(1))
return kFALSE ;
234 if ( ncls> 0 ) frac = nclsS / ncls ;
248 if ( aodtrack->GetType()!= AliAODTrack::kPrimary )
250 AliDebug(2,
"\t Remove not primary track");
255 AliDebug(2,
"\t accepted track!");
259 track->GetPxPyPz(pTrack) ;
276 if ( strcmp(input->GetName(),
"AliMixedEvent") == 0 )
278 AliMultiEventInputHandler* multiEH =
dynamic_cast<AliMultiEventInputHandler*
>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
280 if (multiEH->GetFormat() == 0 )
283 }
else if (multiEH->GetFormat() == 1)
290 AliFatal(
"MultiEventHandler is NULL");
294 if (strcmp(input->GetName(),
"AliESDEvent") == 0)
297 }
else if (strcmp(input->GetName(),
"AliAODEvent") == 0)
310 AliAODInputHandler* aodIH =
dynamic_cast<AliAODInputHandler*
>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
312 if (aodIH && aodIH->GetMergeEvents())
327 AliFatal(Form(
"STOP : Wrong data format: %s",input->GetName()));
Bool_t fReadAODMCParticles
Access kine information from filtered AOD MC particles.
virtual void SetMC(AliMCEvent *const mc)
Bool_t fSelectHybridTracks
Select CTS tracks of type hybrid.
AliVEvent * fOrgInputEvent
! Original input event, not from filtering
AliVEvent * fInputEvent
! pointer to esd or aod input.
ULong_t fTrackFilterMaskComplementary
Complementary Track selection bit, for AODs in case hybrid option selected.
virtual void SetInputEvent(AliVEvent *input)
Bool_t SelectTrack(AliVTrack *track, Double_t *pTrack)
Select AOD track using the AOD filter bits or predefined selection methods.
TList * fOutputContainer
! Output container with cut control histograms.
Int_t fEnergyHistogramNbins
Binning of the control histograms, min and max window.
Bool_t fFillCTS
Use data from CTS.
AliAODMCHeader * GetAODMCHeader() const
ULong_t fTrackFilterMask
Track selection bit, for AODs (any difference with track status?)
Class for event, clusters and tracks filtering and preparation for the AOD analysis.
Float_t fEnergyHistogramLimit[2]
Binning of the control histograms, number of bins.
Bool_t fSelectSPDHitTracks
Ensure that track hits SPD layers.
virtual void SetOutputEvent(AliAODEvent *aod)
Bool_t fSelectPrimaryTracks
Select CTS tracks of type primary.
TList * GetCreateControlHistograms()
virtual TObjString * GetListOfParameters()
Save parameters used for analysis in a string.
Base class for event, clusters and tracks filtering and preparation for the analysis.
TClonesArray * GetAODMCParticles() const
Float_t fCutTPCSharedClustersFraction
Fraction of TPC shared clusters to be accepted.
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
TObjString * GetListOfParameters()
Save parameters used for analysis in a string.
void SetInputOutputMCEvent(AliVEvent *esd, AliAODEvent *aod, AliMCEvent *mc)
Int_t GetTrackID(AliVTrack *track)
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
Bool_t fReadStack
Access kine information from stack.
Bool_t fSelectFractionTPCSharedClusters
Accept only TPC tracks with over a given fraction of shared clusters.
AliCaloTrackAODReader()
Default constructor. Initialize parameters.
Bool_t CheckForPrimaryVertex() const
virtual TList * GetCreateControlHistograms()
Int_t fDataType
Select MC: Kinematics, Data: ESD/AOD, MCData: Both.
TH1F * fhCTSAODTrackCutsPt[4]
! control histogram on the different CTS tracks selection cuts, pT