10 #define ProofStdVect_cxx 25 ProofStdVect::ProofStdVect()
39 ProofStdVect::~ProofStdVect()
58 if (fInput && fInput->FindObject(
"ProofStdVect_Create")) {
60 }
else if (option.
Contains(
"create")) {
66 void ProofStdVect::SlaveBegin(
TTree * )
75 if (fInput && fInput->FindObject(
"ProofStdVect_Create")) {
77 }
else if (option.
Contains(
"create")) {
89 fFile = fProofFile->OpenFile(
"RECREATE");
90 if (fFile && fFile->IsZombie())
SafeDelete(fFile);
94 Info(
"SlaveBegin",
"could not create '%s': instance is invalid!", fProofFile->GetName());
99 fTree =
new TTree(
"stdvec",
"Tree with std vector");
100 fTree->Branch(
"Vb",&fVb);
101 fTree->Branch(
"Vfx",&fVfx);
102 fTree->Branch(
"Vfy",&fVfy);
104 fTree->SetDirectory(fFile);
112 fHgood =
new TH1F(
"Hgood",
"Good hits", 100., -2.5, 2.5);
113 fHbad =
new TH1F(
"Hbad",
"Bad hits", 100., -6., 6.);
114 fOutput->Add(fHgood);
141 if (!fTree)
return kTRUE;
148 for (
Int_t i = 0; i < nv; i++) {
149 std::vector<bool> vb;
150 std::vector<float> vfx, vfy;
153 for (
Int_t j = 0; j < np; j++) {
162 vfy.push_back(
float(ym));
173 std::vector<std::vector<bool> >::iterator ivb;
174 for (ivb = fVb.begin(); ivb != fVb.end(); ivb++) {
178 std::vector<std::vector<float> >::iterator ivf;
179 for (ivf = fVfx.begin(); ivf != fVfx.end(); ivf++) {
183 for (ivf = fVfy.begin(); ivf != fVfy.end(); ivf++) {
191 for (
UInt_t i = 0; i < fVfyr->size(); i++) {
192 std::vector<bool> &vb = fVbr->at(i);
193 std::vector<float> &vfx = fVfxr->at(i);
194 std::vector<float> &vfy = fVfyr->at(i);
195 for (
UInt_t j = 0; j < vfy.size(); j++) {
196 Double_t ny = (vfy.at(j) - 5*vfx.at(j)) / (0.1 * 5 * vfx.at(j));
209 void ProofStdVect::SlaveTerminate()
216 if (!fCreate)
return;
221 Error(
"SlaveTerminate",
"'tree' is undefined!");
226 if (fTree->GetEntries() > 0) {
230 fOutput->Add(fProofFile);
234 fTree->SetDirectory(0);
238 TUrl uf(*(fFile->GetEndpointUrl()));
247 void ProofStdVect::Terminate()
262 if (fHbad) fHbad->
Draw();
264 if (fHgood) fHgood->
Draw();
290 fChain->SetMakeClass(1);
292 fChain->SetBranchAddress(
"Vb", &fVbr, &b_Vb);
293 fChain->SetBranchAddress(
"Vfx", &fVfxr, &b_Vfx);
294 fChain->SetBranchAddress(
"Vfy", &fVfyr, &b_Vfy);
299 Bool_t ProofStdVect::Notify()
308 if (fCreate)
return kTRUE;
309 Info(
"Notify",
"processing file: %s",fChain->GetCurrentFile()->GetName());
Random number generator class based on M.
virtual TVirtualPad * GetPad(Int_t subpadnumber) const
Get a pointer to subpadnumber of this pad.
Selector for generic processing with stdlib collections.
virtual void Draw(Option_t *option="")=0
Default Draw method for all objects.
This class represents a WWW compatible URL.
THist< 1, float, THistStatContent, THistStatUncertainty > TH1F
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
virtual int Unlink(const char *name)
Unlink, i.e. remove, a file.
TVirtualPad * cd(Int_t subpadnumber=0)
Set Current pad.
void Init(TClassEdit::TInterpreterLookupHelper *helper)
void Info(const char *location, const char *msgfmt,...)
void Error(const char *location, const char *msgfmt,...)
Double_t Erfc(Double_t x)
Compute the complementary error function erfc(x).
R__EXTERN TSystem * gSystem
The most important graphics class in the ROOT system.
Class to steer the merging of files produced on the workers.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
Automatic pad generation by division.
A TTree object has a header with a name and a title.
Double_t Sqrt(Double_t x)
virtual void Update()
Update canvas pad buffers.