1 | //
|
---|
2 | // A. Moralejo, March 2003
|
---|
3 | // This macro merges several MC camera files into one. The output files
|
---|
4 | // are useful to run Mars over larger samples of triggered events than
|
---|
5 | // those contained in a single file.
|
---|
6 | //
|
---|
7 |
|
---|
8 | void mergecamera(Char_t *in="Proton*root", Char_t *out="all.root")
|
---|
9 | {
|
---|
10 | cout << endl
|
---|
11 | << "WARNING: this macro merges camera output files, but the" << endl
|
---|
12 | << "Run headers of the resulting file are those of the first" <<endl
|
---|
13 | << "merged file, and so do not represent the whole of the" << endl
|
---|
14 | << "merged events. Be careful not to mix files with different" << endl
|
---|
15 | << "parameters (primary, theta...)." << endl << endl;
|
---|
16 |
|
---|
17 | //
|
---|
18 | // Open output file:
|
---|
19 | //
|
---|
20 | TFile* f = new TFile(out,"recreate");
|
---|
21 |
|
---|
22 | //
|
---|
23 | // First the Events tree:
|
---|
24 | //
|
---|
25 | MMcEvt* mmcevt = new MMcEvt();;
|
---|
26 | MMcTrig* mmctrig = new MMcTrig();
|
---|
27 | MRawEvtHeader* mrawhead = new MRawEvtHeader();
|
---|
28 | MRawEvtData* mrawdata = new MRawEvtData();
|
---|
29 |
|
---|
30 | TChain c("Events");
|
---|
31 | c.SetBranchAddress("MMcEvt",&mmcevt);
|
---|
32 | c.SetBranchAddress("MMcTrig",&mmctrig);
|
---|
33 | c.SetBranchAddress("MRawEvtHeader",&mrawhead);
|
---|
34 | c.SetBranchAddress("MRawEvtData",&mrawdata);
|
---|
35 | c.Add(in);
|
---|
36 | c.Merge(f,1000);
|
---|
37 |
|
---|
38 | //
|
---|
39 | // Now the RunHeaders tree:
|
---|
40 | //
|
---|
41 | MMcConfigRunHeader* mcconfig = new MMcConfigRunHeader();
|
---|
42 | MMcCorsikaRunHeader* mccorsi = new MMcCorsikaRunHeader();
|
---|
43 | MMcFadcHeader* mcfadc = new MMcFadcHeader();
|
---|
44 | MMcRunHeader* mcrunhead = new MMcRunHeader();
|
---|
45 | MMcTrigHeader* mctrighead = new MMcTrigHeader();
|
---|
46 | MRawRunHeader* mrawrunhead = new MRawRunHeader();
|
---|
47 | TChain d("RunHeaders");
|
---|
48 | d.SetBranchAddress("MMcConfigRunHeader",&mcconfig);
|
---|
49 | d.SetBranchAddress("MMcCorsikaRunHeader",&mccorsi);
|
---|
50 | d.SetBranchAddress("MMcFadcHeader",&mcfadc);
|
---|
51 | d.SetBranchAddress("MMcRunHeader",&mcrunhead);
|
---|
52 | d.SetBranchAddress("MMcTrigHeader",&mctrighead);
|
---|
53 | d.SetBranchAddress("MRawRunHeader",&mrawrunhead);
|
---|
54 | d.Add(in);
|
---|
55 | d.Merge(f,1000);
|
---|
56 |
|
---|
57 | f->Close();
|
---|
58 |
|
---|
59 | return;
|
---|
60 | }
|
---|