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* eventrec = fReader->GetEventRec();
76 AliAOD* eventsim = fReader->GetEventSim();
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 if (AliVAODParticle::GetDebug()) Info("Run","There is %d analyses",fAnalysies.GetEntries());
90 for (Int_t an = 0; an < fAnalysies.GetEntries(); an++)
92 AliAnalysis* analysis = (AliAnalysis*)fAnalysies.At(an);
93 analysis->ProcessEvent(eventrec,eventsim);
96 }//end of loop over events
98 /******************************/
100 /******************************/
102 for (Int_t an = 0; an < fAnalysies.GetEntries(); an++)
104 AliAnalysis* analysis = (AliAnalysis*)fAnalysies.At(an);
110 /*********************************************************/
112 void AliRunAnalysis::Add(AliAnalysis* a)
114 //adds a to the list of analysis
117 /*********************************************************/
119 void AliRunAnalysis::SetEventCut(AliEventCut* evcut)
121 //Sets event - makes a private copy
123 if (evcut) fEventCut = (AliEventCut*)evcut->Clone();
124 else fEventCut = 0x0;
127 /*********************************************************/
129 Bool_t AliRunAnalysis::Rejected(AliAOD* recevent, AliAOD* simevent)
131 //checks the event cut
132 if (fEventCut == 0x0) return kFALSE;
135 if (fEventCut->Rejected(recevent)) return kTRUE;
138 if (fEventCut->Rejected(simevent)) return kTRUE;