]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added possibility to select a multiplicity range
authordainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Nov 2010 23:34:24 +0000 (23:34 +0000)
committerdainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Nov 2010 23:34:24 +0000 (23:34 +0000)
PWG1/ITS/AliAnalysisTaskITSTrackingCheck.cxx
PWG1/ITS/AliAnalysisTaskITSTrackingCheck.h
PWG1/macros/AddTaskPerformanceITS.C

index 69fb3f248cfbd05e9b7c7b67607846720047aee5..70a0d083964fd9d9c5ee72ca99d4e0f4e89cc32c 100644 (file)
@@ -68,6 +68,8 @@ fFillNtuples(kFALSE),
 fUseITSSAforNtuples(kFALSE),
 fUsePhysSel(kFALSE),
 fESD(0), 
+fMinMult(0),
+fMaxMult(1000000),
 fOutput(0), 
 fHistNEvents(0),
 fHistNEventsFrac(0),
@@ -265,6 +267,8 @@ fFillNtuples(kFALSE),
 fUseITSSAforNtuples(kFALSE),
 fUsePhysSel(kFALSE),
 fESD(0), 
+fMinMult(0),
+fMaxMult(1000000),
 fOutput(0), 
 fHistNEvents(0),
 fHistNEventsFrac(0),
@@ -1349,6 +1353,8 @@ void AliAnalysisTaskITSTrackingCheck::UserExec(Option_t *)
     return;
   }
 
+  // only events in the requested multiplicity range
+  if(!IsSelectedCentrality()) return;
 
   fHistNEvents->Fill(-1);
 
@@ -2342,6 +2348,23 @@ Int_t AliAnalysisTaskITSTrackingCheck::MakeITSflag(AliESDtrack *track) const {
 
   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;
+}
 
 
 
index b2951217bb3141f368458d94c2337adddcddfd4b..33e02c7105185be6c4ea273a111502912107be76 100644 (file)
@@ -40,7 +40,8 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   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
@@ -48,6 +49,8 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   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
@@ -245,8 +248,9 @@ class AliAnalysisTaskITSTrackingCheck : public AliAnalysisTaskSE
   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
index 3b02b23f01b7810634b6d9e40b78260a17bcba97..eaf582a7ef319d67126b41955993907ca7892340 100644 (file)
@@ -1,6 +1,8 @@
 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
@@ -19,6 +21,7 @@ AliAnalysisTaskITSTrackingCheck *AddTaskPerformanceITS(Bool_t readMC=kFALSE,
 
   // Create the task
   AliAnalysisTaskITSTrackingCheck *taskITS = new AliAnalysisTaskITSTrackingCheck("ITStracking");
+  taskITS->SetMultRange(minmult,maxmult);
   taskITS->SetReadMC(readMC);
   taskITS->SetReadRPLabels(readRP);
   taskITS->SetFillNtuples(fillNtuples);
@@ -29,7 +32,12 @@ AliAnalysisTaskITSTrackingCheck *AddTaskPerformanceITS(Bool_t readMC=kFALSE,
 
   //
   // 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