]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Improved check for label in PDG cut case (M.Vala)
authorfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 27 Feb 2012 09:41:40 +0000 (09:41 +0000)
committerfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 27 Feb 2012 09:41:40 +0000 (09:41 +0000)
PWGLF/RESONANCES/AliRsnDaughterSelector.cxx
PWGLF/RESONANCES/AliRsnDaughterSelector.h

index 981a9a4196ded61c9c3f2fe73146ca5c3bf78646..b8e9d521c806daca6ad401896df4432e70f94ebb 100644 (file)
@@ -17,7 +17,8 @@ AliRsnDaughterSelector::AliRsnDaughterSelector(const char *name, const char *tit
    fCutSetsC("AliRsnCutSet", 0),
    fEntryListsN("TEntryList", 0),
    fEntryListsP("TEntryList", 0),
-   fEntryListsM("TEntryList", 0)
+   fEntryListsM("TEntryList", 0),
+   fUseLabelCheck(kTRUE)
 {
 //
 // Default constructor.
@@ -34,7 +35,8 @@ AliRsnDaughterSelector::AliRsnDaughterSelector(const AliRsnDaughterSelector &cop
    fCutSetsC(copy.fCutSetsC),
    fEntryListsN(copy.fEntryListsN),
    fEntryListsP(copy.fEntryListsP),
-   fEntryListsM(copy.fEntryListsM)
+   fEntryListsM(copy.fEntryListsM),
+   fUseLabelCheck(copy.fUseLabelCheck)
 {
 //
 // Copy constructor.
@@ -61,6 +63,7 @@ AliRsnDaughterSelector &AliRsnDaughterSelector::operator=(const AliRsnDaughterSe
    fEntryListsN = copy.fEntryListsN;
    fEntryListsP = copy.fEntryListsP;
    fEntryListsM = copy.fEntryListsM;
+   fUseLabelCheck = copy.fUseLabelCheck;
 
    AliDebug(AliLog::kDebug + 10, "->");
 
@@ -255,6 +258,7 @@ void AliRsnDaughterSelector::ScanEvent(AliRsnEvent *ev)
    TClonesArray *cutsArray = 0x0, *entryArray = 0x0;
    TEntryList labelList;
    TEntryList *el = 0;
+   AliRsnCutSet *cuts;
    for (id = 0; id < nTot; id++) {
       ev->SetDaughter(check, id);
       // some checks
@@ -277,20 +281,21 @@ void AliRsnDaughterSelector::ScanEvent(AliRsnEvent *ev)
          cutsArray = &fCutSetsN;
          entryArray = &fEntryListsN;
       }
+
+      if (fUseLabelCheck && labelList.Contains(check.GetLabel())) continue;
+
       // check with all cuts in that charge
       nSel = cutsArray->GetEntries();
       for (is = 0; is < nSel; is++) {
-         AliRsnCutSet *cuts = (AliRsnCutSet *)cutsArray->At(is);
+         cuts = (AliRsnCutSet *)cutsArray->At(is);
          if (cuts->IsSelected(&check)) {
-            if (!labelList.Contains(check.GetLabel())) {
-               el = (TEntryList *)entryArray->At(is);
-               el->Enter(id);
-               labelList.Enter(check.GetLabel());
-            }
-
+            el = (TEntryList *)entryArray->At(is);
+            el->Enter(id);
+            if (fUseLabelCheck) labelList.Enter(check.GetLabel());
          }
       }
    }
 
    //Print();
 }
+
index 3acc497ceabd588944b8d2f837a7ae82f623683f..353fc4064422a9c84cb8f9ff08f95f13862ecf7a 100644 (file)
@@ -30,6 +30,8 @@ public:
 
    TClonesArray *GetCutSetC() {return &fCutSetsC;}
    TClonesArray *GetCutSetN() {return &fCutSetsN;}
+   
+   void SetLabelCheck(Bool_t useLabelCheck = kTRUE) { fUseLabelCheck = useLabelCheck;}
 
 private:
 
@@ -39,8 +41,10 @@ private:
    TClonesArray fEntryListsN;     // entry lists for neutrals
    TClonesArray fEntryListsP;     // entry lists for charged (one per sign)
    TClonesArray fEntryListsM;     // entry lists for charged (one per sign)
+   
+   Bool_t       fUseLabelCheck;   // flag is reapiting of label should be checked
 
-   ClassDef(AliRsnDaughterSelector, 1)
+   ClassDef(AliRsnDaughterSelector, 2)
 };
 
 #endif