fixed copy constructor
authorjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 5 Oct 2006 15:36:11 +0000 (15:36 +0000)
committerjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 5 Oct 2006 15:36:11 +0000 (15:36 +0000)
PWG0/esdTrackCuts/AliESDtrackCuts.cxx
PWG0/esdTrackCuts/AliESDtrackCuts.h
PWG0/esdTrackCuts/AliTestESDtrackCutsSelector.cxx

index a57b033c792f7fe39645438102625be1f6c996df..8616caa00e6b2176df0ef88c1a8e0b0708c279f4 100644 (file)
@@ -71,6 +71,8 @@ AliESDtrackCuts::AliESDtrackCuts() : TNamed(),
   //
   // default constructor
   //
+
+  Init();
 }
 
 //____________________________________________________________________
@@ -378,7 +380,7 @@ void AliESDtrackCuts::Copy(TObject &c) const
   if (fhCutStatistics) target.fhCutStatistics = (TH1F*) fhCutStatistics->Clone();
   if (fhCutCorrelation) target.fhCutCorrelation = (TH2F*) fhCutCorrelation->Clone();
 
-  TObject::Copy(c);
+  TNamed::Copy(c);
 }
 
 //_____________________________________________________________________________
index 4999d9526a9360524afc74ded2b77e64299f7c05..59b59768ec8aaab8d164f6fbe2a04f031e307051 100644 (file)
@@ -46,6 +46,8 @@ public:
 
   virtual Long64_t Merge(TCollection* list);
   virtual void Copy(TObject &c) const;
+  AliESDtrackCuts(const AliESDtrackCuts& pd);  // Copy Constructor
+  AliESDtrackCuts &operator=(const AliESDtrackCuts &c);
 
   //######################################################
   // track quality cut setters  
@@ -153,12 +155,6 @@ protected:
   TH1F*  fhCutStatistics;             //-> statistics of what cuts the tracks did not survive
   TH2F*  fhCutCorrelation;            //-> 2d statistics plot
 
- private:
-
-  AliESDtrackCuts(const AliESDtrackCuts& pd);  // Copy Constructor
-  AliESDtrackCuts &operator=(const AliESDtrackCuts &c);
-  
-  
   ClassDef(AliESDtrackCuts, 1)
 };
 
index 7ec5ea5974bad8d3708ecde5c6021d77049fb6c4..211a8725a79c17f9a708bf07f5c5a43b1aefcb1e 100644 (file)
@@ -61,11 +61,11 @@ void AliTestESDtrackCutsSelector::ReadUserObjects(TTree* tree)
   // read the user objects, called from slavebegin and begin
 
   if (!fEsdTrackCutsAll && fInput)
-    fEsdTrackCutsAll = dynamic_cast<AliESDtrackCuts*> (fInput->FindObject("esdTrackCutsAll"));
+    fEsdTrackCutsAll = dynamic_cast<AliESDtrackCuts*> (fInput->FindObject("esdTrackCutsAll")->Clone());
   if (!fEsdTrackCutsPri && fInput)
-    fEsdTrackCutsPri = dynamic_cast<AliESDtrackCuts*> (fInput->FindObject("esdTrackCutsPri"));
+    fEsdTrackCutsPri = dynamic_cast<AliESDtrackCuts*> (fInput->FindObject("esdTrackCutsPri")->Clone());
   if (!fEsdTrackCutsSec && fInput)
-    fEsdTrackCutsSec = dynamic_cast<AliESDtrackCuts*> (fInput->FindObject("esdTrackCutsSec"));
+    fEsdTrackCutsSec = dynamic_cast<AliESDtrackCuts*> (fInput->FindObject("esdTrackCutsSec")->Clone());
 
   if (!fEsdTrackCutsAll && tree)
     fEsdTrackCutsAll = dynamic_cast<AliESDtrackCuts*> (tree->GetUserInfo()->FindObject("esdTrackCutsAll"));
@@ -160,7 +160,8 @@ Bool_t AliTestESDtrackCutsSelector::Process(Long64_t entry)
       AliDebug(AliLog::kError, Form("UNEXPECTED: part with label %d not found in stack (track loop).", label));
       continue;
     }
-    if (AliPWG0Helper::IsPrimaryCharged(particle, nPrim) == kFALSE)
+
+    if (label < nPrim)
       fEsdTrackCutsPri->AcceptTrack(esdTrack);
     else
       fEsdTrackCutsSec->AcceptTrack(esdTrack);
@@ -197,6 +198,19 @@ void AliTestESDtrackCutsSelector::Terminate()
 
   AliSelectorRL::Terminate();
 
+  if (fOutput)
+    fOutput->Print();
+
+  fEsdTrackCutsAll = dynamic_cast<AliESDtrackCuts*> (fOutput->FindObject("esdTrackCutsAll"));
+  fEsdTrackCutsPri = dynamic_cast<AliESDtrackCuts*> (fOutput->FindObject("esdTrackCutsPri"));
+  fEsdTrackCutsSec = dynamic_cast<AliESDtrackCuts*> (fOutput->FindObject("esdTrackCutsSec"));
+
+  // check if the esd track cut objects are there
+  if (!fEsdTrackCutsAll || !fEsdTrackCutsPri || !fEsdTrackCutsSec) {
+    AliDebug(AliLog::kError, Form("fEsdTrackCutsXXX not available %p %p %p", fEsdTrackCutsAll, fEsdTrackCutsPri, fEsdTrackCutsSec));
+    return;
+  }
+
   TFile* file = TFile::Open("trackCuts.root", "RECREATE");
   fEsdTrackCutsAll->SaveHistograms("esdTrackCutsAll");
   fEsdTrackCutsPri->SaveHistograms("esdTrackCutsPri");