//___________________________________________________________________
AliHFEV0taginfo::AliHFEV0taginfo():
TNamed(),
+ fIsAODana(NULL),
fTaggedTracks(NULL),
fV0finder(NULL)
{
//___________________________________________________________________
AliHFEV0taginfo::AliHFEV0taginfo(const char* name):
TNamed(name, ""),
+ fIsAODana(kFALSE),
fTaggedTracks(NULL),
fV0finder(NULL)
{
}
fV0finder = new AliESDv0KineCuts();
}
+
+//__________________________________________________________________
+AliHFEV0taginfo::AliHFEV0taginfo(const AliHFEV0taginfo &ref):
+ TNamed(ref),
+ fIsAODana(ref.fIsAODana),
+ fTaggedTracks(NULL),
+ fV0finder(ref.fV0finder)
+{
+ //
+ // Copy constructor
+ // creates a new object with new (empty) containers
+ //
+ fTaggedTracks = new TList();
+ if(fTaggedTracks){
+ fTaggedTracks->SetOwner();
+ }
+
+
+ AliHFEV0tag *tmp = NULL;
+ for(Int_t ien = 0; ien < ref.fTaggedTracks->GetEntries(); ien++){
+ tmp = static_cast<AliHFEV0tag *>(ref.fTaggedTracks->At(ien));
+ fTaggedTracks->Add(new AliHFEV0tag(tmp->GetTrackID(),tmp->GetPinfo()));
+ }
+}
+
+//__________________________________________________________________
+AliHFEV0taginfo &AliHFEV0taginfo::operator=(const AliHFEV0taginfo &ref){
+ //
+ // Assignment operator
+ // Cleanup old object, create a new one with new containers inside
+ //
+ if(this == &ref) return *this;
+ this->~AliHFEV0taginfo();
+ TNamed::operator=(ref);
+ fIsAODana = ref.fIsAODana;
+ fTaggedTracks = new TList();
+ AliHFEV0tag *tmp = NULL;
+ for(Int_t ien = 0; ien < ref.fTaggedTracks->GetEntries(); ien++){
+ tmp = static_cast<AliHFEV0tag *>(ref.fTaggedTracks->At(ien));
+ fTaggedTracks->Add(new AliHFEV0tag(tmp->GetTrackID(),tmp->GetPinfo()));
+ }
+ fV0finder=ref.fV0finder;
+ return *this;
+}
//___________________________________________________________________
AliHFEV0taginfo::~AliHFEV0taginfo(){
AliHFEV0taginfo();
AliHFEV0taginfo(const char* name);
+ AliHFEV0taginfo(const AliHFEV0taginfo &ref);
+ AliHFEV0taginfo& operator=(const AliHFEV0taginfo &ref);
virtual ~AliHFEV0taginfo();
void Reset(); //resets the fTaggedTracks TList
void TagV0Tracks(AliESDEvent *event); // loops over V0s in event and fills fTaggedTracks with V0 tracks
AliPID::EParticleType GetV0Info(Int_t trackID); //check for V0 information from track ID
void SetIsAODana() { fIsAODana = kTRUE; } // Setter AOD analysis
+ void SetIsESDana() { fIsAODana = kFALSE; } // Setter ESD analysis
void AddTrack(Int_t TrackID, Int_t pdgCode); //Translates the pdg code to AliPID enum and adds track to tagged list (currently only e, pion and proton tracks)
class AliHFEV0tag: public TObject{
AliHFEV0tag &operator=(const AliHFEV0tag &ref);
virtual ~AliHFEV0tag();
-
//TObject virtual functions
virtual Bool_t IsSortable() const { return kTRUE; };
virtual Bool_t IsEqual(const TObject *ref) const;
ClassDef(AliHFEV0taginfo::AliHFEV0tag,1);
};
private:
- TList *fTaggedTracks;
Bool_t fIsAODana;
+ TList *fTaggedTracks;
AliESDv0KineCuts *fV0finder;
ClassDef(AliHFEV0taginfo,1)