#include "AliMC.h"
#include "AliRun.h"
-
+using std::cout;
+using std::endl;
ClassImp(AliGenCocktailAfterBurner)
/*********************************************************************/
/*********************************************************************/
if (gDebug>0)cout<<"AliGenCocktailAfterBurner::AddAfterBurner Named "<<Name<<endl;
- if(TestBit(kPtRange))
+ if(TestBit(kPtRange) && !(AfterBurner->TestBit(kPtRange)) && !(AfterBurner->TestBit(kMomentumRange)))
AfterBurner->SetPtRange(fPtMin,fPtMax);
- if(TestBit(kMomentumRange))
+ if(TestBit(kMomentumRange) && !(AfterBurner->TestBit(kPtRange)) && !(AfterBurner->TestBit(kMomentumRange)))
AfterBurner->SetMomentumRange(fPMin,fPMax);
- AfterBurner->SetYRange(fYMin,fYMax);
- AfterBurner->SetPhiRange(fPhiMin*180/TMath::Pi(),fPhiMax*180/TMath::Pi());
- AfterBurner->SetThetaRange(fThetaMin*180/TMath::Pi(),fThetaMax*180/TMath::Pi());
- AfterBurner->SetOrigin(fOrigin[0], fOrigin[1], fOrigin[2]);
- AfterBurner->SetSigma(fOsigma[0], fOsigma[1], fOsigma[2]);
- AfterBurner->SetVertexSmear(fVertexSmear);
- AfterBurner->SetTrackingFlag(fTrackIt);
- AfterBurner->SetVertexSource(kContainer);
+ if (TestBit(kYRange) && !(AfterBurner->TestBit(kYRange)))
+ AfterBurner->SetYRange(fYMin,fYMax);
+ if (TestBit(kPhiRange) && !(AfterBurner->TestBit(kPhiRange)))
+ AfterBurner->SetPhiRange(fPhiMin*180/TMath::Pi(),fPhiMax*180/TMath::Pi());
+ if (TestBit(kThetaRange) && !(AfterBurner->TestBit(kThetaRange)) && !(AfterBurner->TestBit(kEtaRange)))
+ AfterBurner->SetThetaRange(fThetaMin*180/TMath::Pi(),fThetaMax*180/TMath::Pi());
+ if (!(AfterBurner->TestBit(kVertexRange))) {
+ AfterBurner->SetOrigin(fOrigin[0], fOrigin[1], fOrigin[2]);
+ AfterBurner->SetSigma(fOsigma[0], fOsigma[1], fOsigma[2]);
+ AfterBurner->SetVertexSmear(fVertexSmear);
+ AfterBurner->SetVertexSource(kContainer);
+ AfterBurner->SetTimeOrigin(fTimeOrigin);
+ }
+ AfterBurner->SetTrackingFlag(fTrackIt);
+ //AfterBurner->SetContainer(this);
+
//
// Add AfterBurner to list
cout << "Number of events per run" << numberOfEvents << endl;
TArrayF eventVertex;
eventVertex.Set(3 * (numberOfEvents + fNBgEvents));
+ TArrayF eventTime;
+ eventTime.Set(numberOfEvents + fNBgEvents);
fCurrentEvent=0;
//Create stacks
fInternalStacks = new TObjArray(numberOfEvents + fNBgEvents); //Create array of internal stacks
fInternalStacks->Add(stack);
Vertex();
for (Int_t j = 0; j < 3; j++) eventVertex[3 * i + j] = fVertex[j];
+ eventTime[i] = fTime;
fHeaders[i] = new AliGenCocktailEventHeader();
fCollisionGeometries[i] = 0;
}
// Set the vertex for the generator
Int_t ioff = 3 * i;
fCurrentGenerator->SetVertex(eventVertex.At(ioff), eventVertex.At(ioff + 1), eventVertex.At(ioff + 2));
+ fCurrentGenerator->SetTime(eventTime.At(i));
fHeader = fHeaders[i];
- // Set the vertex for the cocktail
+ // Set the vertex and time for the cocktail
TArrayF v(3);
for (Int_t j=0; j<3; j++) v[j] = eventVertex.At(ioff + j);
fHeader->SetPrimaryVertex(v);
+ fHeader->SetInteractionTime(eventTime.At(i));
// Generate event
fCurrentGenerator->Generate();
//