SND@LHC Software
Loading...
Searching...
No Matches
MCEventBuilder.h
Go to the documentation of this file.
1#ifndef MCEVENTBUILDER_H
2#define MCEVENTBUILDER_H
3#include <TString.h>
4#include "FairTask.h"
5#include <string>
6#include <vector>
7#include <TObjString.h>
8#include "FairMCPoint.h"
9#include <Rtypes.h>
10#include <TClonesArray.h>
11
12class TFile;
13class TTree;
14class MuFilterPoint;
15class ScifiPoint;
16class ShipMCTrack;
17class FairMCEventHeader;
18
19class MCEventBuilder : public FairTask {
20public:
21 MCEventBuilder(const std::string& outputFileName, bool saveOnlyFirst25);
23
24 virtual InitStatus Init();
25 virtual void Exec(Option_t* opt);
26 virtual void FinishTask();
27
28private:
29 //Function I need later for ordering the mc points
30 std::vector<int> OrderedIds(const std::vector<double>& times, double firstTime) const;
31
32 //Function that does all the processing
33 void ProcessEvent();
34
35 // Fast filter functions
36 bool FastNoiseFilterMu_Hits(TClonesArray* muArray);
37 bool FastNoiseFilterMu_Boards(TClonesArray* muArray);
38
40 TClonesArray* scifiArray,
41 const std::map<Int_t, std::map<Int_t, std::array<float, 2>>>& siPMFibres);
43 TClonesArray* scifiArray,
44 const std::map<Int_t, std::map<Int_t, std::array<float, 2>>>& siPMFibres);
45
46 //Advanced Noise Filter
48 TClonesArray* scifiArray,
49 const std::map<Int_t, std::map<Int_t, std::array<float, 2>>>& siPMFibres);
50
51 bool AdvancedNoiseFilterMu(TClonesArray* muArray);
52
53 //Input
55 FairMCEventHeader* fInHeader;
56 TClonesArray* fInMufiArray;
57 TClonesArray* fInSciFiArray;
58 TClonesArray* fInMCTrackArray;
59
60 //Output
61 std::string fOutputFileName;
62 TFile* fOutFile;
63 TTree* fOutTree;
64 FairMCEventHeader* fOutHeader;
65 TClonesArray* fOutMufiArray;
66 TClonesArray* fOutSciFiArray;
67 TClonesArray* fOutMCTrackArray;
68
69
70 ClassDef(MCEventBuilder, 1)
71};
72
73#endif // MCEVENTBUILDER_H
virtual void Exec(Option_t *opt)
FairMCEventHeader * fOutHeader
TClonesArray * fInMCTrackArray
bool FastNoiseFilterScifi_Hits(TClonesArray *scifiArray, const std::map< Int_t, std::map< Int_t, std::array< float, 2 > > > &siPMFibres)
bool FastNoiseFilterMu_Boards(TClonesArray *muArray)
TClonesArray * fInMufiArray
bool FastNoiseFilterMu_Hits(TClonesArray *muArray)
TClonesArray * fInSciFiArray
std::vector< int > OrderedIds(const std::vector< double > &times, double firstTime) const
FairMCEventHeader * fInHeader
TClonesArray * fOutSciFiArray
bool AdvancedNoiseFilterScifi(TClonesArray *scifiArray, const std::map< Int_t, std::map< Int_t, std::array< float, 2 > > > &siPMFibres)
bool FastNoiseFilterScifi_Boards(TClonesArray *scifiArray, const std::map< Int_t, std::map< Int_t, std::array< float, 2 > > > &siPMFibres)
bool AdvancedNoiseFilterMu(TClonesArray *muArray)
TClonesArray * fOutMCTrackArray
TClonesArray * fOutMufiArray
std::string fOutputFileName
virtual InitStatus Init()
virtual void FinishTask()