fUseITSSAforNtuples(kFALSE),
fUsePhysSel(kFALSE),
fESD(0),
+fMinMult(0),
+fMaxMult(1000000),
fOutput(0),
fHistNEvents(0),
fHistNEventsFrac(0),
fUseITSSAforNtuples(kFALSE),
fUsePhysSel(kFALSE),
fESD(0),
+fMinMult(0),
+fMaxMult(1000000),
fOutput(0),
fHistNEvents(0),
fHistNEventsFrac(0),
return;
}
+ // only events in the requested multiplicity range
+ if(!IsSelectedCentrality()) return;
fHistNEvents->Fill(-1);
return iITSflag;
}
+//---------------------------------------------------------------------------
+Bool_t AliAnalysisTaskITSTrackingCheck::IsSelectedCentrality() const
+{
+ //
+ // check if events is in the required multiplicity range
+ //
+
+ const AliMultiplicity *alimult = fESD->GetMultiplicity();
+ Int_t ntrklets=1;
+ if(alimult) {
+ ntrklets = alimult->GetNumberOfTracklets();
+ }
+
+ if(ntrklets<fMinMult || ntrklets>fMaxMult) return kFALSE;
+
+ return kTRUE;
+}
void SetUseITSSAforNtuples(Bool_t flag=kTRUE) { fUseITSSAforNtuples=flag; }
void SetESDtrackCutsTPC(AliESDtrackCuts *c) { fESDtrackCutsTPC=c; }
void SetESDtrackCutsITSTPC(AliESDtrackCuts *c) { fESDtrackCutsITSTPC=c; }
-
+ void SetMultiplicityRange(Int_t min,Int_t max) { fMinMult=min; fMaxMult=max; }
+
protected:
Bool_t fReadMC; // read Monte Carlo
Bool_t fReadRPLabels; // read MC labels from ITS.RecPoints
Bool_t fUseITSSAforNtuples; // fill expert ntuples with ITSSA tracks
Bool_t fUsePhysSel; // use AliPhysicsSelection
AliESDEvent *fESD; // ESD object
+ Int_t fMinMult; // minimum multiplicity
+ Int_t fMaxMult; // maximum multiplicity
TList *fOutput; //! list send on output slot 0
TH1F *fHistNEvents; //! output hist
TH1F *fHistNEventsFrac; //! output hist
Double_t ParticleImpParMC(TParticle *part,AliESDVertex *vert,Double_t bzT) const;
Bool_t SelectPt(Double_t pt);
Int_t MakeITSflag(AliESDtrack *track) const;
+ Bool_t IsSelectedCentrality() const;
- ClassDef(AliAnalysisTaskITSTrackingCheck,10); // ITS tracks analysis
+ ClassDef(AliAnalysisTaskITSTrackingCheck,11); // ITS tracks analysis
};
#endif
AliAnalysisTaskITSTrackingCheck *AddTaskPerformanceITS(Bool_t readMC=kFALSE,
Bool_t readRP=kFALSE,
- Bool_t fillNtuples=kFALSE)
+ Bool_t fillNtuples=kFALSE,
+ Int_t minmult=0,
+ Int_t maxmult=1000000)
{
//
// Task for check of ITS tracking
// Create the task
AliAnalysisTaskITSTrackingCheck *taskITS = new AliAnalysisTaskITSTrackingCheck("ITStracking");
+ taskITS->SetMultRange(minmult,maxmult);
taskITS->SetReadMC(readMC);
taskITS->SetReadRPLabels(readRP);
taskITS->SetFillNtuples(fillNtuples);
//
// Create containers for input/output
- AliAnalysisDataContainer *cOutputITS = mgr->CreateContainer("cOutputITS",TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:ITS_Performance",mgr->GetCommonFileName()));
+ TString cname="cOutputITS";
+ if(maxmult<1000000) {
+ cname.Append("_"); cname+=minmult;
+ cname.Append("_"); cname+=maxmult;
+ }
+ AliAnalysisDataContainer *cOutputITS = mgr->CreateContainer(cname.Data(),TList::Class(),AliAnalysisManager::kOutputContainer,Form("%s:ITS_Performance",mgr->GetCommonFileName()));
// Attach input