GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TFragmentMap.h
Go to the documentation of this file.
1#ifndef TFRAGMENTMAP_H
2#define TFRAGMENTMAP_H
3
4/** \addtogroup Sorting
5 * @{
6 */
7
8/////////////////////////////////////////////////////////////////
9///
10/// \class TFragmentMap
11///
12/// The TFragmentMap calculates the charges of piled-up hits.
13/// In the newest GRIFFIN data (starting with tests in 2016), piled-up hits
14/// have 2*n-1 integrated charges reported, for the different integration areas.
15///
16/////////////////////////////////////////////////////////////////
17
18#include <map>
19#include <vector>
20#ifndef __CINT__
21#include <tuple>
22#include <memory>
23#endif
24#include "TFragment.h"
25#include "TBadFragment.h"
26#include "ThreadsafeQueue.h"
27
29public:
30#ifndef __CINT__
31 TFragmentMap(std::vector<std::shared_ptr<ThreadsafeQueue<std::shared_ptr<const TFragment>>>>& goodOutputQueue,
32 std::shared_ptr<ThreadsafeQueue<std::shared_ptr<const TBadFragment>>>& badOutputQueue);
33#endif
34
35#ifndef __CINT__
36 bool Add(const std::shared_ptr<TFragment>&, const std::vector<Int_t>&, const std::vector<Short_t>&);
37#endif
38
39private:
40 static bool fDebug;
41#ifndef __CINT__
42 void Solve(std::vector<std::shared_ptr<TFragment>>, std::vector<Float_t>, std::vector<Long_t>, int situation = -1);
43 void DropFragments(std::pair<
44 std::multimap<UInt_t, std::tuple<std::shared_ptr<TFragment>, std::vector<Int_t>, std::vector<Short_t>>>::iterator,
45 std::multimap<UInt_t, std::tuple<std::shared_ptr<TFragment>, std::vector<Int_t>, std::vector<Short_t>>>::iterator>& range);
46
47 std::multimap<UInt_t, std::tuple<std::shared_ptr<TFragment>, std::vector<Int_t>, std::vector<Short_t>>> fMap;
48 std::vector<std::shared_ptr<ThreadsafeQueue<std::shared_ptr<const TFragment>>>>& fGoodOutputQueue;
49 std::shared_ptr<ThreadsafeQueue<std::shared_ptr<const TBadFragment>>>& fBadOutputQueue;
50#endif
51};
52/*! @} */
53#endif
TFragmentMap(std::vector< std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > > &goodOutputQueue, std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TBadFragment > > > &badOutputQueue)
bool Add(const std::shared_ptr< TFragment > &, const std::vector< Int_t > &, const std::vector< Short_t > &)
void DropFragments(std::pair< std::multimap< UInt_t, std::tuple< std::shared_ptr< TFragment >, std::vector< Int_t >, std::vector< Short_t > > >::iterator, std::multimap< UInt_t, std::tuple< std::shared_ptr< TFragment >, std::vector< Int_t >, std::vector< Short_t > > >::iterator > &range)
std::vector< std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > > & fGoodOutputQueue
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TBadFragment > > > & fBadOutputQueue
void Solve(std::vector< std::shared_ptr< TFragment > >, std::vector< Float_t >, std::vector< Long_t >, int situation=-1)
std::multimap< UInt_t, std::tuple< std::shared_ptr< TFragment >, std::vector< Int_t >, std::vector< Short_t > > > fMap
static bool fDebug