/[PAMELA software]/PamCut/CollectionActions/SaveEventsAction/SaveEventsAction.cpp
ViewVC logotype

Contents of /PamCut/CollectionActions/SaveEventsAction/SaveEventsAction.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations) (download)
Wed Mar 10 08:49:42 2010 UTC (14 years, 9 months ago) by pam-fi
Branch: MAIN
CVS Tags: Root_V8, BeforeMergingFromV8_1
Branch point for: V8
Changes since 1.2: +26 -28 lines
Small fix.

1 /*
2 * SaveEventsAction.cpp
3 *
4 * Created on: 16-mag-2009
5 * Author: Nicola Mori
6 */
7
8 /*! @file SaveEventsAction.cpp The SaveEventsAction class implementation file */
9
10 #include "SaveEventsAction.h"
11
12 SaveEventsAction::SaveEventsAction(const char *actionName, TString outFileName, TString outOptions) :
13 CollectionAction(actionName), _outTreeFile(NULL), _events(NULL), _outOptions(outOptions), _outFileName(outFileName) {
14
15 }
16
17 void SaveEventsAction::Setup(PamLevel2 *events) {
18
19 // Open output file
20 /* Due to the combined weirdness of PamLevel2 and ROOT, this pointer must NOT
21 * be explicitly deleted, nor the file closed. This would generate a double
22 * deletion in the destructors chain. This mechanism is not completely clear
23 * but it indeed happens...
24 */
25
26 _outTreeFile = new TFile(_outFileName, "RECREATE");
27
28 if (_outTreeFile->IsZombie()) {
29 cout << "Output file could not be created\n";
30 _outTreeFile->Delete();
31 //TODO Gestire con un'eccezione
32 return;
33 }
34
35 _events = events;
36 if (_outOptions.Length() > 0)
37 _events->SetWhichTrees(_outOptions);
38 _events->CreateCloneTrees(_outTreeFile);
39 }
40
41 void SaveEventsAction::OnGood(PamLevel2 *event) {
42 // Fill the tree
43 event->FillCloneTrees();
44 }
45
46 void SaveEventsAction::Finalize() {
47 _outTreeFile->cd();
48 _events->WriteCloneTrees();
49
50 }

  ViewVC Help
Powered by ViewVC 1.1.23