#include <TList.h>
#include "AliDielectronPair.h"
#include "AliVParticle.h"
#include "AliDielectronPairLegCuts.h"
ClassImp(AliDielectronPairLegCuts)
AliDielectronPairLegCuts::AliDielectronPairLegCuts() :
AliAnalysisCuts(),
fFilterLeg1("PairFilterLeg1","PairFilterLeg1"),
fFilterLeg2("PairFilterLeg2","PairFilterLeg2"),
fCutType(kBothLegs)
{
}
AliDielectronPairLegCuts::AliDielectronPairLegCuts(const char* name, const char* title) :
AliAnalysisCuts(name,title),
fFilterLeg1("PairFilterLeg1","PairFilterLeg1"),
fFilterLeg2("PairFilterLeg2","PairFilterLeg2"),
fCutType(kBothLegs)
{
}
AliDielectronPairLegCuts::~AliDielectronPairLegCuts()
{
TIter nextCut(fFilterLeg1.GetCuts());
TObject *o=0x0;
while ( (o=nextCut()) ) fFilterLeg2.GetCuts()->Remove(o);
}
Bool_t AliDielectronPairLegCuts::IsSelected(TObject* track)
{
AliDielectronPair *pair=dynamic_cast<AliDielectronPair*>(track);
if (!pair) return kFALSE;
AliVParticle *leg1=pair->GetFirstDaughterP();
AliVParticle *leg2=pair->GetSecondDaughterP();
UInt_t selectedMaskLeg1=(1<<fFilterLeg1.GetCuts()->GetEntries())-1;
UInt_t selectedMaskLeg2=(1<<fFilterLeg2.GetCuts()->GetEntries())-1;
Bool_t isLeg1selected=(fFilterLeg1.IsSelected(leg1)==selectedMaskLeg1);
if(fCutType==kBothLegs && !isLeg1selected) {
SetSelected(isLeg1selected);
return isLeg1selected;
}
Bool_t isLeg2selected=(fFilterLeg2.IsSelected(leg2)==selectedMaskLeg2);
Bool_t isLeg1selectedMirror=(fFilterLeg1.IsSelected(leg2)==selectedMaskLeg1);
Bool_t isLeg2selectedMirror=(fFilterLeg2.IsSelected(leg1)==selectedMaskLeg2);
Bool_t isSelected=isLeg1selected&&isLeg2selected;
if (fCutType==kAnyLeg)
isSelected=isLeg1selected||isLeg2selected;
if (fCutType==kMixLegs)
isSelected=(isLeg1selected&&isLeg2selected)||(isLeg1selectedMirror&&isLeg2selectedMirror);
SetSelected(isSelected);
return isSelected;
}
AliDielectronPairLegCuts.cxx:1 AliDielectronPairLegCuts.cxx:2 AliDielectronPairLegCuts.cxx:3 AliDielectronPairLegCuts.cxx:4 AliDielectronPairLegCuts.cxx:5 AliDielectronPairLegCuts.cxx:6 AliDielectronPairLegCuts.cxx:7 AliDielectronPairLegCuts.cxx:8 AliDielectronPairLegCuts.cxx:9 AliDielectronPairLegCuts.cxx:10 AliDielectronPairLegCuts.cxx:11 AliDielectronPairLegCuts.cxx:12 AliDielectronPairLegCuts.cxx:13 AliDielectronPairLegCuts.cxx:14 AliDielectronPairLegCuts.cxx:15 AliDielectronPairLegCuts.cxx:16 AliDielectronPairLegCuts.cxx:17 AliDielectronPairLegCuts.cxx:18 AliDielectronPairLegCuts.cxx:19 AliDielectronPairLegCuts.cxx:20 AliDielectronPairLegCuts.cxx:21 AliDielectronPairLegCuts.cxx:22 AliDielectronPairLegCuts.cxx:23 AliDielectronPairLegCuts.cxx:24 AliDielectronPairLegCuts.cxx:25 AliDielectronPairLegCuts.cxx:26 AliDielectronPairLegCuts.cxx:27 AliDielectronPairLegCuts.cxx:28 AliDielectronPairLegCuts.cxx:29 AliDielectronPairLegCuts.cxx:30 AliDielectronPairLegCuts.cxx:31 AliDielectronPairLegCuts.cxx:32 AliDielectronPairLegCuts.cxx:33 AliDielectronPairLegCuts.cxx:34 AliDielectronPairLegCuts.cxx:35 AliDielectronPairLegCuts.cxx:36 AliDielectronPairLegCuts.cxx:37 AliDielectronPairLegCuts.cxx:38 AliDielectronPairLegCuts.cxx:39 AliDielectronPairLegCuts.cxx:40 AliDielectronPairLegCuts.cxx:41 AliDielectronPairLegCuts.cxx:42 AliDielectronPairLegCuts.cxx:43 AliDielectronPairLegCuts.cxx:44 AliDielectronPairLegCuts.cxx:45 AliDielectronPairLegCuts.cxx:46 AliDielectronPairLegCuts.cxx:47 AliDielectronPairLegCuts.cxx:48 AliDielectronPairLegCuts.cxx:49 AliDielectronPairLegCuts.cxx:50 AliDielectronPairLegCuts.cxx:51 AliDielectronPairLegCuts.cxx:52 AliDielectronPairLegCuts.cxx:53 AliDielectronPairLegCuts.cxx:54 AliDielectronPairLegCuts.cxx:55 AliDielectronPairLegCuts.cxx:56 AliDielectronPairLegCuts.cxx:57 AliDielectronPairLegCuts.cxx:58 AliDielectronPairLegCuts.cxx:59 AliDielectronPairLegCuts.cxx:60 AliDielectronPairLegCuts.cxx:61 AliDielectronPairLegCuts.cxx:62 AliDielectronPairLegCuts.cxx:63 AliDielectronPairLegCuts.cxx:64 AliDielectronPairLegCuts.cxx:65 AliDielectronPairLegCuts.cxx:66 AliDielectronPairLegCuts.cxx:67 AliDielectronPairLegCuts.cxx:68 AliDielectronPairLegCuts.cxx:69 AliDielectronPairLegCuts.cxx:70 AliDielectronPairLegCuts.cxx:71 AliDielectronPairLegCuts.cxx:72 AliDielectronPairLegCuts.cxx:73 AliDielectronPairLegCuts.cxx:74 AliDielectronPairLegCuts.cxx:75 AliDielectronPairLegCuts.cxx:76 AliDielectronPairLegCuts.cxx:77 AliDielectronPairLegCuts.cxx:78 AliDielectronPairLegCuts.cxx:79 AliDielectronPairLegCuts.cxx:80 AliDielectronPairLegCuts.cxx:81 AliDielectronPairLegCuts.cxx:82 AliDielectronPairLegCuts.cxx:83 AliDielectronPairLegCuts.cxx:84 AliDielectronPairLegCuts.cxx:85 AliDielectronPairLegCuts.cxx:86 AliDielectronPairLegCuts.cxx:87 AliDielectronPairLegCuts.cxx:88 AliDielectronPairLegCuts.cxx:89 AliDielectronPairLegCuts.cxx:90 AliDielectronPairLegCuts.cxx:91 AliDielectronPairLegCuts.cxx:92 AliDielectronPairLegCuts.cxx:93 AliDielectronPairLegCuts.cxx:94 AliDielectronPairLegCuts.cxx:95 AliDielectronPairLegCuts.cxx:96 AliDielectronPairLegCuts.cxx:97 AliDielectronPairLegCuts.cxx:98 AliDielectronPairLegCuts.cxx:99 AliDielectronPairLegCuts.cxx:100 AliDielectronPairLegCuts.cxx:101 AliDielectronPairLegCuts.cxx:102 AliDielectronPairLegCuts.cxx:103 AliDielectronPairLegCuts.cxx:104 AliDielectronPairLegCuts.cxx:105 AliDielectronPairLegCuts.cxx:106 AliDielectronPairLegCuts.cxx:107 AliDielectronPairLegCuts.cxx:108 AliDielectronPairLegCuts.cxx:109 AliDielectronPairLegCuts.cxx:110 AliDielectronPairLegCuts.cxx:111 AliDielectronPairLegCuts.cxx:112 AliDielectronPairLegCuts.cxx:113 AliDielectronPairLegCuts.cxx:114 AliDielectronPairLegCuts.cxx:115 AliDielectronPairLegCuts.cxx:116 AliDielectronPairLegCuts.cxx:117