]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
from Redmer Brtens:
authormkrzewic <mkrzewic@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Sep 2013 13:34:56 +0000 (13:34 +0000)
committermkrzewic <mkrzewic@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 26 Sep 2013 13:34:56 +0000 (13:34 +0000)
- bugfix gapped-qc analysis: reset some class members to their
defaults when returning mid-function to avoid a division by zero

PWG/FLOW/Tasks/AliAnalysisTaskJetFlow.cxx
PWGCF/FLOW/macros/AddTaskJetFlow.C

index 77a3fb34590d90208b8fe63db7c76b9e1dd9539f..bde95cd901f864e1c40c1e9214a2be71360ebe31 100644 (file)
@@ -80,7 +80,7 @@ AliAnalysisTaskJetFlow::AliAnalysisTaskJetFlow(
         Bool_t FlowPackageSP,
         Bool_t FlowPackageQC  
         ) : AliAnalysisTaskSE(name),
-    fDebug(-1), fJetsName(0), fJetRadius(0.3), fTracksName(0), fLocalRhoName(0), fPois(0x0), fRPs(0x0), fLocalRho(0x0), fOutputList(0), fDataType(kESD), fVParticleAnalysis(VPart), fMinimizeDiffBins(kTRUE), fDoVZEROFlowAnalysis(VZEROEP), fDoGappedQC2Analysis(kTRUE), fDoQC2FlowAnalysis(QC2), fDoQC4FlowAnalysis(QC4), fDoQCFPAnalysis(FlowPackageQC), fDoSPFPAnalysis(FlowPackageSP), fDoMultWeight(kTRUE), fDoPtWeight(0), fInitialized(kFALSE), fUsePtWeight(kFALSE), fCCMinPt(1), fCCMaxPt(150), fCCBinsInPt(50), fCentralityMin(-1), fCentralityMax(-1), fPtBins(0), fCutsRP_VZERO(0x0), fCutsNull(0), fCutsEvent(0), fFlowEvent_TPC(0), fFlowEvent_VZERO(0), fRhoVn(rhoTask), fHistAnalysisSummary(0), fCentralitySelection(0), fVZEROAEP(0), fVZEROCEP(0), fv2VZEROA(0), fv2VZEROC(0), fRefCumulants(0), fDiffCumlantsV2(0), fDiffCumlantsV3(0), fQC2v2(0), fQC2v3(0), fTempA(0), fTempC(0)
+    fDebug(-1), fJetsName(0), fJetRadius(0.3), fTracksName(0), fLocalRhoName(0), fPois(0x0), fRPs(0x0), fLocalRho(0x0), fOutputList(0), fDataType(kESD), fVParticleAnalysis(VPart), fMinimizeDiffBins(kTRUE), fDoVZEROFlowAnalysis(VZEROEP), fDoGappedQC2Analysis(GQC2), fDoQC2FlowAnalysis(QC2), fDoQC4FlowAnalysis(QC4), fDoQCFPAnalysis(FlowPackageQC), fDoSPFPAnalysis(FlowPackageSP), fDoMultWeight(kTRUE), fDoPtWeight(0), fInitialized(kFALSE), fUsePtWeight(kFALSE), fCCMinPt(1), fCCMaxPt(150), fCCBinsInPt(50), fCentralityMin(-1), fCentralityMax(-1), fPtBins(0), fCutsRP_VZERO(0x0), fCutsNull(0), fCutsEvent(0), fFlowEvent_TPC(0), fFlowEvent_VZERO(0), fRhoVn(rhoTask), fHistAnalysisSummary(0), fCentralitySelection(0), fVZEROAEP(0), fVZEROCEP(0), fv2VZEROA(0), fv2VZEROC(0), fRefCumulants(0), fDiffCumlantsV2(0), fDiffCumlantsV3(0), fQC2v2(0), fQC2v3(0), fTempA(0), fTempC(0)
 {
     // constructor
     DefineInput(0, TChain::Class());
@@ -343,7 +343,11 @@ void AliAnalysisTaskJetFlow::DoGappedQC2Analysis()
     (fVParticleAnalysis) ? fRhoVn->SetTrackEtaLimits(-0.7, 0.7) : fRhoVn->SetLocalJetMinMaxEta(fJetRadius+.2);       // avoid overlap in poi and rp region 
     QCnDifferentialFlowVectors(repn, impn, mp, reqn, imqn, mq, 2);
     // do the calculation
-    if(RHSmQ*LHSmQ < 1) return;
+    if(RHSmQ*LHSmQ < 1) {
+        fRhoVn->SetTrackEtaLimits(-0.9, 0.9);
+        fRhoVn->SetLocalJetMinMaxEta(fJetRadius);
+        return;
+    }
     fRefCumulants->Fill(0., (LHSreQn*RHSreQn+LHSimQn*RHSimQn)/(RHSmQ*LHSmQ), RHSmQ*LHSmQ);
     for(Int_t i(0); i < fPtBins->GetSize(); i++) {
         if(LHSmQ*mp[i] < 1. ) continue;        // avoid division by zero
index 3c5e6c22858e602cf239fd7fb2f690b3f5f571e3..e9ac1c10ec644e97968af8c9e8eafac276adafc6 100644 (file)
@@ -61,17 +61,18 @@ AliAnalysisTaskRhoVnModulation* AddTaskJetFlow(
             QC4,
             FlowPackageSP,
             FlowPackageQC);
+        (debug) ? task->SetDebugMode(1) : task->SetDebugMode(-1);
+        if(!task) {
+             if(debug) printf(" --> Unexpected error occurred: NO TASK WAS CREATED! (could be a library problem!)\n ");
+             return 0x0;
+        }
+        task->SelectCollisionCandidates(rhoTask->GetCollisionCandidates()); 
         task->SetCCMinPt(CCMinPt);
         task->SetCCMaxPt(CCMaxPt);
         task->SetCCBinsInPt(CCBinsInPt);
         task->SetPtBins(ptArray);       // if passed as NULL default a sane default is provided
         task->SetLocalRhoName(LocalRhoName);
         task->SetJetRadius(rhoTask->GetJetRadius());
-        (debug) ? task->SetDebugMode(1) : task->SetDebugMode(-1);
-        if(!task) {
-             if(debug) printf(" --> Unexpected error occurred: NO TASK WAS CREATED! (could be a library problem!)\n ");
-             return 0x0;
-        }
         // pass specific objects and settigns to the task
         task->SetMinMaxCentrality(cent->At(i), cent->At(1+i));
         mgr->AddTask(task);