#endif
AliFemtoBasicEventCut::AliFemtoBasicEventCut() :
- fNEventsPassed(0), fNEventsFailed(0)
+ AliFemtoEventCut(),
+ fEventMult(),
+ fVertZPos(),
+ fAcceptBadVertex(false),
+ fNEventsPassed(0),
+ fNEventsFailed(0)
{
// Default constructor
+ fEventMult[0] = 0;
+ fEventMult[1] = 100000;
+ fVertZPos[0] = -100.0;
+ fVertZPos[1] = 100.0;
}
//------------------------------
AliFemtoBasicEventCut::~AliFemtoBasicEventCut(){
((mult > fEventMult[0]) &&
(mult < fEventMult[1]) &&
(vertexZPos > fVertZPos[0]) &&
- (vertexZPos < fVertZPos[1]));
+ (vertexZPos < fVertZPos[1]) &&
+ (fAcceptBadVertex || (event->PrimVertCov()[4] > -1000.0)));
goodEvent ? fNEventsPassed++ : fNEventsFailed++ ;
cout << "AliFemtoBasicEventCut:: return : " << goodEvent << endl;
return (goodEvent);
AliFemtoString returnThis = stemp;
return returnThis;
}
+void AliFemtoBasicEventCut::SetAcceptBadVertex(bool b)
+{
+ fAcceptBadVertex = b;
+}
+bool AliFemtoBasicEventCut::GetAcceptBadVertex()
+{
+ return fAcceptBadVertex;
+}
void SetEventMult(const int& lo,const int& hi);
void SetVertZPos(const float& lo, const float& hi);
+ void SetAcceptBadVertex(bool b);
int NEventsPassed() const;
int NEventsFailed() const;
+ bool GetAcceptBadVertex();
virtual AliFemtoString Report();
virtual bool Pass(const AliFemtoEvent* event);
int fEventMult[2]; // range of multiplicity
float fVertZPos[2]; // range of z-position of vertex
-
+ bool fAcceptBadVertex; // Set to true to accept events with bad vertex
long fNEventsPassed; // Number of events checked by this cut that passed
long fNEventsFailed; // Number of events checked by this cut that failed
fNumberOfTracks(0),
fMagneticField(0),
fPrimVertPos(0,0,0),
+ fPrimVertCov(),
fTrackCollection(0),
fV0Collection(0),
fXiCollection(0),
fPrimVertPos[0]=-999.0;
fPrimVertPos[1]=-999.0;
fPrimVertPos[2]=-999.0;
+ fPrimVertCov[0]=0.000000000001;
+ fPrimVertCov[1]=0.000000000001;
+ fPrimVertCov[2]=0.000000000001;
+ fPrimVertCov[3]=0.000000000001;
+ fPrimVertCov[4]=0.000000000001;
+ fPrimVertCov[5]=0.000000000001;
fTrackCollection = new AliFemtoTrackCollection;
fV0Collection = new AliFemtoV0Collection;
fXiCollection = new AliFemtoXiCollection;
fNumberOfTracks(0),
fMagneticField(0),
fPrimVertPos(0,0,0),
+ fPrimVertCov(),
fTrackCollection(0),
fV0Collection(0),
fXiCollection(0),
fEventNumber = ev.fEventNumber;
fRunNumber = ev.fRunNumber;
+ SetPrimVertCov(ev.PrimVertCov());
+
fZDCN1Energy=ev.fZDCN1Energy;
fZDCP1Energy=ev.fZDCP1Energy;
fZDCN2Energy=ev.fZDCN2Energy;
fNumberOfTracks(0),
fMagneticField(0),
fPrimVertPos(0,0,0),
+ fPrimVertCov(),
fTrackCollection(0),
fV0Collection(0),
fXiCollection(0),
fEventNumber = ev.fEventNumber;
fRunNumber = ev.fRunNumber;
+ SetPrimVertCov(ev.PrimVertCov());
+
fZDCN1Energy=ev.fZDCN1Energy;
fZDCP1Energy=ev.fZDCP1Energy;
fZDCN2Energy=ev.fZDCN2Energy;
void AliFemtoEvent::SetPrimVertPos(const AliFemtoThreeVector& vp){fPrimVertPos = vp;}
+void AliFemtoEvent::SetPrimVertCov(const double* v){
+ fPrimVertCov[0] = v[0];
+ fPrimVertCov[1] = v[1];
+ fPrimVertCov[2] = v[2];
+ fPrimVertCov[3] = v[3];
+ fPrimVertCov[4] = v[4];
+ fPrimVertCov[5] = v[5];
+}
void AliFemtoEvent::SetMagneticField(const double& magF){fMagneticField = magF;}
void AliFemtoEvent::SetTriggerMask(const unsigned long int& aTriggerMask) {fTriggerMask=aTriggerMask;}
AliFemtoKinkCollection* AliFemtoEvent::KinkCollection() const {return fKinkCollection;}
AliFemtoTrackCollection* AliFemtoEvent::TrackCollection() const {return fTrackCollection;}
AliFemtoThreeVector AliFemtoEvent::PrimVertPos() const {return fPrimVertPos;}
+const double* AliFemtoEvent::PrimVertCov() const {return fPrimVertCov;}
double AliFemtoEvent::MagneticField() const {return fMagneticField;}
unsigned long int AliFemtoEvent::TriggerMask() const {return fTriggerMask;}
unsigned char AliFemtoEvent::TriggerCluster() const {return fTriggerCluster;}
int RunNumber() const;
unsigned short NumberOfTracks() const;
AliFemtoThreeVector PrimVertPos() const;
+ const double* PrimVertCov() const;
AliFemtoV0Collection* V0Collection() const;
AliFemtoXiCollection* XiCollection() const;
AliFemtoKinkCollection* KinkCollection() const;
void SetRunNumber(const int& i);
void SetNumberOfTracks(const unsigned short& s);
void SetPrimVertPos(const AliFemtoThreeVector& v);
+ void SetPrimVertCov(const double* v);
void SetMagneticField(const double& x);
//functions for alice variables
double fMagneticField; // magnetic field in Z direction
AliFemtoThreeVector fPrimVertPos; // primary vertex position
+ double fPrimVertCov[6]; // primary vertex covariances
AliFemtoTrackCollection* fTrackCollection; // collection of tracks
AliFemtoV0Collection* fV0Collection; // collection of V0s
AliFemtoXiCollection* fXiCollection; // collection of Xis
//Vertex
double fV1[3];
+ double fVCov[6];
if (fUseTPCOnly) {
fEvent->GetPrimaryVertexTPC()->GetXYZ(fV1);
+ fEvent->GetPrimaryVertexTPC()->GetCovMatrix(fVCov);
+ if (!fEvent->GetPrimaryVertexTPC()->GetStatus())
+ fVCov[4] = -1001.0;
}
else {
fEvent->GetPrimaryVertex()->GetXYZ(fV1);
+ fEvent->GetPrimaryVertex()->GetCovMatrix(fVCov);
+ if (!fEvent->GetPrimaryVertex()->GetStatus())
+ fVCov[4] = -1001.0;
}
AliFmThreeVectorF vertex(fV1[0],fV1[1],fV1[2]);
hbtEvent->SetPrimVertPos(vertex);
+ hbtEvent->SetPrimVertCov(fVCov);
//starting to reading tracks
int nofTracks=0; //number of reconstructed tracks in event
//Vertex
double fV1[3];
+ double fVCov[6];
if (fUseTPCOnly) {
fEvent->GetPrimaryVertexTPC()->GetXYZ(fV1);
+ fEvent->GetPrimaryVertexTPC()->GetCovMatrix(fVCov);
+ if (!fEvent->GetPrimaryVertexTPC()->GetStatus())
+ fVCov[4] = -1001.0;
}
else {
fEvent->GetPrimaryVertex()->GetXYZ(fV1);
+ fEvent->GetPrimaryVertex()->GetCovMatrix(fVCov);
+ if (!fEvent->GetPrimaryVertex()->GetStatus())
+ fVCov[4] = -1001.0;
}
AliFmThreeVectorF vertex(fV1[0],fV1[1],fV1[2]);
+
hbtEvent->SetPrimVertPos(vertex);
+ hbtEvent->SetPrimVertCov(fVCov);
AliGenHijingEventHeader *hdh = dynamic_cast<AliGenHijingEventHeader *> (fGenHeader);