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>
28 #include "AliEventCut.h"
29 #include "AliReader.h"
30 #include "AliVAODParticle.h"
33 ClassImp(AliRunAnalysis)
34 AliRunAnalysis::AliRunAnalysis():
35 TTask("RunAnalysis","Alice Analysis Manager") ,
43 /*********************************************************/
45 AliRunAnalysis::~AliRunAnalysis()
52 /*********************************************************/
54 Int_t AliRunAnalysis::Run()
60 Error("Run","Reader is not set");
63 /******************************/
65 /******************************/
66 for (Int_t an = 0; an < fAnalysies.GetEntries(); an++)
68 AliAnalysis* analysis = (AliAnalysis*)fAnalysies.At(an);
72 while (fReader->Next() == kFALSE)
74 AliAOD* eventsim = fReader->GetEventSim();
75 AliAOD* eventrec = fReader->GetEventRec();
77 /******************************/
79 /******************************/
80 if ( Pass(eventrec,eventsim) )
82 if (AliVAODParticle::GetDebug()) Info("Run","Event rejected by Event Cut");
83 continue; //Did not pass the
85 /******************************/
87 /******************************/
88 for (Int_t an = 0; an < fAnalysies.GetEntries(); an++)
90 AliAnalysis* analysis = (AliAnalysis*)fAnalysies.At(an);
91 analysis->ProcessEvent(eventrec,eventsim);
94 }//end of loop over events
96 /******************************/
98 /******************************/
99 for (Int_t an = 0; an < fAnalysies.GetEntries(); an++)
101 AliAnalysis* analysis = (AliAnalysis*)fAnalysies.At(an);
107 /*********************************************************/
109 void AliRunAnalysis::Add(AliAnalysis* a)
111 //adds a to the list of analysis
114 /*********************************************************/
116 Bool_t AliRunAnalysis::Pass(AliAOD* recevent, AliAOD* simevent)
118 //checks the event cut
119 if (fEventCut == 0x0) return kFALSE;
122 if (fEventCut->Pass(recevent)) return kTRUE;
125 if (fEventCut->Pass(simevent)) return kTRUE;