C++ 如何使用C+初始化向量+;;脚本值不是数组、指针或向量错误

C++ 如何使用C+初始化向量+;;脚本值不是数组、指针或向量错误,c++,dataframe,histogram,stdvector,root-framework,C++,Dataframe,Histogram,Stdvector,Root Framework,我试图重建两个Z玻色子。 我以本教程为例。 然而,我仍然不熟悉如何使用根数据帧,我是根据我所熟悉的内容来编写它的 我不明白的是,根教程中显示的i1、i2和idx是如何定义的 在我的树中,我有一个支路,这个支路中的变量叫做μ子PT,μ子Eta,μ子φ,μ子电荷,μ子质量 我尝试按照教程的内容构建μ介子向量并定义变量(这会产生错误,但我仍在学习如何使用它): 我怎样才能修好它? 谢谢。当我将电荷用作阵列时,我了解到我之前将电荷定义为浮点数 #ifdef __CLING__ R__LOAD_LIBRA

我试图重建两个Z玻色子。 我以本教程为例。 然而,我仍然不熟悉如何使用根数据帧,我是根据我所熟悉的内容来编写它的

我不明白的是,根教程中显示的i1、i2和idx是如何定义的

在我的树中,我有一个支路,这个支路中的变量叫做μ子PT,μ子Eta,μ子φ,μ子电荷,μ子质量

我尝试按照教程的内容构建μ介子向量并定义变量(这会产生错误,但我仍在学习如何使用它):

我怎样才能修好它?
谢谢。

当我将电荷用作阵列时,我了解到我之前将电荷定义为浮点数

#ifdef __CLING__
R__LOAD_LIBRARY(libDelphes)
#include "classes/DelphesClasses.h"
#include "external/ExRootAnalysis/ExRootTreeReader.h"
#include "external/ExRootAnalysis/ExRootResult.h"
#else
class ExRootTreeReader;
class ExRootResult;
#endif
#include <vector>

#include "ROOT/RDataFrame.hxx"
#include "ROOT/RVec.hxx"
#include "ROOT/RDF/RInterface.hxx"
#include "TCanvas.h"
#include "TH1D.h"
#include "TLatex.h"
#include "TLegend.h"
#include "Math/Vector4Dfwd.h"
#include "TStyle.h"
using namespace ROOT::VecOps;
using RNode = ROOT::RDF::RNode;
using rvec_f = const RVec<float> &;
using rvec_i = const RVec<int> &;
const auto z_mass = 91.2;

template<typename T>
void CollectionFilter(const TClonesArray& inColl ,vector<T*>& outColl, Double_t ptMin=30, Double_t etaMax=2.5)
{

const TObject *object;

for (Int_t i = 0; i < inColl.GetEntriesFast(); i++)
{

object = inColl.At(i);
const T *t = static_cast<const T*>(object);

if(t->P4().Pt() < ptMin) continue;
if(TMath::Abs(t->P4().Eta()) > etaMax) continue;

outColl.push_back(t);

}
}



void selectMuon(const char *inputFile)
{
  gSystem->Load("libDelphes");

  // Create chain of root trees
  TChain chain("Delphes");
  chain.Add(inputFile);

  // Create object of class ExRootTreeReader
  ExRootTreeReader *treeReader = new ExRootTreeReader(&chain);
  Long64_t numberOfEntries = treeReader->GetEntries();

  // Get pointers to branches used in this analysis
  TClonesArray *branchMuon = treeReader->UseBranch("Muon");

  // Book histograms

  TH1F *histZMass = new TH1F("mass", "M_{inv}(Z[1]); M_inv (GeV/c^2); Events", 50, 0.0, 1500);
  TH1F *histDiMuonMass = new TH1F("mass", "M_{inv}(Z[3]Z[5]); M_inv (GeV/c^2); Events", 50, 0.0, 1500);


  // Define variables

  float_t PT, Eta, Phi, Mass, Charge;  

  // Initializing the vectors
  //vector<const Muon*>  *muons = new vector<const Muon*>();;
  //MuonVector muon(PT, Eta, Phi, Mass, Charge);
  RVec<RVec<size_t>> reco_zz_to_4l(rvec_f PT, rvec_f Eta, rvec_f Phi, rvec_f Mass, rvec_i Charge);

    RVec<RVec<size_t>> idx(2);
    idx[0].reserve(2); idx[1].reserve(2);
    auto idx_cmb = Combinations(PT, 2);
    for (size_t i = 0; i < idx_cmb[0].size(); i++)
    {
      const auto i1 = idx_cmb[0][i];
      const auto i2 = idx_cmb[1][i];


      if(Charge[i1] != Charge[i2]
      {



        ROOT::Math::PtEtaPhiMVector m1(PT[0], Eta[0], Phi[0], Mass[0]);
        ROOT::Math::PtEtaPhiMVector m2(PT[1], Eta[1], Phi[1], Mass[1]);
        const auto mass = (m1 + m2).M();
     }
    }

      histDiMuonMass->Fill(mass);   





   // end of event for loop
  histDiMuonMass->Draw();

  }
In file included from input_line_188:1:
/mnt/c/1/MG5_aMC_v2_6_6/Delphes/examples/selectMuon.C:89:16: error: subscripted value is not an array, pointer, or vector
      if(Charge[i1] != Charge[i2]
         ~~~~~~^~~
/mnt/c/1/MG5_aMC_v2_6_6/Delphes/examples/selectMuon.C:89:30: error: subscripted value is not an array, pointer, or vector
      if(Charge[i1] != Charge[i2]
                       ~~~~~~^~~
/mnt/c/1/MG5_aMC_v2_6_6/Delphes/examples/selectMuon.C:100:28: error: use of undeclared identifier 'mass'
      histDiMuonMass->Fill(mass);