]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliESDv0KineCuts.cxx
cov fixes
[u/mrichter/AliRoot.git] / ANALYSIS / AliESDv0KineCuts.cxx
index e9181466a4cbce1c3beda439ebbc37619a9199d9..2403a74309052966ae14baa4115263f938846e7b 100644 (file)
@@ -54,6 +54,8 @@ AliESDv0KineCuts::AliESDv0KineCuts() :
   , fGcutInvMass(0.05)\r
   , fK0cutChi2NDF(10)\r
   , fLcutChi2NDF(10)\r
+  , fUseExternalVertex(kFALSE)\r
+  , fDeleteVertex(kFALSE)\r
 {\r
   //\r
   // Default constructor\r
@@ -124,6 +126,8 @@ AliESDv0KineCuts::AliESDv0KineCuts(const AliESDv0KineCuts &ref):
   , fGcutInvMass(0.05)\r
   , fK0cutChi2NDF(10)\r
   , fLcutChi2NDF(10)\r
+  , fUseExternalVertex(kFALSE)\r
+  , fDeleteVertex(kFALSE)\r
 {\r
   //\r
   // Copy operator\r
@@ -156,7 +160,8 @@ void AliESDv0KineCuts::Copy(TObject &ref) const {
   target.fTPCchi2perCls = fTPCchi2perCls;\r
   target.fTPCclsRatio = fTPCclsRatio;\r
   target.fNoKinks = fNoKinks;\r
-\r
+  target.fUseExternalVertex = fUseExternalVertex;  //added december 2nd 2011\r
+  target.fDeleteVertex = fDeleteVertex;  //added december 2nd 2011\r
 \r
   // default gamma cuts values\r
   target.fGcutChi2NDF = fGcutChi2NDF;\r
@@ -949,6 +954,17 @@ void  AliESDv0KineCuts::SetEvent(AliESDEvent* const event){
     AliErrorClass("Invalid input event pointer");\r
     return;\r
   }\r
+if (fUseExternalVertex) return;\r
+else{\r
+       if(fPrimaryVertex && fDeleteVertex){\r
+               delete  fPrimaryVertex;\r
+               fPrimaryVertex=0x0;\r
+               }\r
+       fPrimaryVertex = new AliKFVertex(*(fEvent->GetPrimaryVertex()));\r
+       fDeleteVertex=kTRUE;\r
+       }\r
+\r
+\r
 \r
 }\r
 //____________________________________________________________________\r
@@ -963,13 +979,43 @@ void  AliESDv0KineCuts::SetEvent(AliVEvent* const event){
     return;\r
   }\r
 \r
+if (fUseExternalVertex) return;\r
+else{\r
+       if(fPrimaryVertex && fDeleteVertex){\r
+               delete  fPrimaryVertex;\r
+               fPrimaryVertex=0x0;\r
+               }\r
+       fPrimaryVertex = new AliKFVertex(*(event->GetPrimaryVertex()));\r
+       fDeleteVertex=kTRUE;\r
 }\r
+\r
+}\r
+\r
+\r
+//________________________________________________________________\r
+void    AliESDv0KineCuts::UseExternalVertex(Bool_t use_external){\r
+       //\r
+       // Reenable primary Vertex from ESD event\r
+       //\r
+       if (use_external) fUseExternalVertex =kTRUE;\r
+       else fUseExternalVertex =kFALSE;\r
+}\r
+\r
+\r
+\r
+\r
 //________________________________________________________________\r
 void AliESDv0KineCuts::SetPrimaryVertex(AliKFVertex* const v){\r
   //\r
   // set the primary vertex of the event\r
   //\r
-  fPrimaryVertex = v;\r
+       if(fPrimaryVertex && fDeleteVertex){   \r
+               delete  fPrimaryVertex;\r
+               fPrimaryVertex =0x0;\r
+               fDeleteVertex = kFALSE;\r
+               }  \r
+  fUseExternalVertex=kTRUE; \r
+  fPrimaryVertex = v; // set primary Vertex\r
   if(!fPrimaryVertex){\r
     AliErrorClass("Failed to initialize the primary vertex");\r
     return;\r