| 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 | }
|
|---|