<commit_before>#ifndef ALICALOTRACKMATCHER_H
#define ALICALOTRACKMATCHER_H

#include "AliAnalysisTaskSE.h"
#include "AliEMCALGeometry.h"
#include "AliPHOSGeometry.h"
#include <vector>
#include <map>
#include <utility>

using namespace std;

class AliCaloTrackMatcher : public AliAnalysisTaskSE {

  public:
    AliCaloTrackMatcher(const char *name, Int_t clusterType);
    //Uncopyable & operator=(const Uncopyable&);

    virtual ~AliCaloTrackMatcher();                            //virtual destructor
    void UserCreateOutputObjects();

    virtual void UserExec(Option_t *option);
    virtual void Terminate(Option_t *);

    TList* GetCaloTrackMatcherHistograms() {return fListHistos;}

    void SetV0ReaderName(TString name)    {fV0ReaderName = name; return;}
    void SetMatchingResidual(Float_t res) {fMatchingResidual = res; return;}
    void SetMatchingWindow(Float_t win) {fMatchingWindow = win; return;}

    Bool_t GetTrackClusterMatchingResidual(Int_t trackID, Int_t clusterID, Float_t &dEta, Float_t &dPhi);
    Int_t GetNMatchedTrackIDsForCluster(AliVEvent *event, Int_t clusterID, Float_t dEtaMax, Float_t dEtaMin, Float_t dPhiMax, Float_t dPhiMin);
    Int_t GetNMatchedClusterIDsForTrack(AliVEvent *event, Int_t trackID, Float_t dEtaMax, Float_t dEtaMin, Float_t dPhiMax, Float_t dPhiMin);
    Int_t GetNMatchedTrackIDsForCluster(AliVEvent *event, Int_t clusterID, TF1* fFuncPtDepEta, TF1* fFuncPtDepPhi);
    Int_t GetNMatchedClusterIDsForTrack(AliVEvent *event, Int_t trackID, TF1* fFuncPtDepEta, TF1* fFuncPtDepPhi);
    vector<Int_t> GetMatchedTrackIDsForCluster(AliVEvent *event, Int_t clusterID, Float_t dEtaMax, Float_t dEtaMin, Float_t dPhiMax, Float_t dPhiMin);
    vector<Int_t> GetMatchedClusterIDsForTrack(AliVEvent *event, Int_t trackID, Float_t dEtaMax, Float_t dEtaMin, Float_t dPhiMax, Float_t dPhiMin);
    vector<Int_t> GetMatchedTrackIDsForCluster(AliVEvent *event, Int_t clusterID, TF1* fFuncPtDepEta, TF1* fFuncPtDepPhi);
    vector<Int_t> GetMatchedClusterIDsForTrack(AliVEvent *event, Int_t trackID, TF1* fFuncPtDepEta, TF1* fFuncPtDepPhi);

    
    
    // for cluster <-> V0-track matching
    Bool_t PropagateV0TrackToClusterAndGetMatchingResidual(AliVTrack* inSecTrack, AliVCluster* cluster, AliVEvent* event, Float_t &dEta, Float_t &dPhi);
    Bool_t IsSecTrackClusterAlreadyTried(Int_t trackID, Int_t clusterID);<commit_msg>AliCaloTrackMatcher: bugfix to create class instances<commit_after>#ifndef ALICALOTRACKMATCHER_H
#define ALICALOTRACKMATCHER_H

#include "AliAnalysisTaskSE.h"
#include "AliEMCALGeometry.h"
#include "AliPHOSGeometry.h"
#include <vector>
#include <map>
#include <utility>

using namespace std;

class AliCaloTrackMatcher : public AliAnalysisTaskSE {

  public:
    AliCaloTrackMatcher(const char *name="CaloTrackMatcher_0", Int_t clusterType=0);
    //Uncopyable & operator=(const Uncopyable&);

    virtual ~AliCaloTrackMatcher();                            //virtual destructor
    void UserCreateOutputObjects();

    virtual void UserExec(Option_t *option);
    virtual void Terminate(Option_t *);

    TList* GetCaloTrackMatcherHistograms() {return fListHistos;}

    void SetV0ReaderName(TString name)    {fV0ReaderName = name; return;}
    void SetMatchingResidual(Float_t res) {fMatchingResidual = res; return;}
    void SetMatchingWindow(Float_t win) {fMatchingWindow = win; return;}

    Bool_t GetTrackClusterMatchingResidual(Int_t trackID, Int_t clusterID, Float_t &dEta, Float_t &dPhi);
    Int_t GetNMatchedTrackIDsForCluster(AliVEvent *event, Int_t clusterID, Float_t dEtaMax, Float_t dEtaMin, Float_t dPhiMax, Float_t dPhiMin);
    Int_t GetNMatchedClusterIDsForTrack(AliVEvent *event, Int_t trackID, Float_t dEtaMax, Float_t dEtaMin, Float_t dPhiMax, Float_t dPhiMin);
    Int_t GetNMatchedTrackIDsForCluster(AliVEvent *event, Int_t clusterID, TF1* fFuncPtDepEta, TF1* fFuncPtDepPhi);
    Int_t GetNMatchedClusterIDsForTrack(AliVEvent *event, Int_t trackID, TF1* fFuncPtDepEta, TF1* fFuncPtDepPhi);
    vector<Int_t> GetMatchedTrackIDsForCluster(AliVEvent *event, Int_t clusterID, Float_t dEtaMax, Float_t dEtaMin, Float_t dPhiMax, Float_t dPhiMin);
    vector<Int_t> GetMatchedClusterIDsForTrack(AliVEvent *event, Int_t trackID, Float_t dEtaMax, Float_t dEtaMin, Float_t dPhiMax, Float_t dPhiMin);
    vector<Int_t> GetMatchedTrackIDsForCluster(AliVEvent *event, Int_t clusterID, TF1* fFuncPtDepEta, TF1* fFuncPtDepPhi);
    vector<Int_t> GetMatchedClusterIDsForTrack(AliVEvent *event, Int_t trackID, TF1* fFuncPtDepEta, TF1* fFuncPtDepPhi);

    
    
    // for cluster <-> V0-track matching
    Bool_t PropagateV0TrackToClusterAndGetMatchingResidual(AliVTrack* inSecTrack, AliVCluster* cluster, AliVEvent* event, Float_t &dEta, Float_t &dPhi);
    Bool_t IsSecTrackClusterAlreadyTried(Int_t trackID, Int_t clusterID);
{'fraction_non_alphanumeric': 0.08296943231441048, 'fraction_numerical': 0.005406529423996673, 'mean_word_length': 5.9508670520231215, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1671712', 'n_tokens_mistral': 1725, 'n_tokens_neox': 1692, 'n_words': 372}