]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fixed access to MC-only analysis
authorpulvir <pulvir@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Aug 2010 13:11:05 +0000 (13:11 +0000)
committerpulvir <pulvir@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Aug 2010 13:11:05 +0000 (13:11 +0000)
PWG2/RESONANCES/AliRsnAnalysisManager.cxx
PWG2/RESONANCES/AliRsnDaughter.h
PWG2/RESONANCES/macros/test/AddAnalysisTaskRsnTest.C
PWG2/RESONANCES/macros/test/ConfigTaskRsnTest.C
PWG2/RESONANCES/macros/test/runLocal.C

index 4ab6a3a6187940df7cac0ef3e8cb4276318a07eb..9b4b7be2ad3948ced93b6e31f648df0345e98149 100644 (file)
@@ -200,6 +200,7 @@ void AliRsnAnalysisManager::ProcessAllPairsMC(AliRsnEvent *ev0, AliRsnEvent *ev1
   // joins the loop on tracks and v0s, by looping the indexes from 0
   // to the sum of them, and checking what to take depending of its value
   Int_t          i0, i1, i;
+  Bool_t         filled;
   AliRsnDaughter daughter0, daughter1;
   AliRsnPair    *pair = 0x0;
   TObjArrayIter  next(&fPairs);
@@ -207,8 +208,7 @@ void AliRsnAnalysisManager::ProcessAllPairsMC(AliRsnEvent *ev0, AliRsnEvent *ev1
   for (i0 = 0; i0 < nTracks[0]; i0++)
   {
     // assign first track
-    if (i0 < nTracks[0]) ev0->SetDaughter(daughter0, i0, AliRsnDaughter::kTrack);
-    else ev0->SetDaughter(daughter0, i0 - nTracks[0], AliRsnDaughter::kV0);
+    ev0->SetDaughterMC(daughter0, i0);
         
     // internal loop (same criterion)
     for (i1 = 0; i1 < nTracks[1]; i1++)
@@ -217,8 +217,7 @@ void AliRsnAnalysisManager::ProcessAllPairsMC(AliRsnEvent *ev0, AliRsnEvent *ev1
       if (ev0 == ev1 && i0 == i1) continue;
       
       // assign second track
-      if (i1 < nTracks[1]) ev1->SetDaughter(daughter1, i1, AliRsnDaughter::kTrack);
-      else ev1->SetDaughter(daughter1, i1 - nTracks[1], AliRsnDaughter::kV0);
+      ev1->SetDaughterMC(daughter1, i1);
       
       // loop over all pairs and make computations
       next.Reset();
@@ -233,7 +232,8 @@ void AliRsnAnalysisManager::ProcessAllPairsMC(AliRsnEvent *ev0, AliRsnEvent *ev1
         if (pair->GetPairDef()->IsLikeSign() && i1 < i0) continue;
                 
         // process the two tracks
-        if (!pair->Fill(&daughter0, &daughter1, ev0, ev1)) continue;
+        filled = pair->Fill(&daughter0, &daughter1, ev0, ev1);
+        if (!filled) continue;
         pair->Compute();
       }
     }
index dd5eb738c3e58aca97ee4903d80a00fc5b06b4d7..47dcb1f3a71d7ba06b5ec6d66454afe9b79ee488 100644 (file)
@@ -74,6 +74,7 @@ class AliRsnDaughter : public TObject
 
     // MC info & references
     AliVParticle*  GetRef()         const {return fRef;}
+    AliMCParticle* GetRefMCtrack()  const {return dynamic_cast<AliMCParticle*>(fRef);}
     AliESDtrack*   GetRefESDtrack() const {return dynamic_cast<AliESDtrack*>(fRef);}
     AliAODTrack*   GetRefAODtrack() const {return dynamic_cast<AliAODTrack*>(fRef);}
     AliESDv0*      GetRefESDv0()    const {return dynamic_cast<AliESDv0*>(fRef);}
@@ -81,9 +82,10 @@ class AliRsnDaughter : public TObject
     AliMCParticle* GetRefMC()       const {return fRefMC;}
     TParticle*     GetParticle()    const {if (fRefMC) return fRefMC->Particle(); else return 0x0;}
     Int_t          GetMotherPDG()   const {return fMotherPDG;}
+    Bool_t         IsMC()           const {if (GetRefMCtrack()) return kTRUE; return kFALSE;}
     Bool_t         IsAOD()          const {if (GetRefAODtrack() || GetRefAODv0()) return kTRUE; return kFALSE;}
     Bool_t         IsESD()          const {if (GetRefESDtrack() || GetRefESDv0()) return kTRUE; return kFALSE;}
-    Bool_t         IsTrack()        const {if (GetRefESDtrack() || GetRefAODtrack()) return kTRUE; return kFALSE;}
+    Bool_t         IsTrack()        const {if (GetRefESDtrack() || GetRefAODtrack() || GetRefMCtrack()) return kTRUE; return kFALSE;}
     Bool_t         IsV0()           const {if (GetRefESDv0() || GetRefAODv0()) return kTRUE; return kFALSE;}
     ERefType       RefType()        const {if (IsTrack()) return kTrack; if (IsV0()) return kV0; return kNoType;}
     void           SetRef(AliVParticle *ref) {fRef = ref;}
index 6a320897c1371b2866a352a1adf2d1905e7f90d3..7cda19eab0eb61310a244c99ad993d9bb8d44e5f 100644 (file)
@@ -19,7 +19,8 @@ Bool_t AddAnalysisTaskRsnTest
   // initialize task with all available slots, even if not all of them will be used:
   AliRsnAnalysisSE *task = new AliRsnAnalysisSE("RsnAnalysis");
   task->SetZeroEventPercentWarning(100.0);
-  task->SelectCollisionCandidates();
+  //task->SelectCollisionCandidates();
+  task->SetMCOnly(kTRUE);
 
   // load and execute configuration macro
   gROOT->LoadMacro(configMacro);
index 50b661d94f9f833b84f24ecc1e6b1efabeeca40d..97d39f123d81a4a66151a9e949b2b19ce6ddaf49 100644 (file)
@@ -38,9 +38,9 @@ Bool_t RsnConfigTask(AliRsnAnalysisSE* &task, const char *dataLabel)
   // primary vertex range
   AliRsnCutPrimaryVertex *cutVertex   = new AliRsnCutPrimaryVertex("cutVertex", 10.0, 0, kFALSE);
   AliRsnCutSet           *cutSetEvent = new AliRsnCutSet("eventCuts", AliRsnCut::kEvent);
-  cutSetEvent->AddCut(cutVertex);
-  cutSetEvent->SetCutScheme("cutVertex");
-  task->SetEventCuts(cutSetEvent);
+  //cutSetEvent->AddCut(cutVertex);
+  //cutSetEvent->SetCutScheme("cutVertex");
+  //task->SetEventCuts(cutSetEvent);
 
   //
   // -- Setup pairs ---------------------------------------------------------------------------------
@@ -121,15 +121,15 @@ Bool_t RsnConfigTask(AliRsnAnalysisSE* &task, const char *dataLabel)
 
   // --> add related cuts
   //cutSetDaughterCommon->AddCut(cuts2010);
-  //cutSetDaughterCommon->AddCut(cutPID);
+  cutSetDaughterCommon->AddCut(cutPID);
 
   // --> define schemes
-  //cutSetDaughterCommon->SetCutScheme("cuts2010&cutPID");
+  cutSetDaughterCommon->SetCutScheme("cutPID");
    
   // cut managers
   // define a proper name for each mult bin, to avoid omonyme output histos
-  //pairPMhist->GetCutManager()->SetCommonDaughterCuts(cutSetDaughterCommon);
-  //pairPMntp ->GetCutManager()->SetCommonDaughterCuts(cutSetDaughterCommon);
+  pairPMhist->GetCutManager()->SetCommonDaughterCuts(cutSetDaughterCommon);
+  pairPMntp ->GetCutManager()->SetCommonDaughterCuts(cutSetDaughterCommon);
 
   // function axes
   Double_t ybins[] = {-0.8, -0.7, -0.6, -0.5, 0.5, 0.6, 0.7, 0.8};
@@ -146,6 +146,7 @@ Bool_t RsnConfigTask(AliRsnAnalysisSE* &task, const char *dataLabel)
   
   // add functions to TH1-like output
   pairPMhist->AddFunction(fcnPt);
+  //pairPMhist->SetOnlyTrue();
   
   // add values to TNtuple-like output
   pairPMntp->AddValue(axisIM);
index 1e91166a9a074215cff42bc8e8646a00e600cf9c..27e9a29061d0d99b9a0b4cf79fbc1ccaeadc6558 100644 (file)
@@ -97,11 +97,11 @@ void runLocal
   //gROOT->LoadMacro("AddTaskAnalysisPhi7TeV.C");
   //AddTaskAnalysisPhi7TeV(dataLabel);
   
-  gROOT->LoadMacro("AddTaskAnalysisMonitor.C");
-  AddTaskAnalysisMonitor(dataLabel);
+  //gROOT->LoadMacro("AddTaskAnalysisMonitor.C");
+  //AddTaskAnalysisMonitor(dataLabel);
   
   // add task macro
-  //gROOT->ProcessLine(Form(".x %s(\"%s\")", addTaskName, dataLabel));
+  gROOT->ProcessLine(Form(".x %s(\"%s\")", addTaskName, dataLabel));
 
   // create TChain of input events
   TChain *analysisChain = 0x0;