#include "AliAnalysisMuMuCutCombination.h"
#include "AliAnalysisMuMuCutElement.h"
#include "TList.h"
#include "Riostream.h"
#include "AliInputEventHandler.h"
#include "AliLog.h"
ClassImp(AliAnalysisMuMuCutCombination)
AliAnalysisMuMuCutCombination::AliAnalysisMuMuCutCombination()
: TObject(), fCuts(0x0), fName(""),
fIsEventCutter(kFALSE), fIsEventHandlerCutter(kFALSE),
fIsTrackCutter(kFALSE), fIsTrackPairCutter(kFALSE),
fIsTriggerClassCutter(kFALSE)
{
}
AliAnalysisMuMuCutCombination::~AliAnalysisMuMuCutCombination()
{
delete fCuts;
}
void AliAnalysisMuMuCutCombination::Add(AliAnalysisMuMuCutElement* ce)
{
if (!ce || !ce->IsValid()) return;
if (!fCuts)
{
fCuts = new TObjArray;
fCuts->SetOwner(kFALSE);
fIsEventCutter = ce->IsEventCutter();
fIsEventHandlerCutter = ce->IsEventHandlerCutter();
fIsTrackCutter = ce->IsTrackCutter();
fIsTrackPairCutter = ce->IsTrackPairCutter();
fIsTriggerClassCutter = ce->IsTriggerClassCutter();
}
if (!fCuts->FindObject(ce))
{
fCuts->Add(ce);
fName += ce->GetName();
fIsEventCutter = fIsEventCutter || ce->IsEventCutter();
fIsEventHandlerCutter = fIsEventHandlerCutter || ce->IsEventHandlerCutter();
fIsTrackCutter = fIsTrackCutter || ce->IsTrackCutter();
fIsTrackPairCutter = fIsTrackPairCutter || ce->IsTrackPairCutter();
fIsTriggerClassCutter = fIsTriggerClassCutter || ce->IsTriggerClassCutter();
}
if ( IsTrackPairCutter() )
{
if ( fName[0] == 's' )
{
fName[0] = 'p';
}
else if ( fName[0] == 'p')
{
}
else
{
TString tmp = fName;
fName = "p";
fName += tmp;
}
}
else if ( IsTrackCutter() )
{
if ( fName[0] == 's')
{
}
else
{
TString tmp = fName;
fName = "s";
fName += tmp;
}
}
}
Bool_t AliAnalysisMuMuCutCombination::IsEqual(const TObject* obj) const
{
if ( obj->IsA() != AliAnalysisMuMuCutCombination::Class() )
{
return kFALSE;
}
const AliAnalysisMuMuCutCombination* other = static_cast<const AliAnalysisMuMuCutCombination*>(obj);
if ( IsEventCutter() != other->IsEventCutter() ) return kFALSE;
if ( IsTrackCutter() != other->IsTrackCutter() ) return kFALSE;
if ( IsTrackPairCutter() != other->IsTrackPairCutter() ) return kFALSE;
if ( IsTriggerClassCutter() != other->IsTriggerClassCutter() ) return kFALSE;
if ( !fCuts && !other->fCuts ) return kTRUE;
if ( ( fCuts && !other->fCuts ) || ( !fCuts && other->fCuts ) ) return kFALSE;
if ( fCuts->GetEntries() != other->fCuts->GetEntries() ) return kFALSE;
Int_t n1in2(0);
Int_t n2in1(0);
for ( Int_t i = 0; i <= fCuts->GetLast(); ++i )
{
AliAnalysisMuMuCutElement* thisCuti = static_cast<AliAnalysisMuMuCutElement*>(fCuts->At(i));
if ( other->fCuts->FindObject(thisCuti) )
{
++n1in2;
}
}
for ( Int_t i = 0; i <= fCuts->GetLast(); ++i )
{
AliAnalysisMuMuCutElement* otherCuti = static_cast<AliAnalysisMuMuCutElement*>(other->fCuts->At(i));
if ( fCuts->FindObject(otherCuti) )
{
++n2in1;
}
}
return (n1in2==n2in1 && n1in2==fCuts->GetLast()+1);
}
Bool_t AliAnalysisMuMuCutCombination::Pass(const AliInputEventHandler& eventHandler) const
{
if (!fCuts) return kFALSE;
TIter next(fCuts);
AliAnalysisMuMuCutElement* ce;
const AliVEvent* event = eventHandler.GetEvent();
Bool_t passEvent(kTRUE);
Bool_t passEventHandler(kTRUE);
while ( ( ce = static_cast<AliAnalysisMuMuCutElement*>(next()) ) )
{
if ( ce->IsEventCutter() && !ce->Pass(*event) )
{
passEvent = kFALSE;
}
if ( ce->IsEventHandlerCutter() && !ce->Pass(eventHandler) )
{
passEventHandler = kFALSE;
}
}
if ( IsEventCutter() && IsEventHandlerCutter() )
{
return passEvent && passEventHandler;
}
if ( IsEventHandlerCutter() )
{
return passEventHandler;
}
if ( IsEventCutter() )
{
return passEvent;
}
return kFALSE;
}
Bool_t AliAnalysisMuMuCutCombination::Pass(const AliVParticle& particle) const
{
if (!fCuts) return kFALSE;
TIter next(fCuts);
AliAnalysisMuMuCutElement* ce;
while ( ( ce = static_cast<AliAnalysisMuMuCutElement*>(next()) ) )
{
if (ce->IsTrackCutter() && !ce->Pass(particle))
{
return kFALSE;
}
}
return kTRUE;
}
Bool_t AliAnalysisMuMuCutCombination::Pass(const AliVParticle& p1, const AliVParticle& p2) const
{
if (!fCuts) return kFALSE;
TIter next(fCuts);
AliAnalysisMuMuCutElement* ce;
while ( ( ce = static_cast<AliAnalysisMuMuCutElement*>(next()) ) )
{
if (ce->IsTrackPairCutter() && !ce->Pass(p1,p2))
{
return kFALSE;
}
}
return kTRUE;
}
Bool_t AliAnalysisMuMuCutCombination::Pass(const TString& firedTriggerClasses,
TString& acceptedTriggerClasses,
UInt_t L0, UInt_t L1, UInt_t L2) const
{
if (!fCuts) return kFALSE;
TIter next(fCuts);
AliAnalysisMuMuCutElement* ce;
Bool_t rv(kFALSE);
acceptedTriggerClasses = "";
while ( ( ce = static_cast<AliAnalysisMuMuCutElement*>(next()) ) )
{
TString tmp;
if (ce->IsTriggerClassCutter() && ce->Pass(firedTriggerClasses,tmp,L0,L1,L2))
{
acceptedTriggerClasses += tmp;
acceptedTriggerClasses += " ";
rv = kTRUE;
}
}
return rv;
}
void AliAnalysisMuMuCutCombination::Print(Option_t* space) const
{
std::cout << Form("%s(%p) [",GetName(),this);
if ( IsEventCutter() ) std::cout << " E";
if ( IsEventHandlerCutter() ) std::cout << " EH";
if ( IsTrackCutter() ) std::cout << " T";
if ( IsTrackPairCutter() ) std::cout << " TP";
if ( IsTriggerClassCutter() ) std::cout << " TC";
std::cout << " ]" << std::endl;
TIter next(fCuts);
AliAnalysisMuMuCutElement* ce;
while ( ( ce = static_cast<AliAnalysisMuMuCutElement*>(next()) ) )
{
std::cout << space;
ce->Print();
}
}
AliAnalysisMuMuCutCombination.cxx:1 AliAnalysisMuMuCutCombination.cxx:2 AliAnalysisMuMuCutCombination.cxx:3 AliAnalysisMuMuCutCombination.cxx:4 AliAnalysisMuMuCutCombination.cxx:5 AliAnalysisMuMuCutCombination.cxx:6 AliAnalysisMuMuCutCombination.cxx:7 AliAnalysisMuMuCutCombination.cxx:8 AliAnalysisMuMuCutCombination.cxx:9 AliAnalysisMuMuCutCombination.cxx:10 AliAnalysisMuMuCutCombination.cxx:11 AliAnalysisMuMuCutCombination.cxx:12 AliAnalysisMuMuCutCombination.cxx:13 AliAnalysisMuMuCutCombination.cxx:14 AliAnalysisMuMuCutCombination.cxx:15 AliAnalysisMuMuCutCombination.cxx:16 AliAnalysisMuMuCutCombination.cxx:17 AliAnalysisMuMuCutCombination.cxx:18 AliAnalysisMuMuCutCombination.cxx:19 AliAnalysisMuMuCutCombination.cxx:20 AliAnalysisMuMuCutCombination.cxx:21 AliAnalysisMuMuCutCombination.cxx:22 AliAnalysisMuMuCutCombination.cxx:23 AliAnalysisMuMuCutCombination.cxx:24 AliAnalysisMuMuCutCombination.cxx:25 AliAnalysisMuMuCutCombination.cxx:26 AliAnalysisMuMuCutCombination.cxx:27 AliAnalysisMuMuCutCombination.cxx:28 AliAnalysisMuMuCutCombination.cxx:29 AliAnalysisMuMuCutCombination.cxx:30 AliAnalysisMuMuCutCombination.cxx:31 AliAnalysisMuMuCutCombination.cxx:32 AliAnalysisMuMuCutCombination.cxx:33 AliAnalysisMuMuCutCombination.cxx:34 AliAnalysisMuMuCutCombination.cxx:35 AliAnalysisMuMuCutCombination.cxx:36 AliAnalysisMuMuCutCombination.cxx:37 AliAnalysisMuMuCutCombination.cxx:38 AliAnalysisMuMuCutCombination.cxx:39 AliAnalysisMuMuCutCombination.cxx:40 AliAnalysisMuMuCutCombination.cxx:41 AliAnalysisMuMuCutCombination.cxx:42 AliAnalysisMuMuCutCombination.cxx:43 AliAnalysisMuMuCutCombination.cxx:44 AliAnalysisMuMuCutCombination.cxx:45 AliAnalysisMuMuCutCombination.cxx:46 AliAnalysisMuMuCutCombination.cxx:47 AliAnalysisMuMuCutCombination.cxx:48 AliAnalysisMuMuCutCombination.cxx:49 AliAnalysisMuMuCutCombination.cxx:50 AliAnalysisMuMuCutCombination.cxx:51 AliAnalysisMuMuCutCombination.cxx:52 AliAnalysisMuMuCutCombination.cxx:53 AliAnalysisMuMuCutCombination.cxx:54 AliAnalysisMuMuCutCombination.cxx:55 AliAnalysisMuMuCutCombination.cxx:56 AliAnalysisMuMuCutCombination.cxx:57 AliAnalysisMuMuCutCombination.cxx:58 AliAnalysisMuMuCutCombination.cxx:59 AliAnalysisMuMuCutCombination.cxx:60 AliAnalysisMuMuCutCombination.cxx:61 AliAnalysisMuMuCutCombination.cxx:62 AliAnalysisMuMuCutCombination.cxx:63 AliAnalysisMuMuCutCombination.cxx:64 AliAnalysisMuMuCutCombination.cxx:65 AliAnalysisMuMuCutCombination.cxx:66 AliAnalysisMuMuCutCombination.cxx:67 AliAnalysisMuMuCutCombination.cxx:68 AliAnalysisMuMuCutCombination.cxx:69 AliAnalysisMuMuCutCombination.cxx:70 AliAnalysisMuMuCutCombination.cxx:71 AliAnalysisMuMuCutCombination.cxx:72 AliAnalysisMuMuCutCombination.cxx:73 AliAnalysisMuMuCutCombination.cxx:74 AliAnalysisMuMuCutCombination.cxx:75 AliAnalysisMuMuCutCombination.cxx:76 AliAnalysisMuMuCutCombination.cxx:77 AliAnalysisMuMuCutCombination.cxx:78 AliAnalysisMuMuCutCombination.cxx:79 AliAnalysisMuMuCutCombination.cxx:80 AliAnalysisMuMuCutCombination.cxx:81 AliAnalysisMuMuCutCombination.cxx:82 AliAnalysisMuMuCutCombination.cxx:83 AliAnalysisMuMuCutCombination.cxx:84 AliAnalysisMuMuCutCombination.cxx:85 AliAnalysisMuMuCutCombination.cxx:86 AliAnalysisMuMuCutCombination.cxx:87 AliAnalysisMuMuCutCombination.cxx:88 AliAnalysisMuMuCutCombination.cxx:89 AliAnalysisMuMuCutCombination.cxx:90 AliAnalysisMuMuCutCombination.cxx:91 AliAnalysisMuMuCutCombination.cxx:92 AliAnalysisMuMuCutCombination.cxx:93 AliAnalysisMuMuCutCombination.cxx:94 AliAnalysisMuMuCutCombination.cxx:95 AliAnalysisMuMuCutCombination.cxx:96 AliAnalysisMuMuCutCombination.cxx:97 AliAnalysisMuMuCutCombination.cxx:98 AliAnalysisMuMuCutCombination.cxx:99 AliAnalysisMuMuCutCombination.cxx:100 AliAnalysisMuMuCutCombination.cxx:101 AliAnalysisMuMuCutCombination.cxx:102 AliAnalysisMuMuCutCombination.cxx:103 AliAnalysisMuMuCutCombination.cxx:104 AliAnalysisMuMuCutCombination.cxx:105 AliAnalysisMuMuCutCombination.cxx:106 AliAnalysisMuMuCutCombination.cxx:107 AliAnalysisMuMuCutCombination.cxx:108 AliAnalysisMuMuCutCombination.cxx:109 AliAnalysisMuMuCutCombination.cxx:110 AliAnalysisMuMuCutCombination.cxx:111 AliAnalysisMuMuCutCombination.cxx:112 AliAnalysisMuMuCutCombination.cxx:113 AliAnalysisMuMuCutCombination.cxx:114 AliAnalysisMuMuCutCombination.cxx:115 AliAnalysisMuMuCutCombination.cxx:116 AliAnalysisMuMuCutCombination.cxx:117 AliAnalysisMuMuCutCombination.cxx:118 AliAnalysisMuMuCutCombination.cxx:119 AliAnalysisMuMuCutCombination.cxx:120 AliAnalysisMuMuCutCombination.cxx:121 AliAnalysisMuMuCutCombination.cxx:122 AliAnalysisMuMuCutCombination.cxx:123 AliAnalysisMuMuCutCombination.cxx:124 AliAnalysisMuMuCutCombination.cxx:125 AliAnalysisMuMuCutCombination.cxx:126 AliAnalysisMuMuCutCombination.cxx:127 AliAnalysisMuMuCutCombination.cxx:128 AliAnalysisMuMuCutCombination.cxx:129 AliAnalysisMuMuCutCombination.cxx:130 AliAnalysisMuMuCutCombination.cxx:131 AliAnalysisMuMuCutCombination.cxx:132 AliAnalysisMuMuCutCombination.cxx:133 AliAnalysisMuMuCutCombination.cxx:134 AliAnalysisMuMuCutCombination.cxx:135 AliAnalysisMuMuCutCombination.cxx:136 AliAnalysisMuMuCutCombination.cxx:137 AliAnalysisMuMuCutCombination.cxx:138 AliAnalysisMuMuCutCombination.cxx:139 AliAnalysisMuMuCutCombination.cxx:140 AliAnalysisMuMuCutCombination.cxx:141 AliAnalysisMuMuCutCombination.cxx:142 AliAnalysisMuMuCutCombination.cxx:143 AliAnalysisMuMuCutCombination.cxx:144 AliAnalysisMuMuCutCombination.cxx:145 AliAnalysisMuMuCutCombination.cxx:146 AliAnalysisMuMuCutCombination.cxx:147 AliAnalysisMuMuCutCombination.cxx:148 AliAnalysisMuMuCutCombination.cxx:149 AliAnalysisMuMuCutCombination.cxx:150 AliAnalysisMuMuCutCombination.cxx:151 AliAnalysisMuMuCutCombination.cxx:152 AliAnalysisMuMuCutCombination.cxx:153 AliAnalysisMuMuCutCombination.cxx:154 AliAnalysisMuMuCutCombination.cxx:155 AliAnalysisMuMuCutCombination.cxx:156 AliAnalysisMuMuCutCombination.cxx:157 AliAnalysisMuMuCutCombination.cxx:158 AliAnalysisMuMuCutCombination.cxx:159 AliAnalysisMuMuCutCombination.cxx:160 AliAnalysisMuMuCutCombination.cxx:161 AliAnalysisMuMuCutCombination.cxx:162 AliAnalysisMuMuCutCombination.cxx:163 AliAnalysisMuMuCutCombination.cxx:164 AliAnalysisMuMuCutCombination.cxx:165 AliAnalysisMuMuCutCombination.cxx:166 AliAnalysisMuMuCutCombination.cxx:167 AliAnalysisMuMuCutCombination.cxx:168 AliAnalysisMuMuCutCombination.cxx:169 AliAnalysisMuMuCutCombination.cxx:170 AliAnalysisMuMuCutCombination.cxx:171 AliAnalysisMuMuCutCombination.cxx:172 AliAnalysisMuMuCutCombination.cxx:173 AliAnalysisMuMuCutCombination.cxx:174 AliAnalysisMuMuCutCombination.cxx:175 AliAnalysisMuMuCutCombination.cxx:176 AliAnalysisMuMuCutCombination.cxx:177 AliAnalysisMuMuCutCombination.cxx:178 AliAnalysisMuMuCutCombination.cxx:179 AliAnalysisMuMuCutCombination.cxx:180 AliAnalysisMuMuCutCombination.cxx:181 AliAnalysisMuMuCutCombination.cxx:182 AliAnalysisMuMuCutCombination.cxx:183 AliAnalysisMuMuCutCombination.cxx:184 AliAnalysisMuMuCutCombination.cxx:185 AliAnalysisMuMuCutCombination.cxx:186 AliAnalysisMuMuCutCombination.cxx:187 AliAnalysisMuMuCutCombination.cxx:188 AliAnalysisMuMuCutCombination.cxx:189 AliAnalysisMuMuCutCombination.cxx:190 AliAnalysisMuMuCutCombination.cxx:191 AliAnalysisMuMuCutCombination.cxx:192 AliAnalysisMuMuCutCombination.cxx:193 AliAnalysisMuMuCutCombination.cxx:194 AliAnalysisMuMuCutCombination.cxx:195 AliAnalysisMuMuCutCombination.cxx:196 AliAnalysisMuMuCutCombination.cxx:197 AliAnalysisMuMuCutCombination.cxx:198 AliAnalysisMuMuCutCombination.cxx:199 AliAnalysisMuMuCutCombination.cxx:200 AliAnalysisMuMuCutCombination.cxx:201 AliAnalysisMuMuCutCombination.cxx:202 AliAnalysisMuMuCutCombination.cxx:203 AliAnalysisMuMuCutCombination.cxx:204 AliAnalysisMuMuCutCombination.cxx:205 AliAnalysisMuMuCutCombination.cxx:206 AliAnalysisMuMuCutCombination.cxx:207 AliAnalysisMuMuCutCombination.cxx:208 AliAnalysisMuMuCutCombination.cxx:209 AliAnalysisMuMuCutCombination.cxx:210 AliAnalysisMuMuCutCombination.cxx:211 AliAnalysisMuMuCutCombination.cxx:212 AliAnalysisMuMuCutCombination.cxx:213 AliAnalysisMuMuCutCombination.cxx:214 AliAnalysisMuMuCutCombination.cxx:215 AliAnalysisMuMuCutCombination.cxx:216 AliAnalysisMuMuCutCombination.cxx:217 AliAnalysisMuMuCutCombination.cxx:218 AliAnalysisMuMuCutCombination.cxx:219 AliAnalysisMuMuCutCombination.cxx:220 AliAnalysisMuMuCutCombination.cxx:221 AliAnalysisMuMuCutCombination.cxx:222 AliAnalysisMuMuCutCombination.cxx:223 AliAnalysisMuMuCutCombination.cxx:224 AliAnalysisMuMuCutCombination.cxx:225 AliAnalysisMuMuCutCombination.cxx:226 AliAnalysisMuMuCutCombination.cxx:227 AliAnalysisMuMuCutCombination.cxx:228 AliAnalysisMuMuCutCombination.cxx:229 AliAnalysisMuMuCutCombination.cxx:230 AliAnalysisMuMuCutCombination.cxx:231 AliAnalysisMuMuCutCombination.cxx:232 AliAnalysisMuMuCutCombination.cxx:233 AliAnalysisMuMuCutCombination.cxx:234 AliAnalysisMuMuCutCombination.cxx:235 AliAnalysisMuMuCutCombination.cxx:236 AliAnalysisMuMuCutCombination.cxx:237 AliAnalysisMuMuCutCombination.cxx:238 AliAnalysisMuMuCutCombination.cxx:239 AliAnalysisMuMuCutCombination.cxx:240 AliAnalysisMuMuCutCombination.cxx:241 AliAnalysisMuMuCutCombination.cxx:242 AliAnalysisMuMuCutCombination.cxx:243 AliAnalysisMuMuCutCombination.cxx:244 AliAnalysisMuMuCutCombination.cxx:245 AliAnalysisMuMuCutCombination.cxx:246 AliAnalysisMuMuCutCombination.cxx:247 AliAnalysisMuMuCutCombination.cxx:248 AliAnalysisMuMuCutCombination.cxx:249 AliAnalysisMuMuCutCombination.cxx:250 AliAnalysisMuMuCutCombination.cxx:251 AliAnalysisMuMuCutCombination.cxx:252 AliAnalysisMuMuCutCombination.cxx:253 AliAnalysisMuMuCutCombination.cxx:254 AliAnalysisMuMuCutCombination.cxx:255 AliAnalysisMuMuCutCombination.cxx:256 AliAnalysisMuMuCutCombination.cxx:257 AliAnalysisMuMuCutCombination.cxx:258 AliAnalysisMuMuCutCombination.cxx:259 AliAnalysisMuMuCutCombination.cxx:260 AliAnalysisMuMuCutCombination.cxx:261 AliAnalysisMuMuCutCombination.cxx:262 AliAnalysisMuMuCutCombination.cxx:263 AliAnalysisMuMuCutCombination.cxx:264 AliAnalysisMuMuCutCombination.cxx:265 AliAnalysisMuMuCutCombination.cxx:266 AliAnalysisMuMuCutCombination.cxx:267 AliAnalysisMuMuCutCombination.cxx:268 AliAnalysisMuMuCutCombination.cxx:269 AliAnalysisMuMuCutCombination.cxx:270 AliAnalysisMuMuCutCombination.cxx:271 AliAnalysisMuMuCutCombination.cxx:272 AliAnalysisMuMuCutCombination.cxx:273 AliAnalysisMuMuCutCombination.cxx:274 AliAnalysisMuMuCutCombination.cxx:275 AliAnalysisMuMuCutCombination.cxx:276 AliAnalysisMuMuCutCombination.cxx:277 AliAnalysisMuMuCutCombination.cxx:278 AliAnalysisMuMuCutCombination.cxx:279 AliAnalysisMuMuCutCombination.cxx:280 AliAnalysisMuMuCutCombination.cxx:281 AliAnalysisMuMuCutCombination.cxx:282 AliAnalysisMuMuCutCombination.cxx:283 AliAnalysisMuMuCutCombination.cxx:284 AliAnalysisMuMuCutCombination.cxx:285 AliAnalysisMuMuCutCombination.cxx:286 AliAnalysisMuMuCutCombination.cxx:287 AliAnalysisMuMuCutCombination.cxx:288 AliAnalysisMuMuCutCombination.cxx:289 AliAnalysisMuMuCutCombination.cxx:290 AliAnalysisMuMuCutCombination.cxx:291 AliAnalysisMuMuCutCombination.cxx:292 AliAnalysisMuMuCutCombination.cxx:293 AliAnalysisMuMuCutCombination.cxx:294 AliAnalysisMuMuCutCombination.cxx:295 AliAnalysisMuMuCutCombination.cxx:296 AliAnalysisMuMuCutCombination.cxx:297 AliAnalysisMuMuCutCombination.cxx:298 AliAnalysisMuMuCutCombination.cxx:299 AliAnalysisMuMuCutCombination.cxx:300 AliAnalysisMuMuCutCombination.cxx:301 AliAnalysisMuMuCutCombination.cxx:302 AliAnalysisMuMuCutCombination.cxx:303 AliAnalysisMuMuCutCombination.cxx:304 AliAnalysisMuMuCutCombination.cxx:305 AliAnalysisMuMuCutCombination.cxx:306 AliAnalysisMuMuCutCombination.cxx:307 AliAnalysisMuMuCutCombination.cxx:308 AliAnalysisMuMuCutCombination.cxx:309