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 a57b033..8616caa 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 4999d95..59b5976 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 7ec5ea5..211a872 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");