Alright, can you please share the macro you use to produce simulazione.root
too?
The statement:
new (&clone1[i]) Intpoint (0,0,0);
is likely meant to be:
new ((*clone1)[i]) Intpoint (0,0,0);
i.e. the value passed to the placement part of operator new
is supposed to be the return value (a TObject*
) of TClonesArray::operator[]
(while the original code is passing the value of the pointer arithmetic clones1 + i
)
#include "TH3D.h"
#include "TVirtualFFT.h"
#include "TF1.h"
#include "TCanvas.h"
#include "TMath.h"
#include <iostream>
#include "TString.h"
#include "TFile.h"
#include "TTree.h"
#include "TSystem.h"
#include "TTreeReader.h"
#include "TTreeReaderValue.h"
#include "TRandom3.h"
#include "TClonesArray.h"
#include "TGraph2D.h"
#include <vector>
#include <stdio.h>
#include <stdlib.h>
//headers includes
#include "Intpoint.h"
#include "Vertex.h"
using namespace std;
const double Rbp=3.08;//cm
const double R1=4.02;
const double R2=7.02;
const double L=27;
const double sigmax=0.01;
const double sigmay=0.01;
const double sigmaz=5.3;
const int kMaxim=20;
const double etamin=-2.;
const double etamax=+2.;
const TString mul="sì";
void simulazione(){
unsigned int seed=18;
gRandom->SetSeed(seed);
TString filename="kinem.root";
TString muldis="hmul";
TString etadis="heta";
char a;
int accepted;
int discarded;
Vertex *vertice = NULL;
TFile *hfile = TFile::Open("simulazione.root","RECREATE");
TTree *tree = new TTree("tree", "eventi");
tree->Branch("Vertext",&vertice);//PV
tree->Branch("accept",&accepted);
TClonesArray *bp = new TClonesArray("Intpoint",100);
TClonesArray &intbp = *bp;
tree->Branch("tclonebp",&bp);
tree->SetDirectory(hfile);
//loop sul numero di vertici
for(int i=0; i<kMaxim;i++){
vertice=new Vertex();
discarded=0;
accepted=vertice->Getm()+7;
for (int j=0; j<accepted; j++){ new (intbp[j]) Intpoint (0,0,0) ;}
if (accepted>0) tree->Fill(); else i--;
delete vertice;
}
hfile->cd();
tree->Write();
hfile->Close();
}
This is a βtoyβ (cut) version with the branches used by ricprova(). If you need all the complete macros and classes, Iβll ask permission and share all the files (10 files, almost 10^3 lines of code, so maybe GitHub)
This solves the problem,we go hide forever
Thanks a lot