#include "AliMCParticle.h"
#include "AliCFPairAcceptanceCuts.h"
#include "AliMCEvent.h"
#include "TBits.h"
#include "AliLog.h"
ClassImp(AliCFPairAcceptanceCuts)
AliCFPairAcceptanceCuts::AliCFPairAcceptanceCuts() :
AliCFCutBase(),
fMCInfo(0x0),
fCutNeg(new AliCFAcceptanceCuts()),
fCutPos(new AliCFAcceptanceCuts()),
fBitmap(new TBits(0))
{
}
AliCFPairAcceptanceCuts::AliCFPairAcceptanceCuts(const Char_t* name, const Char_t* title) :
AliCFCutBase(name,title),
fMCInfo(0x0),
fCutNeg(new AliCFAcceptanceCuts(name,title)),
fCutPos(new AliCFAcceptanceCuts(name,title)),
fBitmap(new TBits(0))
{
}
AliCFPairAcceptanceCuts::AliCFPairAcceptanceCuts(const AliCFPairAcceptanceCuts& c) :
AliCFCutBase(c),
fMCInfo(c.fMCInfo),
fCutNeg(c.fCutNeg),
fCutPos(c.fCutPos),
fBitmap(c.fBitmap)
{
}
AliCFPairAcceptanceCuts& AliCFPairAcceptanceCuts::operator=(const AliCFPairAcceptanceCuts& c)
{
if (this != &c) {
AliCFCutBase::operator=(c) ;
fMCInfo = c.fMCInfo ;
fCutNeg = c.fCutNeg ;
fCutPos = c.fCutPos ;
fBitmap = c.fBitmap ;
}
return *this ;
}
Bool_t AliCFPairAcceptanceCuts::IsSelected(TObject* obj) {
SelectionBitMap(obj);
Bool_t isSelected = kTRUE;
for (UInt_t icut=0; icut<fBitmap->GetNbits(); icut++) {
if (!fBitmap->TestBitNumber(icut)) {
isSelected = kFALSE;
break;
}
}
if (!isSelected) return kFALSE ;
return kTRUE;
}
void AliCFPairAcceptanceCuts::SelectionBitMap(TObject* obj)
{
for (UInt_t i=0; i<kNCuts; i++) fBitmap->SetBitNumber(i,kFALSE);
AliMCParticle* mcpart = dynamic_cast<AliMCParticle*>(obj) ;
if (!mcpart) return;
TString className(mcpart->ClassName());
if (className.CompareTo("AliMCParticle") != 0) {
AliError("obj must point to an AliMCParticle !");
return ;
}
TParticle* part = mcpart->Particle() ;
if (!part || part->GetNDaughters() !=2) return ;
Int_t lab0 = part->GetDaughter(0);
Int_t lab1 = part->GetDaughter(1);
AliMCParticle* negDaughter = (AliMCParticle*) fMCInfo->GetTrack(lab0) ;
AliMCParticle* posDaughter = (AliMCParticle*) fMCInfo->GetTrack(lab1) ;
Int_t iCutBit = 0;
if (fCutNeg->IsSelected(negDaughter)) fBitmap->SetBitNumber(iCutBit,kTRUE);
iCutBit++;
if (fCutPos->IsSelected(posDaughter)) fBitmap->SetBitNumber(iCutBit,kTRUE);
}
void AliCFPairAcceptanceCuts::SetMCEventInfo(const TObject* mcInfo) {
if (!mcInfo) {
Error("SetMCEventInfo","Pointer to MC Event is null !");
return;
}
TString className(mcInfo->ClassName());
if (className.CompareTo("AliMCEvent") != 0) {
Error("SetMCEventInfo","argument must point to an AliMCEvent !");
return ;
}
fMCInfo = (AliMCEvent*) mcInfo ;
}
AliCFPairAcceptanceCuts.cxx:1 AliCFPairAcceptanceCuts.cxx:2 AliCFPairAcceptanceCuts.cxx:3 AliCFPairAcceptanceCuts.cxx:4 AliCFPairAcceptanceCuts.cxx:5 AliCFPairAcceptanceCuts.cxx:6 AliCFPairAcceptanceCuts.cxx:7 AliCFPairAcceptanceCuts.cxx:8 AliCFPairAcceptanceCuts.cxx:9 AliCFPairAcceptanceCuts.cxx:10 AliCFPairAcceptanceCuts.cxx:11 AliCFPairAcceptanceCuts.cxx:12 AliCFPairAcceptanceCuts.cxx:13 AliCFPairAcceptanceCuts.cxx:14 AliCFPairAcceptanceCuts.cxx:15 AliCFPairAcceptanceCuts.cxx:16 AliCFPairAcceptanceCuts.cxx:17 AliCFPairAcceptanceCuts.cxx:18 AliCFPairAcceptanceCuts.cxx:19 AliCFPairAcceptanceCuts.cxx:20 AliCFPairAcceptanceCuts.cxx:21 AliCFPairAcceptanceCuts.cxx:22 AliCFPairAcceptanceCuts.cxx:23 AliCFPairAcceptanceCuts.cxx:24 AliCFPairAcceptanceCuts.cxx:25 AliCFPairAcceptanceCuts.cxx:26 AliCFPairAcceptanceCuts.cxx:27 AliCFPairAcceptanceCuts.cxx:28 AliCFPairAcceptanceCuts.cxx:29 AliCFPairAcceptanceCuts.cxx:30 AliCFPairAcceptanceCuts.cxx:31 AliCFPairAcceptanceCuts.cxx:32 AliCFPairAcceptanceCuts.cxx:33 AliCFPairAcceptanceCuts.cxx:34 AliCFPairAcceptanceCuts.cxx:35 AliCFPairAcceptanceCuts.cxx:36 AliCFPairAcceptanceCuts.cxx:37 AliCFPairAcceptanceCuts.cxx:38 AliCFPairAcceptanceCuts.cxx:39 AliCFPairAcceptanceCuts.cxx:40 AliCFPairAcceptanceCuts.cxx:41 AliCFPairAcceptanceCuts.cxx:42 AliCFPairAcceptanceCuts.cxx:43 AliCFPairAcceptanceCuts.cxx:44 AliCFPairAcceptanceCuts.cxx:45 AliCFPairAcceptanceCuts.cxx:46 AliCFPairAcceptanceCuts.cxx:47 AliCFPairAcceptanceCuts.cxx:48 AliCFPairAcceptanceCuts.cxx:49 AliCFPairAcceptanceCuts.cxx:50 AliCFPairAcceptanceCuts.cxx:51 AliCFPairAcceptanceCuts.cxx:52 AliCFPairAcceptanceCuts.cxx:53 AliCFPairAcceptanceCuts.cxx:54 AliCFPairAcceptanceCuts.cxx:55 AliCFPairAcceptanceCuts.cxx:56 AliCFPairAcceptanceCuts.cxx:57 AliCFPairAcceptanceCuts.cxx:58 AliCFPairAcceptanceCuts.cxx:59 AliCFPairAcceptanceCuts.cxx:60 AliCFPairAcceptanceCuts.cxx:61 AliCFPairAcceptanceCuts.cxx:62 AliCFPairAcceptanceCuts.cxx:63 AliCFPairAcceptanceCuts.cxx:64 AliCFPairAcceptanceCuts.cxx:65 AliCFPairAcceptanceCuts.cxx:66 AliCFPairAcceptanceCuts.cxx:67 AliCFPairAcceptanceCuts.cxx:68 AliCFPairAcceptanceCuts.cxx:69 AliCFPairAcceptanceCuts.cxx:70 AliCFPairAcceptanceCuts.cxx:71 AliCFPairAcceptanceCuts.cxx:72 AliCFPairAcceptanceCuts.cxx:73 AliCFPairAcceptanceCuts.cxx:74 AliCFPairAcceptanceCuts.cxx:75 AliCFPairAcceptanceCuts.cxx:76 AliCFPairAcceptanceCuts.cxx:77 AliCFPairAcceptanceCuts.cxx:78 AliCFPairAcceptanceCuts.cxx:79 AliCFPairAcceptanceCuts.cxx:80 AliCFPairAcceptanceCuts.cxx:81 AliCFPairAcceptanceCuts.cxx:82 AliCFPairAcceptanceCuts.cxx:83 AliCFPairAcceptanceCuts.cxx:84 AliCFPairAcceptanceCuts.cxx:85 AliCFPairAcceptanceCuts.cxx:86 AliCFPairAcceptanceCuts.cxx:87 AliCFPairAcceptanceCuts.cxx:88 AliCFPairAcceptanceCuts.cxx:89 AliCFPairAcceptanceCuts.cxx:90 AliCFPairAcceptanceCuts.cxx:91 AliCFPairAcceptanceCuts.cxx:92 AliCFPairAcceptanceCuts.cxx:93 AliCFPairAcceptanceCuts.cxx:94 AliCFPairAcceptanceCuts.cxx:95 AliCFPairAcceptanceCuts.cxx:96 AliCFPairAcceptanceCuts.cxx:97 AliCFPairAcceptanceCuts.cxx:98 AliCFPairAcceptanceCuts.cxx:99 AliCFPairAcceptanceCuts.cxx:100 AliCFPairAcceptanceCuts.cxx:101 AliCFPairAcceptanceCuts.cxx:102 AliCFPairAcceptanceCuts.cxx:103 AliCFPairAcceptanceCuts.cxx:104 AliCFPairAcceptanceCuts.cxx:105 AliCFPairAcceptanceCuts.cxx:106 AliCFPairAcceptanceCuts.cxx:107 AliCFPairAcceptanceCuts.cxx:108 AliCFPairAcceptanceCuts.cxx:109 AliCFPairAcceptanceCuts.cxx:110 AliCFPairAcceptanceCuts.cxx:111 AliCFPairAcceptanceCuts.cxx:112 AliCFPairAcceptanceCuts.cxx:113 AliCFPairAcceptanceCuts.cxx:114 AliCFPairAcceptanceCuts.cxx:115 AliCFPairAcceptanceCuts.cxx:116 AliCFPairAcceptanceCuts.cxx:117 AliCFPairAcceptanceCuts.cxx:118 AliCFPairAcceptanceCuts.cxx:119 AliCFPairAcceptanceCuts.cxx:120 AliCFPairAcceptanceCuts.cxx:121 AliCFPairAcceptanceCuts.cxx:122 AliCFPairAcceptanceCuts.cxx:123 AliCFPairAcceptanceCuts.cxx:124 AliCFPairAcceptanceCuts.cxx:125 AliCFPairAcceptanceCuts.cxx:126 AliCFPairAcceptanceCuts.cxx:127 AliCFPairAcceptanceCuts.cxx:128 AliCFPairAcceptanceCuts.cxx:129 AliCFPairAcceptanceCuts.cxx:130 AliCFPairAcceptanceCuts.cxx:131 AliCFPairAcceptanceCuts.cxx:132 AliCFPairAcceptanceCuts.cxx:133 AliCFPairAcceptanceCuts.cxx:134 AliCFPairAcceptanceCuts.cxx:135 AliCFPairAcceptanceCuts.cxx:136 AliCFPairAcceptanceCuts.cxx:137 AliCFPairAcceptanceCuts.cxx:138 AliCFPairAcceptanceCuts.cxx:139 AliCFPairAcceptanceCuts.cxx:140 AliCFPairAcceptanceCuts.cxx:141 AliCFPairAcceptanceCuts.cxx:142 AliCFPairAcceptanceCuts.cxx:143 AliCFPairAcceptanceCuts.cxx:144 AliCFPairAcceptanceCuts.cxx:145 AliCFPairAcceptanceCuts.cxx:146 AliCFPairAcceptanceCuts.cxx:147 AliCFPairAcceptanceCuts.cxx:148 AliCFPairAcceptanceCuts.cxx:149 AliCFPairAcceptanceCuts.cxx:150 AliCFPairAcceptanceCuts.cxx:151 AliCFPairAcceptanceCuts.cxx:152 AliCFPairAcceptanceCuts.cxx:153 AliCFPairAcceptanceCuts.cxx:154 AliCFPairAcceptanceCuts.cxx:155 AliCFPairAcceptanceCuts.cxx:156 AliCFPairAcceptanceCuts.cxx:157 AliCFPairAcceptanceCuts.cxx:158 AliCFPairAcceptanceCuts.cxx:159 AliCFPairAcceptanceCuts.cxx:160 AliCFPairAcceptanceCuts.cxx:161 AliCFPairAcceptanceCuts.cxx:162 AliCFPairAcceptanceCuts.cxx:163 AliCFPairAcceptanceCuts.cxx:164 AliCFPairAcceptanceCuts.cxx:165 AliCFPairAcceptanceCuts.cxx:166 AliCFPairAcceptanceCuts.cxx:167 AliCFPairAcceptanceCuts.cxx:168