1 #include "AliRunAnalysis.h"
2 //________________________________
3 ///////////////////////////////////////////////////////////
5 // class AliRunAnalysis
9 // Piotr.Skowronski@cern.ch
11 ///////////////////////////////////////////////////////////
16 #include <TObjString.h>
20 #include <TObjArray.h>
23 #include <AliRunLoader.h>
25 #include <AliESDtrack.h>
29 #include "AliEventCut.h"
30 #include "AliReader.h"
31 #include "AliVAODParticle.h"
34 ClassImp(AliRunAnalysis)
35 AliRunAnalysis::AliRunAnalysis():
36 TTask("RunAnalysis","Alice Analysis Manager") ,
44 /*********************************************************/
46 AliRunAnalysis::~AliRunAnalysis()
52 /*********************************************************/
54 Int_t AliRunAnalysis::Run()
60 Error("Run","Reader is not set");
63 TDirectory* cwd = gDirectory;
64 /******************************/
66 /******************************/
67 for (Int_t an = 0; an < fAnalysies.GetEntries(); an++)
69 AliAnalysis* analysis = (AliAnalysis*)fAnalysies.At(an);
73 while (fReader->Next() == kFALSE)
75 AliAOD* eventsim = fReader->GetEventSim();
76 AliAOD* eventrec = fReader->GetEventRec();
78 /******************************/
80 /******************************/
81 if ( Rejected(eventrec,eventsim) )
83 if (AliVAODParticle::GetDebug()) Info("Run","Event rejected by Event Cut");
84 continue; //Did not pass the
86 /******************************/
88 /******************************/
89 for (Int_t an = 0; an < fAnalysies.GetEntries(); an++)
91 AliAnalysis* analysis = (AliAnalysis*)fAnalysies.At(an);
92 analysis->ProcessEvent(eventrec,eventsim);
95 }//end of loop over events
97 /******************************/
99 /******************************/
101 for (Int_t an = 0; an < fAnalysies.GetEntries(); an++)
103 AliAnalysis* analysis = (AliAnalysis*)fAnalysies.At(an);
109 /*********************************************************/
111 void AliRunAnalysis::Add(AliAnalysis* a)
113 //adds a to the list of analysis
116 /*********************************************************/
118 void AliRunAnalysis::SetEventCut(AliEventCut* evcut)
120 //Sets event - makes a private copy
122 if (evcut) fEventCut = (AliEventCut*)evcut->Clone();
123 else fEventCut = 0x0;
126 /*********************************************************/
128 Bool_t AliRunAnalysis::Rejected(AliAOD* recevent, AliAOD* simevent)
130 //checks the event cut
131 if (fEventCut == 0x0) return kFALSE;
134 if (fEventCut->Rejected(recevent)) return kTRUE;
137 if (fEventCut->Rejected(simevent)) return kTRUE;