Mapping instance copied of when reading from file + Track Clear
authormfloris <michele.floris@cern.ch>
Fri, 14 Mar 2014 16:30:01 +0000 (17:30 +0100)
committerhristov <Peter.Hristov@cern.ch>
Thu, 27 Mar 2014 15:25:03 +0000 (16:25 +0100)
This avoids problems when switching file (the mapping would be deleted).
The AliNanoAODTrack track class now has a Clear method.

PWG/DevNanoAOD/AliNanoAODTrack.cxx
PWG/DevNanoAOD/AliNanoAODTrack.h
PWG/DevNanoAOD/AliNanoAODTrackMapping.cxx
PWG/DevNanoAOD/AliNanoAODTrackMapping.h

index 1b20649..11cd862 100644 (file)
@@ -528,3 +528,9 @@ Bool_t AliNanoAODTrack::GetXYZAt(Double_t x, Double_t b, Double_t *r) const
 
 
 //_______________________________________________________
+
+void  AliNanoAODTrack::Clear(Option_t * /*opt*/) {
+  // empty storage
+  fVars.clear();
+  fNVars = 0;
+}
index 7241cac..66f7087 100644 (file)
@@ -81,7 +81,8 @@ public:
   AliNanoAODTrack(const AliNanoAODTrack& trk); 
   AliNanoAODTrack& operator=(const AliNanoAODTrack& trk);
 
-  // Storage helper methods
+
+  virtual void Clear(Option_t * opt) ;
   
   // kinematics
   virtual Double_t OneOverPt() const { return (Pt() != 0.) ? 1./Pt() : -999.; }
@@ -361,7 +362,6 @@ void SetChi2perNDF(Double_t chi2perNDF) { fVars[AliNanoAODTrackMapping::GetInsta
 private :
 
 
-  // Remove everything from here on?
 
   // Momentum & position
   // FIXME: the following was replaced by posx, posy, posz. Check if the names make sense
index 81bba1a..d882b9c 100644 (file)
@@ -297,7 +297,7 @@ void  AliNanoAODTrackMapping::LoadInstance() {
 
       if(tree) {
        tree->GetUserInfo()->Print();
-       fInstance = (AliNanoAODTrackMapping*) tree->GetUserInfo()->FindObject("AliNanoAODTrackMapping");
+       fInstance = new AliNanoAODTrackMapping(*((AliNanoAODTrackMapping*) tree->GetUserInfo()->FindObject("AliNanoAODTrackMapping")));
        // Otherwise try to get it from the current directory
        std::cout << " from tree: " << fInstance << std::endl;
        
index 44fc641..2564985 100644 (file)
@@ -153,7 +153,7 @@ private:
 
   static AliNanoAODTrackMapping * fInstance; //instance, needed for the singleton implementation
   static TString fMappingString; // the string which this class was initialized with
-  std::map<TString,int> fMapCstVar;// Map of indexes of custom variables: CASH THIS TO CONST INTs IN YOUR TASK TO AVOID CONTINUOUS STRING COMPARISONS
+  std::map<TString,int> fMapCstVar;// Map of indexes of custom variables: CACHE THIS TO CONST INTs IN YOUR TASK TO AVOID CONTINUOUS STRING COMPARISONS
   ClassDef(AliNanoAODTrackMapping, 1)
   
 };