Skip to content
Snippets Groups Projects
Commit 4a964203 authored by Junpei Maeda's avatar Junpei Maeda Committed by Graeme Stewart
Browse files

see CL (TrigT1TGC-00-05-06)

parent 18251799
No related branches found
No related tags found
No related merge requests found
Showing
with 58 additions and 13 deletions
......@@ -30,6 +30,7 @@
class TgcRdo;
class TgcRawData;
class ITGCcablingSvc;
class TgcDigitContainer;
namespace TrigConf {
class ILVL1ConfigSvc;
......@@ -59,6 +60,7 @@ class TGCSLSelectorOut;
class TGCElectronicsSystem;
class TGCTimingManager;
class TGCDatabaseManager;
class TGCEvent;
class LVL1TGCTrigger : public AthAlgorithm
{
......@@ -75,6 +77,12 @@ class LVL1TGCTrigger : public AthAlgorithm
StatusCode finalize() ;
private:
// Process one bunch
StatusCode processOneBunch(const DataHandle<TgcDigitContainer>& ,
LVL1MUONIF::Lvl1MuCTPIInput* );
void doMaskOperation(const DataHandle<TgcDigitContainer>& ,std::map<Identifier, int>& );
void fillTGCEvent(std::map<Identifier, int>& , TGCEvent&);
// Fill TMDB event data
StatusCode fillTMDB();
......@@ -84,13 +92,16 @@ class LVL1TGCTrigger : public AthAlgorithm
// record bare-RDO for HighPT coincidences (on OutputTgcRDO=True):
void recordRdoHPT(TGCSector *);
// record bare-RDO for Inner coincidences (on OutputTgcRDO=True):
void recordRdoInner(TGCSector *);
// record bare-RDO for R-phi coincidences (on m_OutputTgcRDO=True):
void recordRdoSL(TGCSector *, unsigned int );
std::map<std::pair<int, int>, TgcRdo*> m_tgcrdo;
// Strip masking
StatusCode doMaskOperation();
// Retrieve Masked channel list
StatusCode getMaskedChannel();
std::map<Identifier, int> m_MaskedChannel;
// pointers to various external services
......@@ -104,7 +115,7 @@ class LVL1TGCTrigger : public AthAlgorithm
void addRawData(TgcRawData *);
int getLPTTypeInRawData(int type);
void FillSectorLogicData(LVL1MUONIF::Lvl1MuSectorLogicData* sldata,
TGCSLSelectorOut *selectorOut,
const TGCSLSelectorOut *selectorOut,
unsigned int subsystem);
// Properties
......@@ -121,11 +132,12 @@ class LVL1TGCTrigger : public AthAlgorithm
// Location of TileMuonReceiverContainer
StringProperty m_keyTileMu ;
StringProperty m_MaskFileName ; //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
StringProperty m_MaskFileName12 ; //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
ShortProperty m_CurrentBunchTag; //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
BooleanProperty m_OutputTgcRDO; //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
StringProperty m_MaskFileName ; //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
StringProperty m_MaskFileName12 ; //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
ShortProperty m_CurrentBunchTag; //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
BooleanProperty m_ProcessAllBunches;
BooleanProperty m_OutputTgcRDO; //!< property, see @link LVL1TGCTrigger::LVL1TGCTrigger @endlink
// expert usage
BooleanProperty m_STRICTWD;
BooleanProperty m_STRICTWT;
......@@ -140,6 +152,8 @@ class LVL1TGCTrigger : public AthAlgorithm
BooleanProperty m_FULLCW; // flag for using differne CW for each octant
BooleanProperty m_TILEMU; // flag for using TileMu
uint16_t m_bctagInProcess;
TGCDatabaseManager *db;
ServiceHandle<TrigConf::ILVL1ConfigSvc> m_configSvc;
TGCTimingManager *TimingManager;
......
......@@ -46,6 +46,7 @@ public:
void deleteConnectionPPToSL();
static const std::string& getFilename(int type);
static const std::vector<std::string > splitCW(const std::string& input, char delimiter);
private:
TGCRPhiCoincidenceMap* mapRphi[NumberOfSide][NumberOfOctant];
......
......@@ -25,6 +25,9 @@ namespace LVL1TGCTrigger {
void getInnerTrackletSlots(const int sideId, const int octId, const int moduleId,
const TGCInnerTrackletSlot* innerTrackletSlots[]) const;
/** returns SL readout trigger bits FI2|EI2|FI1|EI1|FI0|EI0 **/
int getInnerTrackletBits(const TGCInnerTrackletSlot* innerTrackletSlots[]) const;
enum {
NUMBER_OF_SIDES = 2, // Side A and Side C
NUMBER_OF_SLOTS = 24, // Slot01 - Slot24
......
......@@ -42,6 +42,7 @@ public:
void setOutput(int side, int module, int hit56, int hit6);
void eraseOutput();
int NumberOfTileModules() const { return NumberOfTileModule; }
int getInnerTileBits(int side, int sectorID) const;
void Print() const;
......
......@@ -35,7 +35,7 @@ use TileEvent TileEvent-* TileCalorimeter
public
apply_pattern dual_use_library files="*.cxx"
apply_pattern declare_joboptions files="TrigT1TGCJobOptions.txt TrigT1TGCJobOptions.py TrigT1TGC_jobOptions.py"
apply_pattern declare_runtime files="RPhiCoincidenceMap*.db TrigT1TGCMaskedChannel*.db Inner*.db Tile*.db"
apply_pattern declare_runtime files="BigWheelCW/RPhiCoincidenceMap*.db TrigT1TGCMaskedChannel*.db EiFiCW/Inner*.db TileCW/Tile*.db"
apply_pattern declare_python_modules files="*.py"
Description of CW
=================
VersionCW flag is used to specify CW
"00_06_0016" is default (for MC15b).
LVL1ConfigSvc is not used to choose CW
For BW-CW,
RPhiCoincidenceMap.modXX.vYYYY._12.db
RPhiCoincidenceMap.[A,C]Z.modXX.vYYYY._12.db (for full map)
XX: module number 0,1,2a,2b,3,4,5a,5b,6,7,8a,8b
2a is same as 2b for 12-fold cabling, but 2a is the mirror-iamge of 2b in dPhi axis for 8-fold
Z: octant number for full map CW
YYYY: CW version number
See https://twiki.cern.ch/twiki/bin/view/Atlas/TgcSectorLogicLUT
*** FOR OLD CWs ***
"setK" is defaut ("setD" is chosen for old MC with 8-fold cabling )
LVL1ConfigSvc is not used to chose CW
......@@ -30,10 +47,12 @@ Description of CW
--> modified CW from setD (wider window in Phi-direction)
CW same as data after Aug. 2010
only for 12-fold cabling
--> OBSOLETE
setG : MU_0 MU_6 MU_10 ---- MU_15 MU_20
--> MU_0,6,10 use 2-st coincidence in naddition to 3-st coin (i.e HPT) CW same as data after Oct. 2010 (default)
--> MU_0,6,10 use 2-st coincidence in naddition to 3-st coin (i.e HPT) CW same as data after Oct. 2010 (default)
only for 12-fold cabling
--> OBSOLETE
setH : MU_0 MU_6 ---- MU_10 MU_15 MU_20
--> same as setF except pt=3 and pt=4 are swapped
......@@ -45,6 +64,7 @@ Description of CW
setJ : ---- MU_0 MU_6 MU_10 MU_15 MU_20
--> pt=1 is not used. pt=2 is MU_0 for ion run
--> OBSOLETE
setK : MU_4 MU_6 ---- MU_10 MU_15 MU_20
--> narrow CW compared to setI (CW for 2012 start)
......@@ -57,10 +77,10 @@ Description of CW
cau use TileMu Coincidence
Desrciption of Properties
=========================
- VersionCW
- flag to specify CW
- default : "setM"
- default : "00_06_0016"
- USEINNER
- use EI/FI tracklet for SL
......@@ -72,7 +92,7 @@ Desrciption of Properties
- TILEMU
- use TileMu Coincidence
- default : true
- default : false
- FULLCW
- use full CW (not 8-fold symmetry)
......@@ -97,6 +117,12 @@ Desrciption of Properties
- Bunch Tag used for LVL1 simulation
- default: TgcDigit::BC_CURRENT
- ProcessAllBunches
- flag for multi-bunch prcessing
true : process PREVIOUS, CURRENT, NEXT bunches
false : process only the bunch of CurrentBunchTag
- default: true
- OutputTgcRDO
- flag for making TgcRDO for coincidences (SLB/HPT/SL)
- default: true
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment