* provided "as is" without express or implied warranty. *
**************************************************************************/
+////////////////////////////////////////////////////
+// AliAnalysisTaskFlowEvent:
+//
+// analysis task for filling the flow event
+// from MCEvent, ESD, AOD ....
+// and put it in an output stream so it can
+// be used by the various flow analysis methods
+// for cuts the correction framework is used
+// which also outputs QA histograms to view
+// the effects of the cuts
+////////////////////////////////////////////////////
+
#include "Riostream.h" //needed as include
#include "TChain.h"
#include "TTree.h"
#include "AliAnalysisTaskFlowEvent.h"
-// AliAnalysisTaskFlowEvent:
-//
-// analysis task for filling the flow event
-// from MCEvent, ESD, AOD ....
-// and put it in an output stream so it can
-// be used by the various flow analysis methods
-// for cuts the correction framework is used
-// which also outputs QA histrograms to view
-// the effects of the cuts
-
ClassImp(AliAnalysisTaskFlowEvent)
fCFManager2(NULL),
fQAInt(NULL),
fQADiff(NULL),
+ fMinMult(0),
+ fMaxMult(10000000),
fQA(on),
fMCReactionPlaneAngle(0.),
fCount(0),
fCFManager2(NULL),
fQAInt(NULL),
fQADiff(NULL),
+ fMinMult(0),
+ fMaxMult(10000000),
fQA(kFALSE),
fMCReactionPlaneAngle(0.),
fCount(0),
fCFManager2(NULL),
fQAInt(NULL),
fQADiff(NULL),
+ fMinMult(0),
+ fMaxMult(10000000),
fQA(on),
fMCReactionPlaneAngle(0.),
fCount(0),
//else {cout<<"No eventHandler!"<<endl; }
// set the value of the monte carlo event plane for the flow event
- //RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
- // paste setters from AliFlowEventSimpleMaker.cxx
- //RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
-// TRandom3 random3Temp2; //init for manual settings (R.Rietkerk)
-// TTimeStamp dt2;
-// Int_t sseed2 = dt2.GetNanoSec()/1000;
-// random3Temp2.SetSeed(sseed2);
-// cout << "seed2 = " << sseed2 << endl;
-// cout << "random2 = " << random3Temp2.Rndm() << endl;
- //RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
- cout << "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR" << endl;
- cout << "TaskFlowEvent.cxx" << endl;
+ cout << "settings for afterburner in TaskFlowEvent.cxx:" << endl;
cout << "fCount" << fCount << endl;
cout << "fNoOfLoops" << fNoOfLoops << endl;
cout << "fEllipticFlowValue" << fEllipticFlowValue << endl;
cout << "fMultiplicityOfEvent" << fMultiplicityOfEvent << endl;
cout << "fSigmaMultiplicityOfEvent" << fSigmaMultiplicityOfEvent << endl;
- cout << "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR" << endl;
Double_t xRPangle=TMath::TwoPi()*(fMyTRandom3->Rndm());
Double_t xNewFlowValue = fMyTRandom3->Gaus(fEllipticFlowValue,fSigmaEllipticFlowValue);
Int_t nNewMultOfEvent = fMyTRandom3->Gaus(fMultiplicityOfEvent,fSigmaMultiplicityOfEvent);
cout << "xRPangle = " << xRPangle << endl;
cout << "xNewFlowValue = " << xNewFlowValue << endl;
cout << "nNewMultOfEvent = " << nNewMultOfEvent << endl;
- cout << "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR" << endl;
- //Int_t nNewMultOfEvent = random3Temp.Gaus(nMultiplicityOfEvent,nSigmaMult);
- // cout << "new multiplicity: " << nNewMultOfEvent << endl;
- //Double_t xNewFlowValue = random3Temp.Gaus(xEllipticFlowValue,xSigmaFlow);
- // cout << "new flow value: " << xNewFlowValue << endl;
- //fEventMaker->SetMCReactionPlaneAngle(fRP);
- fEventMaker->SetMCReactionPlaneAngle(xRPangle);
+ cout << "settings for after burner" << endl;
+
+ fEventMaker->SetMCReactionPlaneAngle(fRP);
+ if (fEllipticFlowValue != 0.) {
+ fEventMaker->SetMCReactionPlaneAngle(xRPangle);
+ }
fEventMaker->SetNoOfLoops(fNoOfLoops);
- fEventMaker->SetEllipticFlowValue(xNewFlowValue);
- fEventMaker->SetMultiplicityOfEvent(nNewMultOfEvent);
- //RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
+ fEventMaker->SetEllipticFlowValue(xNewFlowValue);
+ fEventMaker->SetMultiplicityOfEvent(nNewMultOfEvent);
+ //end settings afterburner
+
+ //setting event cuts
+ fEventMaker->SetMinMult(fMinMult);
+ fEventMaker->SetMaxMult(fMaxMult);
// Fill the FlowEventSimple for MC input
if (fAnalysisType == "MC") {
+/////////////////////////////////////////////////////
+// AliAnalysisTaskFlowEvent:
+// analysis task to fill the flow event
+// and make it available to the flow analysis methods.
+//////////////////////////////////////////////////////
+
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/* $Id: $ */
#ifndef AliAnalysisTaskFlowEvent_H
#define AliAnalysisTaskFlowEvent_H
-// AliAnalysisTaskFlowEvent:
-// analysis task to fill the flow event and make it available to the methods
-
-
class AliESDEvent;
class AliAODEvent;
class AliCFManager;
void SetAnalysisType(TString type) { this->fAnalysisType = type; }
TString GetAnalysisType() const { return this->fAnalysisType; }
+ void SetMinMult(Int_t multmin) {this->fMinMult = multmin; }
+ Int_t GetMinMult() const {return this->fMinMult; }
+ void SetMaxMult(Int_t multmax) {this->fMaxMult = multmax; }
+ Int_t GetMaxMult() const {return this->fMaxMult; }
+
+
void SetCFManager1(AliCFManager* cfmgr) {this->fCFManager1 = cfmgr; }
AliCFManager* GetCFManager1() {return this->fCFManager1; }
void SetCFManager2(AliCFManager* cfmgr) {this->fCFManager2 = cfmgr; }
AliCFManager* fCFManager2; // correction framework manager
TList* fQAInt; // QA histogram list
TList* fQADiff; // QA histogram list
+ Int_t fMinMult; // Minimum multiplicity from tracks selected using CORRFW
+ Int_t fMaxMult; // Maximum multiplicity from tracks selected using CORRFW
Bool_t fQA; // flag to set the filling of the QA hostograms
// values afterburner
Double_t fMCReactionPlaneAngle; // the angle of the reaction plane from the MC truth